public static JsValue EvaluateTypeScriptModule(this BaristaContext context, string script, IBaristaModuleLoader moduleLoader = null, bool isTsx = false)
        {
            var transpileTask    = TypeScriptTranspiler.Default.Transpile(script, isTsx ? "main.tsx" : "main.ts");
            var transpilerOutput = transpileTask.GetAwaiter().GetResult();

            return(context.EvaluateModule(transpilerOutput.OutputText, moduleLoader));
        }
Пример #2
0
        public void JsModulesWillExecuteEvenWithoutATaskQueue()
        {
            using (var rt = BaristaRuntimeFactory.CreateRuntime())
            {
                var converter               = m_provider.GetRequiredService <IBaristaConversionStrategy>();
                var valueFactoryBuilder     = m_provider.GetRequiredService <IBaristaValueFactoryBuilder>();
                var moduleRecordFactory     = m_provider.GetRequiredService <IBaristaModuleRecordFactory>();
                IPromiseTaskQueue taskQueue = null;

                var contextHandle = rt.Engine.JsCreateContext(rt.Handle);
                using (var ctx = new BaristaContext(rt.Engine, valueFactoryBuilder, converter, moduleRecordFactory, taskQueue, contextHandle))
                {
                    var result = ctx.EvaluateModule("export default 'foo';");
                    Assert.Equal("foo", result.ToString());
                }
                Assert.True(contextHandle.IsClosed);
            }
        }