/// <summary>
        /// Creates a new instance of the JsxFileSystem.
        /// </summary>
        /// <param name="transformer">JSX transformer used to compile JSX files</param>
        /// <param name="fileSystem">File system used to look up files</param>
        /// <param name="extensions">Extensions of files that will be treated as JSX files</param>
        public JsxFileSystem(IJsxTransformer transformer, Microsoft.Owin.FileSystems.IFileSystem fileSystem, IEnumerable <string> extensions)
        {
            _transformer        = transformer;
            _physicalFileSystem = fileSystem;

            // Make sure the extensions start with dot
            _extensions = extensions.Select(extension => extension.StartsWith(".") ? extension : "." + extension).ToArray();
        }
            public JsxFileInfo(IJsxTransformer jsxTransformer, IFileInfo fileInfo)
            {
                _jsxTransformer = jsxTransformer;
                _fileInfo       = fileInfo;

                _content = new Lazy <byte[]>(
                    () => Encoding.UTF8.GetBytes(_jsxTransformer.TransformJsxFile(fileInfo.PhysicalPath))
                    );
            }
Exemple #3
0
		/// <summary>
		/// Creates a new instance of the JsxFileSystem.
		/// </summary>
		/// <param name="transformer">JSX transformer used to compile JSX files</param>
		/// <param name="fileSystem">File system used to look up files</param>
		/// <param name="extensions">Extensions of files that will be treated as JSX files</param>
		public JsxFileSystem(IJsxTransformer transformer, IOwinFileSystem fileSystem, IEnumerable<string> extensions)
		{
			_transformer = transformer;
			_physicalFileSystem = fileSystem;

			if (extensions != null)
			{
				// Make sure the extensions start with dot
				_extensions = extensions.Select(extension => extension.StartsWith(".") ? extension : "." + extension).ToArray();
			}
		}
 private StaticFileMiddleware CreateFileMiddleware(IJsxTransformer jsxTransformer)
 {
     return(new StaticFileMiddleware(
                _next,
                new StaticFileOptions()
     {
         ContentTypeProvider = _fileOptions.ContentTypeProvider,
         DefaultContentType = _fileOptions.DefaultContentType,
         OnPrepareResponse = _fileOptions.OnPrepareResponse,
         RequestPath = _fileOptions.RequestPath,
         ServeUnknownFileTypes = _fileOptions.ServeUnknownFileTypes,
         FileSystem = new JsxFileSystem(jsxTransformer, _fileOptions.FileSystem, _extensions)
     }));
 }
		/// <summary>
		/// Creates the internal <see cref="StaticFileMiddleware"/> used to serve JSX files.
		/// </summary>
		/// <param name="jsxTransformer"></param>
		/// <returns></returns>
		private StaticFileMiddleware CreateFileMiddleware(IJsxTransformer jsxTransformer)
		{
			return new StaticFileMiddleware(
				_next,
				new StaticFileOptions()
				{
					ContentTypeProvider = _options.StaticFileOptions.ContentTypeProvider,
					DefaultContentType = _options.StaticFileOptions.DefaultContentType,
					OnPrepareResponse = _options.StaticFileOptions.OnPrepareResponse,
					RequestPath = _options.StaticFileOptions.RequestPath,
					ServeUnknownFileTypes = _options.StaticFileOptions.ServeUnknownFileTypes,
					FileSystem = new JsxFileSystem(
						jsxTransformer, 
						_options.StaticFileOptions.FileSystem, 
						_options.Extensions
					)
				});
		}
		/// <summary>
		/// Creates the internal <see cref="StaticFileMiddleware"/> used to serve JSX files.
		/// </summary>
		/// <param name="jsxTransformer"></param>
		/// <returns></returns>
		private StaticFileMiddleware CreateFileMiddleware(IJsxTransformer jsxTransformer)
		{
			return new StaticFileMiddleware(
				_next,
				_hostingEnv,
				new StaticFileOptions
				{
					ContentTypeProvider = _options.StaticFileOptions.ContentTypeProvider,
					DefaultContentType = _options.StaticFileOptions.DefaultContentType,
					OnPrepareResponse = _options.StaticFileOptions.OnPrepareResponse,
					RequestPath = _options.StaticFileOptions.RequestPath,
					ServeUnknownFileTypes = _options.StaticFileOptions.ServeUnknownFileTypes,
					FileProvider = new JsxFileSystem(
						jsxTransformer, 
						_options.StaticFileOptions.FileProvider ?? _hostingEnv.WebRootFileProvider,
						_options.Extensions
					)
				},
				_loggerFactory
			);
		}
Exemple #7
0
 /// <summary>
 /// Creates the internal <see cref="StaticFileMiddleware"/> used to serve JSX files.
 /// </summary>
 /// <param name="jsxTransformer"></param>
 /// <returns></returns>
 private StaticFileMiddleware CreateFileMiddleware(IJsxTransformer jsxTransformer)
 {
     return(new StaticFileMiddleware(
                _next,
                _hostingEnv,
                new StaticFileOptions
     {
         ContentTypeProvider = _options.StaticFileOptions.ContentTypeProvider,
         DefaultContentType = _options.StaticFileOptions.DefaultContentType,
         OnPrepareResponse = _options.StaticFileOptions.OnPrepareResponse,
         RequestPath = _options.StaticFileOptions.RequestPath,
         ServeUnknownFileTypes = _options.StaticFileOptions.ServeUnknownFileTypes,
         FileProvider = new JsxFileSystem(
             jsxTransformer,
             _options.StaticFileOptions.FileProvider ?? _hostingEnv.WebRootFileProvider,
             _options.Extensions
             )
     },
                _loggerFactory
                ));
 }
Exemple #8
0
		/// <summary>
		/// Creates a new instance of the JsxFileSystem.
		/// </summary>
		/// <param name="transformer">JSX transformer used to compile JSX files</param>
		/// <param name="root">The root directory</param>
		/// <param name="extensions">Extensions of files that will be treated as JSX files</param>
		public JsxFileSystem(IJsxTransformer transformer, string root, IEnumerable<string> extensions)
			: this(transformer, new PhysicalFileSystem(root), extensions)
		{            
		}
Exemple #9
0
			public JsxFileInfo(IJsxTransformer jsxTransformer, IFileInfo fileInfo)
			{
				_jsxTransformer = jsxTransformer;
				_fileInfo = fileInfo;

				_content = new Lazy<byte[]>(
					() => Encoding.UTF8.GetBytes(_jsxTransformer.TransformJsxFile(fileInfo.PhysicalPath))
				);
			}
Exemple #10
0
 /// <summary>
 /// Creates a new instance of the JsxFileSystem.
 /// </summary>
 /// <param name="transformer">JSX transformer used to compile JSX files</param>
 /// <param name="root">The root directory</param>
 /// <param name="extensions">Extensions of files that will be treated as JSX files</param>
 public JsxFileSystem(IJsxTransformer transformer, string root, IEnumerable <string> extensions)
     : this(transformer, new PhysicalFileSystem(root), extensions)
 {
 }