UNPKG

@ima/plugin-cli

Version:

IMA.js Plugin CLI tool to build, link, develop IMA.js plugins.

51 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSwcTransformer = createSwcTransformer; exports.swcTransformer = swcTransformer; const core_1 = require("@swc/core"); const EXTENSION_TRANSFORM_RE = /\.(t|j)sx?$/; /** * Helper function to create basic swc transformer config. */ function createSwcTransformer({ type, target, syntax, development, jsxRuntime, sourceMaps, }) { return swcTransformer({ isModule: true, sourceMaps: sourceMaps ?? true, module: { type: type ?? 'es6', }, jsc: { target, parser: { syntax: syntax ?? 'ecmascript', decorators: false, dynamicImport: true, [syntax === 'typescript' ? 'tsx' : 'jsx']: true, }, transform: { react: { useBuiltins: true, development: !!development, runtime: jsxRuntime, }, }, }, }); } function swcTransformer(options) { return async ({ source, context }) => { const newFilename = context.fileName.replace(EXTENSION_TRANSFORM_RE, '.js'); const { code, map } = await (0, core_1.transform)(source.code, { ...options, filename: newFilename, sourceFileName: newFilename, inputSourceMap: source.map, }); return { fileName: newFilename, code: map ? code + `\n//# sourceMappingURL=${newFilename}.map` : code, map, }; }; } //# sourceMappingURL=swcTransformer.js.map