@storm-stack/core
Version:
A build toolkit and runtime used by Storm Software in TypeScript applications
46 lines (43 loc) • 1.22 kB
JavaScript
import { ModuleResolverPlugin } from './chunk-CJ4Q5F7D.js';
import { __name } from './chunk-IRPJW6HH.js';
import defu from 'defu';
function transpilerPlugin(context, options = {}) {
const handleLoad = /* @__PURE__ */ __name(async (args) => {
if (args.path) {
const resolvedPath = context.vfs.resolvePath(args.path);
if (resolvedPath) {
const contents = await context.vfs.readFile(resolvedPath);
if (!contents) {
return;
}
const result = await context.compiler.transpile(context, resolvedPath, contents, defu(options, {
skipTransformUnimport: true,
babel: {
plugins: [
ModuleResolverPlugin(context),
...context.options.babel.plugins
]
}
}));
return {
contents: result,
pluginData: args.pluginData
};
}
}
return;
}, "handleLoad");
return {
name: "storm-stack:transpiler",
setup(build) {
build.onLoad({
filter: /.*/
}, handleLoad);
build.onLoad({
filter: /^storm:/
}, handleLoad);
}
};
}
__name(transpilerPlugin, "transpilerPlugin");
export { transpilerPlugin };