27 lines
856 B
TypeScript
27 lines
856 B
TypeScript
import { defineConfig } from 'tsdown';
|
|
|
|
const namespaceOf = (id: string) => id.match(/[\\/]lib[\\/]routes[\\/]([^\\/]+)[\\/]/)?.[1];
|
|
|
|
export default defineConfig({
|
|
entry: ['./lib/index.ts'],
|
|
minify: true,
|
|
shims: true,
|
|
clean: true,
|
|
copy: ['lib/assets'],
|
|
deps: {
|
|
onlyBundle: false,
|
|
},
|
|
outputOptions: {
|
|
chunkFileNames(chunk) {
|
|
let namespace = chunk.facadeModuleId ? namespaceOf(chunk.facadeModuleId) : undefined;
|
|
if (!namespace) {
|
|
const namespaces = new Set(chunk.moduleIds.map((id) => namespaceOf(id)));
|
|
if (namespaces.size === 1) {
|
|
namespace = [...namespaces][0];
|
|
}
|
|
}
|
|
return namespace && namespace !== chunk.name ? `${namespace}-[name]-[hash].mjs` : '[name]-[hash].mjs';
|
|
},
|
|
},
|
|
});
|