@deepkit/framework
Version:
35 lines • 1.65 kB
JavaScript
// @ts-ignore
import * as tsNode from 'ts-node/esm';
import { optimizeJSX } from '@deepkit/template';
import { inDebugMode } from '@deepkit/core';
import { importedFiles } from './src/watch.js';
export async function resolve(specifier, context, defaultResolve) {
const res = await tsNode.resolve(specifier, context, defaultResolve);
if (res.url) {
importedFiles.add(res.url.replace('file://', ''));
}
return res;
}
resolve.__type = ['specifier', 'parentURL', 'context', () => resolve, 'defaultResolve', 'url', 'resolve', 'P&2!P&4"M2#i$2%P&4&M`/\''];
export function getFormat(url, context, defaultGetFormat) {
return tsNode.getFormat(url, context, defaultGetFormat);
}
getFormat.__type = ['url', 'context', 'defaultGetFormat', 'getFormat', 'P"2!"2""2#"/$'];
export async function transformSource(source, context, defaultTransformSource) {
const code = await tsNode.transformSource(source, context, defaultTransformSource);
if (inDebugMode())
return code; //we don't optimize code in debug-mode, since we break sourcemaps with it.
if (context.url.endsWith('.tsx')) {
if (code.source.indexOf('@deepkit/framework/jsx-runtime') === -1)
return code;
if (code.source.startsWith('#!')) {
//allow shebang
code.source = code.source.substr(code.source.indexOf('\n'));
}
const optimized = optimizeJSX(code.source);
code.source = optimized;
}
return code;
}
transformSource.__type = ['source', 'url', 'format', 'context', 'defaultTransformSource', 'transformSource', 'P"2!P&4"&4#M2$"2%"/&'];
//# sourceMappingURL=loader.js.map