1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- "use strict";
- /*
- Copyright 2021 Google LLC
- Use of this source code is governed by an MIT-style
- license that can be found in the LICENSE file or at
- https://opensource.org/licenses/MIT.
- */
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.getFileManifestEntries = void 0;
- const assert_1 = __importDefault(require("assert"));
- const errors_1 = require("./errors");
- const get_composite_details_1 = require("./get-composite-details");
- const get_file_details_1 = require("./get-file-details");
- const get_string_details_1 = require("./get-string-details");
- const transform_manifest_1 = require("./transform-manifest");
- async function getFileManifestEntries({ additionalManifestEntries, dontCacheBustURLsMatching, globDirectory, globFollow, globIgnores, globPatterns = [], globStrict, manifestTransforms, maximumFileSizeToCacheInBytes, modifyURLPrefix, templatedURLs, }) {
- const warnings = [];
- const allFileDetails = new Map();
- try {
- for (const globPattern of globPatterns) {
- const { globbedFileDetails, warning } = (0, get_file_details_1.getFileDetails)({
- globDirectory,
- globFollow,
- globIgnores,
- globPattern,
- globStrict,
- });
- if (warning) {
- warnings.push(warning);
- }
- for (const details of globbedFileDetails) {
- if (details && !allFileDetails.has(details.file)) {
- allFileDetails.set(details.file, details);
- }
- }
- }
- }
- catch (error) {
- // If there's an exception thrown while globbing, then report
- // it back as a warning, and don't consider it fatal.
- if (error instanceof Error && error.message) {
- warnings.push(error.message);
- }
- }
- if (templatedURLs) {
- for (const url of Object.keys(templatedURLs)) {
- (0, assert_1.default)(!allFileDetails.has(url), errors_1.errors['templated-url-matches-glob']);
- const dependencies = templatedURLs[url];
- if (Array.isArray(dependencies)) {
- const details = dependencies.reduce((previous, globPattern) => {
- try {
- const { globbedFileDetails, warning } = (0, get_file_details_1.getFileDetails)({
- globDirectory,
- globFollow,
- globIgnores,
- globPattern,
- globStrict,
- });
- if (warning) {
- warnings.push(warning);
- }
- return previous.concat(globbedFileDetails);
- }
- catch (error) {
- const debugObj = {};
- debugObj[url] = dependencies;
- throw new Error(`${errors_1.errors['bad-template-urls-asset']} ` +
- `'${globPattern}' from '${JSON.stringify(debugObj)}':\n` +
- `${error instanceof Error ? error.toString() : ''}`);
- }
- }, []);
- if (details.length === 0) {
- throw new Error(`${errors_1.errors['bad-template-urls-asset']} The glob ` +
- `pattern '${dependencies.toString()}' did not match anything.`);
- }
- allFileDetails.set(url, (0, get_composite_details_1.getCompositeDetails)(url, details));
- }
- else if (typeof dependencies === 'string') {
- allFileDetails.set(url, (0, get_string_details_1.getStringDetails)(url, dependencies));
- }
- }
- }
- const transformedManifest = await (0, transform_manifest_1.transformManifest)({
- additionalManifestEntries,
- dontCacheBustURLsMatching,
- manifestTransforms,
- maximumFileSizeToCacheInBytes,
- modifyURLPrefix,
- fileDetails: Array.from(allFileDetails.values()),
- });
- transformedManifest.warnings.push(...warnings);
- return transformedManifest;
- }
- exports.getFileManifestEntries = getFileManifestEntries;
|