コード例 #1
0
 public ScriptSinkTagHelper(
     BundleSinkSettings settings,
     SinkService sinkService
     )
 {
     _settings    = settings;
     _sinkService = sinkService;
 }
コード例 #2
0
 public BodyRewriteResultFilter(
     BundleSinkSettings settings,
     SinkService sinkService
     )
 {
     _settings    = settings;
     _sinkService = sinkService;
 }
コード例 #3
0
ファイル: SinkService.cs プロジェクト: Wufe/bundle-sink
 public SinkService(
     BundleSinkSettings settings,
     EntriesManifest webpackManifest,
     EntriesViewData viewData,
     IFileVersionProvider fileVersionProvider,
     IHttpContextAccessor httpContextAccessor
     )
 {
     _settings            = settings;
     _webpackManifest     = webpackManifest;
     _viewData            = viewData;
     _fileVersionProvider = fileVersionProvider;
     _httpContextAccessor = httpContextAccessor;
 }
コード例 #4
0
 public Serializer(
     BundleSinkSettings settings,
     EntriesManifest webpackManifest,
     EntriesViewData viewData,
     IFileVersionProvider fileVersionProvider,
     string pathBase,
     string sinkName
     )
 {
     _settings            = settings;
     _webpackManifest     = webpackManifest;
     _viewData            = viewData;
     _fileVersionProvider = fileVersionProvider;
     _pathBase            = pathBase;
     _sinkName            = sinkName;
 }
コード例 #5
0
        public static IWebHostBuilder ConfigureBundleSink(this IWebHostBuilder builder, Action <ISinkConfiguration> configurationBuilder)
        {
            var configuration = new SinkConfiguration();

            configurationBuilder(configuration);

            return(builder
                   .ConfigureAppConfiguration(configurationBuilder =>
            {
                configurationBuilder.AddJsonFile(configuration.WebpackManifestName, true, true);
            })
                   .ConfigureServices((builderContext, services) =>
            {
                var settings = new BundleSinkSettings()
                {
                    PublicOutputPath = configuration.WebpackPublicOutputPath,
                    AppendVersion = configuration.AppendVersion,
                    PrintAllAttributes = configuration.PrintAdditionalAttributesCondition(builderContext.HostingEnvironment),
                    PrintComments = configuration.PrintCommentsCondition(builderContext.HostingEnvironment),
                    CheckIntegrity = configuration.IntegrityCheckCondition(builderContext.HostingEnvironment),
                    RewriteOutput = configuration.RewriteOutput,
                    UsePlainIOptions = configuration.UsePlainIOptionsCondition(builderContext.HostingEnvironment),
                };

                services.AddSingleton(settings);
                services.AddHttpContextAccessor();
                services.Configure <WebpackEntriesManifest>(builderContext.Configuration.GetSection(WebpackEntriesManifest.SECTION_NAME));
                services.AddScoped <EntriesViewData>();
                services.AddTransient <SinkService>();
                services.AddSingleton <IConfigureOptions <MvcOptions>, ConfigureMvcOptions>();

                if (settings.UsePlainIOptions)
                {
                    services.AddScoped <EntriesManifest>(sp => new EntriesManifest(sp.GetRequiredService <IOptions <WebpackEntriesManifest> >().Value));
                }
                else
                {
                    services.AddScoped <EntriesManifest>(sp => new EntriesManifest(sp.GetRequiredService <IOptionsSnapshot <WebpackEntriesManifest> >().Value));
                }
            }));
        }
コード例 #6
0
 public ConfigureMvcOptions(
     BundleSinkSettings settings
     )
 {
     _settings = settings;
 }