@minna-ui/jest-config
Version:
Jest config preset for use in Minna UI projects.
35 lines (28 loc) • 951 B
JavaScript
/**
* Jest transform for compiling Svelte components into JavaScript.
*
* NOTE: `svelte` is not listed as a dependency so developers can use this
* jest preset for non-svelte projects.
*/
;
const { compile } = require('svelte/compiler'); // eslint-disable-line import/no-extraneous-dependencies
/** @type {import('../types').JestTransformer} */
exports.process = (src, filename) => {
// Strip out <style> tags to prevent errors when unable to parse PostCSS etc.
const re = /<style[^>]*>[\S\s]*?<\/style>/g;
const normalised = src.replace(re, '');
const result = compile(normalised, {
accessors: true, // Easy access to component props for tests
css: false,
dev: true,
filename,
format: 'cjs',
preserveWhitespace: true,
});
const esInterop =
'Object.defineProperty(exports, "__esModule", { value: true });';
return {
code: result.js.code + esInterop,
map: result.js.map,
};
};