UNPKG

ngc-webpack

Version:

A wrapper for the @ngtools/webpack with hooks into the compilation process

49 lines 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Path = require("path"); var compiler_cli_1 = require("@angular/compiler-cli"); function hasResources(obj) { return obj.hasOwnProperty('templateUrl') || obj.hasOwnProperty('styleUrls'); } function findComponentDecoratorMetadata(decorators) { return decorators .find(function (entry) { if (compiler_cli_1.isMetadataSymbolicCallExpression(entry)) { var exp = entry.expression; if (compiler_cli_1.isMetadataImportedSymbolReferenceExpression(exp) && exp.module === '@angular/core' && exp.name === 'Component') { return true; } } return false; }); } function inlineMetadataBundle(relativeTo, metadataBundle, getResource) { var metadata = metadataBundle.metadata, origins = metadataBundle.origins; Object.keys(metadata).forEach(function (key) { var entry = metadata[key]; if (compiler_cli_1.isClassMetadata(entry) && entry.decorators) { var exp = findComponentDecoratorMetadata(entry.decorators); var componentMetadata = exp && exp.arguments && exp.arguments[0]; if (componentMetadata && hasResources(componentMetadata)) { // when no "origins" it is metadata json for specific module, if origins it's flat mode. var origin_1 = origins ? Path.dirname(Path.resolve(relativeTo, origins[key])) : relativeTo; if (componentMetadata.templateUrl) { var template = getResource(Path.resolve(origin_1, componentMetadata.templateUrl)); if (template) { delete componentMetadata.templateUrl; componentMetadata.template = template; } } if (componentMetadata.styleUrls) { componentMetadata.styles = componentMetadata.styleUrls .map(function (stylePath) { return getResource(Path.resolve(origin_1, stylePath)); }); delete componentMetadata.styleUrls; } } } }); } exports.inlineMetadataBundle = inlineMetadataBundle; //# sourceMappingURL=inline-metadata.js.map