@angular/build
Version:
Official build system for Angular
42 lines (41 loc) • 1.49 kB
JavaScript
;
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createLoaderImportAttributePlugin = createLoaderImportAttributePlugin;
const promises_1 = require("node:fs/promises");
const SUPPORTED_LOADERS = ['binary', 'file', 'text'];
function createLoaderImportAttributePlugin() {
return {
name: 'angular-loader-import-attributes',
setup(build) {
build.onLoad({ filter: /./ }, async (args) => {
const loader = args.with['loader'];
if (!loader) {
return undefined;
}
if (!SUPPORTED_LOADERS.includes(loader)) {
return {
errors: [
{
text: 'Unsupported loader import attribute',
notes: [
{ text: 'Attribute value must be one of: ' + SUPPORTED_LOADERS.join(', ') },
],
},
],
};
}
return {
contents: await (0, promises_1.readFile)(args.path),
loader,
};
});
},
};
}