You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.7 KiB
47 lines
1.7 KiB
"use strict"; |
|
/* |
|
Copyright 2019 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. |
|
*/ |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.additionalManifestEntriesTransform = void 0; |
|
const errors_1 = require("./errors"); |
|
function additionalManifestEntriesTransform(additionalManifestEntries) { |
|
return (manifest) => { |
|
const warnings = []; |
|
const stringEntries = new Set(); |
|
for (const additionalEntry of additionalManifestEntries) { |
|
// Warn about either a string or an object that lacks a revision property. |
|
// (An object with a revision property set to null is okay.) |
|
if (typeof additionalEntry === 'string') { |
|
stringEntries.add(additionalEntry); |
|
manifest.push({ |
|
revision: null, |
|
size: 0, |
|
url: additionalEntry, |
|
}); |
|
} |
|
else { |
|
if (additionalEntry && additionalEntry.revision === undefined) { |
|
stringEntries.add(additionalEntry.url); |
|
} |
|
manifest.push(Object.assign({ size: 0 }, additionalEntry)); |
|
} |
|
} |
|
if (stringEntries.size > 0) { |
|
let urls = '\n'; |
|
for (const stringEntry of stringEntries) { |
|
urls += ` - ${stringEntry}\n`; |
|
} |
|
warnings.push(errors_1.errors['string-entry-warning'] + urls); |
|
} |
|
return { |
|
manifest, |
|
warnings, |
|
}; |
|
}; |
|
} |
|
exports.additionalManifestEntriesTransform = additionalManifestEntriesTransform;
|
|
|