atlassian-webresource-webpack-plugin
Version:
Auto-generates web-resource definitions from your webpacked code, for usage in an Atlassian product or plugin.
34 lines • 1.54 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const xml_1 = require("./xml");
const renderTransformer = (transformers) => {
if (transformers && transformers.length) {
return transformers.map((transformer) => (0, xml_1.renderElement)('transformer', { key: transformer })).join('');
}
return '';
};
/**
* Generates the appropriate function to be used when filtering a transform map down to only those required.
*/
const transformFilterFactory = (resources) => {
if (resources && resources.length) {
const resourceFiletypes = resources.map((resource) => path_1.default.extname(resource.location).substr(1));
return (ext) => resourceFiletypes.includes(ext);
}
return () => true;
};
/**
* Converts a map of filetype-to-transformer entries in to the set of XML transform elements
* required for a given set of resources. Renders every transform if no resources are provided.
*/
const renderTransformations = (transformations, resources = []) => {
return Array.from(transformations.keys())
.filter(transformFilterFactory(resources))
.map((extension) => (0, xml_1.renderElement)('transformation', { extension }, renderTransformer(transformations.get(extension))));
};
exports.default = renderTransformations;
//# sourceMappingURL=renderTransformations.js.map
;