public JavascriptTransform(IJsEngineFactory factory, IContext context, IReader reader) : base(context, null) { _context = context; _engine = factory.CreateEngine(); // for js, always add the input parameter _input = MultipleInput().Union(new[] { context.Field }).Distinct().ToArray(); // load any global scripts foreach (var sc in context.Process.Scripts.Where(s => s.Global)) { ProcessScript(context, reader, context.Process.Scripts.First(s => s.Name == sc.Name)); } // load any specified scripts if (context.Transform.Scripts.Any()) { foreach (var sc in context.Transform.Scripts) { ProcessScript(context, reader, context.Process.Scripts.First(s => s.Name == sc.Name)); } } // make this reference the host field context.Transform.Script = $"var self = {context.Field.Alias};\r\n{context.Transform.Script}"; context.Debug(() => $"Script in {context.Field.Alias} : {context.Transform.Script.Replace("{", "{{").Replace("}", "}}")}"); }
public JavascriptTransform(IJsEngineFactory factory, IReader reader, IContext context = null) : base(context, "object") { if (IsMissingContext()) { return; } if (IsMissing(Context.Operation.Script)) { return; } _engine = factory.CreateEngine(); _input = Context.Entity.GetFieldMatches(Context.Operation.Script).ToArray(); // load any global scripts foreach (var sc in Context.Process.Scripts.Where(s => s.Global)) { ProcessScript(context, reader, Context.Process.Scripts.First(s => s.Name == sc.Name)); } // load any specified scripts if (Context.Operation.Scripts.Any()) { foreach (var sc in Context.Operation.Scripts) { ProcessScript(context, reader, Context.Process.Scripts.First(s => s.Name == sc.Name)); } } Context.Debug(() => $"Script in {Context.Field.Alias} : {Context.Operation.Script.Replace("{", "{{").Replace("}", "}}")}"); }
/// <summary> /// Constructs an instance of the Sass compiler /// </summary> /// <param name="jsEngineFactory">JS engine factory</param> /// <param name="fileManager">File manager</param> /// <param name="options">Compilation options</param> public SassCompiler(IJsEngineFactory jsEngineFactory, IFileManager fileManager, CompilationOptions options) { if (jsEngineFactory == null) { throw new ArgumentNullException(nameof(jsEngineFactory)); } if (fileManager == null) { throw new ArgumentNullException(nameof(fileManager)); } InitializeFields(jsEngineFactory.CreateEngine, fileManager, options); }
/// <summary> /// Creates a instance of JS engine /// </summary> /// <param name="name">JS engine name</param> /// <returns>JS engine</returns> public IJsEngine CreateEngine(string name) { IJsEngine engine; IJsEngineFactory engineFactory = EngineFactories.Get(name); if (engineFactory != null) { engine = engineFactory.CreateEngine(); } else { throw new JsEngineNotFoundException( string.Format(Strings.Configuration_JsEngineFactoryNotFound, name)); } return(engine); }
protected RazorReactManagerBase(ReactBundle reactServerSideBundle, ReactBundle reactClientSideBundle, IServerPathMapper mapServerPath, IJsEngineFactory jsEngineFactory, RazorReactOptions options = null) { if (options != null) { Options = options; } _jsEngineFactory = jsEngineFactory; _mapServerPath = mapServerPath; ReactServerSideBundle = reactServerSideBundle; ReactClientSideBundle = reactClientSideBundle; // TODO: JsPool //JsEngineSwitcher.Current.DefaultEngineName = ChakraCoreJsEngine.EngineName; // V8JsEngine.EngineName; //JsEngineSwitcher.Current.EngineFactories.AddChakraCore(); //.AddV8(); //JsEngineSwitcher.Current.CreateDefaultEngine(); }
/// <summary> /// Constructs an instance of the Autoprefixer /// </summary> /// <param name="jsEngineFactory">JS engine factory</param> /// <param name="options">Processing options</param> public Autoprefixer(IJsEngineFactory jsEngineFactory, ProcessingOptions options) { if (jsEngineFactory == null) { throw new ArgumentNullException(nameof(jsEngineFactory)); } _options = options ?? _defaultOptions; _serializedOptions = SerializeProcessingOptions(_options); try { _jsEngine = jsEngineFactory.CreateEngine(); } catch (JsEngineLoadException e) { throw AutoprefixerErrorHelpers.WrapAutoprefixerLoadException(e); } catch (Exception e) { throw AutoprefixerErrorHelpers.WrapAutoprefixerLoadException(e, true); } }
/// <summary> /// Constructs an instance of the Sass compiler /// </summary> /// <param name="jsEngineFactory">JS engine factory</param> /// <param name="options">Compilation options</param> public SassCompiler(IJsEngineFactory jsEngineFactory, CompilationOptions options) : this(jsEngineFactory, FileManager.Instance, options) { }
/// <summary> /// Constructs an instance of the Sass compiler /// </summary> /// <param name="jsEngineFactory">JS engine factory</param> /// <param name="fileManager">File manager</param> public SassCompiler(IJsEngineFactory jsEngineFactory, IFileManager fileManager) : this(jsEngineFactory, fileManager, _defaultOptions) { }
/// <summary> /// Constructs an instance of the Sass compiler /// </summary> /// <param name="jsEngineFactory">JS engine factory</param> public SassCompiler(IJsEngineFactory jsEngineFactory) : this(jsEngineFactory, _defaultOptions) { }
/// <summary> /// Initializes a new instance of the <see cref="JsEngineMiddleware"/> class. /// </summary> /// <param name="next">The next.</param> /// <param name="javaScriptEngineFactory">The java script engine factory.</param> public JsEngineMiddleware(RequestDelegate next, IJsEngineFactory javaScriptEngineFactory) { _next = next; _javaScriptEngineFactory = javaScriptEngineFactory; }
public SassCompiler CreateSassCompiler(IJsEngineFactory jsEngineFactory) { return(new SassCompiler(jsEngineFactory, PhysicalFileManager.Instance)); }
public RazorReactManager(ReactBundle reactServerSideBundle, ReactBundle reactClientSideBundle, IJsEngineFactory jsEngineFactory, RazorReactOptions options = null) : base(reactServerSideBundle, reactClientSideBundle, new ServerPathMapper(), jsEngineFactory, options) { }
/// <summary> /// Constructs an instance of the Autoprefixer /// </summary> /// <param name="jsEngineFactory">JS engine factory</param> public Autoprefixer(IJsEngineFactory jsEngineFactory) : this(jsEngineFactory, _defaultOptions) { }