@knapsack/app
Version:
Build Design Systems with Knapsack
42 lines • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.babelCodeForBrowser = void 0;
const core_1 = require("@babel/core");
const babel_config_starter_1 = require("@knapsack/babel-config-starter");
const utils_1 = require("@knapsack/utils");
/**
* Useful for taking code generated on the server and transpiling it to the client
* @example
* function run(name: string) {
* console.log(name);
* }
* const html = `
* <script>
* ${run.toString()}
* ${run.name}('hi!');
* </script>
* `;
* const transpiled = babelCodeForBrowser({ code: html });
*/
exports.babelCodeForBrowser = (0, utils_1.memoize)(({ code, minified }) => {
return new Promise((resolve, reject) => {
(0, core_1.transform)(code, {
...babel_config_starter_1.basicBrowserBabelConfig,
configFile: false,
highlightCode: false,
minified,
comments: true,
}, (err, results) => {
if (err) {
reject(err);
}
else if (results?.code) {
resolve(results.code);
}
else {
reject(new Error('Unknown error transpiling code with babel'));
}
});
});
});
//# sourceMappingURL=babel-code-for-browser.js.map