@nxext/stencil
Version:
Nx plugin for stenciljs
44 lines • 2.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.componentSchematic = exports.componentGenerator = void 0;
const tslib_1 = require("tslib");
const devkit_1 = require("@nrwl/devkit");
const path_1 = require("path");
function componentGenerator(host, options) {
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
if (!/[-]/.test(options.name)) {
throw new Error((0, devkit_1.stripIndents) `
"${options.name}" tag must contain a dash (-) to work as a valid web component. Please refer to
https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name for more info.
`);
}
const componentFileName = (0, devkit_1.names)(options.name).fileName;
const className = (0, devkit_1.names)(options.name).className;
const projectConfig = (0, devkit_1.readProjectConfiguration)(host, options.project);
const componentDirectory = options.directory
? (0, devkit_1.joinPathFragments)(`${options.directory}/${componentFileName}`)
: componentFileName;
const componentOptions = ((projectConfig || {}).generators || { '@nxext/stencil:component': {}, })['@nxext/stencil:component'];
if (!componentOptions) {
devkit_1.logger.info((0, devkit_1.stripIndents) `
Style options for components not set, please run "nx migrate @nxext/stencil"
`);
}
options = Object.assign(Object.assign({}, options), componentOptions);
(0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, './files/component'), (0, devkit_1.joinPathFragments)(`${projectConfig.sourceRoot}/components/${componentDirectory}`), {
componentFileName: componentFileName,
className: className,
style: options.style,
});
if (!host.exists('.storybook')) {
host.delete((0, devkit_1.joinPathFragments)(`${projectConfig.sourceRoot}/components/${componentDirectory}/${componentFileName}.stories.jsx`));
}
if (!options.skipFormat) {
yield (0, devkit_1.formatFiles)(host);
}
});
}
exports.componentGenerator = componentGenerator;
exports.default = componentGenerator;
exports.componentSchematic = (0, devkit_1.convertNxGenerator)(componentGenerator);
//# sourceMappingURL=component.js.map