@storm-stack/core
Version:
A build toolkit and runtime used by Storm Software in TypeScript applications
36 lines (33 loc) • 1.41 kB
JavaScript
import { resolveTsupOptions, resolveTsupEntryOptions } from './chunk-V5CUVG6J.js';
import { compilerPlugin } from './chunk-27OIV4J5.js';
import { resolverPlugin } from './chunk-QBX2SF5C.js';
import { __name } from './chunk-IRPJW6HH.js';
import { build } from '@storm-software/esbuild/build';
import { isParentPath } from '@stryke/path/is-parent-path';
import { joinPaths } from '@stryke/path/join-paths';
import { isFunction } from '@stryke/type-checks/is-function';
import defu from 'defu';
async function tsup(context, override = {}) {
const options = defu(resolveTsupOptions(context, override), {
entry: Object.fromEntries(Object.entries(resolveTsupEntryOptions(context, context.entry)).map(([key, value]) => [
key,
isParentPath(value, context.options.projectRoot) ? value : joinPaths(context.options.projectRoot, value)
]))
}, context.options.variant === "tsup" ? context.options.override : {});
await build(defu({
config: false,
clean: true,
esbuildOptions(buildOptions, ctx) {
if (isFunction(options.esbuildOptions)) {
options.esbuildOptions(buildOptions, ctx);
}
buildOptions.alias = defu(buildOptions.alias ?? {}, Object.fromEntries(context.vfs.runtimeIdMap.entries()));
},
esbuildPlugins: [
resolverPlugin(context, options),
compilerPlugin(context)
]
}, options));
}
__name(tsup, "tsup");
export { tsup };