@nxext/stencil
Version:
Nx plugin for stenciljs
28 lines (25 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.updatePreview = updatePreview;
const devkit_1 = require("@nx/devkit");
const generator_1 = require("../generator");
/**
* `@nx/storybook`'s own preview.ts template is empty by default — fill in the
* one piece of Stencil-specific wiring Storybook actually needs: registering
* the generated custom-elements loader so components render at all.
*/
function updatePreview(host, projectName) {
const { root } = (0, devkit_1.readProjectConfiguration)(host, projectName);
const loaderDir = (0, generator_1.getProjectTsImportPath)(host, projectName);
host.write(`${root}/.storybook/preview.ts`, `import { html } from 'lit';
import { classMap } from 'lit/directives/class-map.js';
import { defineCustomElements } from '${loaderDir}/loader';
defineCustomElements();
const withThemeProvider = (storyFn, context) => {
const cssClasses = { centered: context.parameters.layout === 'centered' };
return html\` <div class="bq-root \${classMap(cssClasses)}">\${storyFn()}</div> \`;
};
export const decorators = [withThemeProvider];
`);
}
//# sourceMappingURL=update-preview.js.map