UNPKG

@omnia/tooling-vue

Version:

Used to bundle and serve manifests web component that build on Vue framework.

44 lines (43 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defineTransformer = void 0; const utils_1 = require("../utils"); function defineTransformer(name, ctor) { if (typeof ctor != 'function') { throw new utils_1.ErrorHMR('transformer constructor is not a function'); } return (...args) => { const transformer = ctor(...args); if (transformer['then']) { return transformer.then(config => { if (!config) { return; } validate(name, config.test, config.transform); return { name, test: config.test, transform: config.transform }; }); } validate(name, transformer.test, transformer.transform); return { name, test: transformer.test, transform: transformer.transform }; }; } exports.defineTransformer = defineTransformer; function validate(name, test, transform) { if (typeof name != 'string' || name.length == 0) { throw new utils_1.ErrorHMR('transformer.name is empty or undefined'); } if (typeof test != 'function') { throw new utils_1.ErrorHMR('transformer.test is not a function'); } if (typeof transform != 'function') { throw new utils_1.ErrorHMR('transformer.transform is not a function'); } }