diff --git a/tsdown.config.ts b/tsdown.config.ts index 8af0aac7a..6fed95554 100644 --- a/tsdown.config.ts +++ b/tsdown.config.ts @@ -5,6 +5,41 @@ const packageJson = JSON.parse( fs.readFileSync(new URL('./package.json', import.meta.url), 'utf8'), ) as { version: string }; +const publicSdkChunkGroups = [ + [ + 'sdk-contracts', + /src[\\/]kernel[\\/]contracts\.d\.[cm]?ts$/, + /src[\\/]kernel[\\/]contracts\.ts$/, + ], + ['sdk-errors', /src[\\/]kernel[\\/]errors\.d\.[cm]?ts$/, /src[\\/]kernel[\\/]errors\.ts$/], + ['sdk-device', /src[\\/]kernel[\\/]device\.d\.[cm]?ts$/, /src[\\/]kernel[\\/]device\.ts$/], + ['sdk-snapshot', /src[\\/]kernel[\\/]snapshot\.d\.[cm]?ts$/, /src[\\/]kernel[\\/]snapshot\.ts$/], + ['sdk-io', /src[\\/]io\.d\.[cm]?ts$/, /src[\\/]io\.ts$/], + ['sdk-batch', /src[\\/]batch-policy\.d\.[cm]?ts$/, /src[\\/]batch-policy\.ts$/], + ['sdk-batch-runner', /src[\\/]core[\\/]batch\.d\.[cm]?ts$/, /src[\\/]core[\\/]batch\.ts$/], + ['sdk-finders', /src[\\/]finders\.d\.[cm]?ts$/, /src[\\/]finders\.ts$/], + [ + 'sdk-android-adb', + /src[\\/]platforms[\\/]android[\\/]adb-executor\.d\.[cm]?ts$/, + /src[\\/]platforms[\\/]android[\\/]adb-executor\.ts$/, + ], + [ + 'sdk-app-inventory', + /src[\\/]contracts[\\/]app-inventory\.d\.[cm]?ts$/, + /src[\\/]contracts[\\/]app-inventory\.ts$/, + ], + [ + 'sdk-remote-config', + /src[\\/]remote[\\/]remote-config-schema\.d\.[cm]?ts$/, + /src[\\/]remote[\\/]remote-config-schema\.ts$/, + ], + [ + 'sdk-selectors', + /src[\\/]daemon[\\/]selectors-parse\.d\.[cm]?ts$/, + /src[\\/]daemon[\\/]selectors-parse\.ts$/, + ], +] as const; + export default defineConfig({ entry: { index: 'src/sdk/index.ts', @@ -34,6 +69,14 @@ export default defineConfig({ }, shims: true, hash: false, + outputOptions: { + codeSplitting: { + groups: publicSdkChunkGroups.flatMap(([name, dtsTest, jsTest]) => [ + { test: dtsTest, name: `${name}.d` }, + { test: jsTest, name }, + ]), + }, + }, outExtensions: () => ({ js: '.js', dts: '.d.ts' }), minify: true, dts: {