Replace tsup with tsdown (#25750)

* migrate from tsup to tsdown

* add changeset

* update to latest
This commit is contained in:
daedalus
2025-09-02 14:02:00 -04:00
committed by GitHub
parent f55913653b
commit 85902b51d0
34 changed files with 907 additions and 1251 deletions

View File

@@ -0,0 +1,28 @@
---
'@directus/storage-driver-cloudinary': patch
'@directus/storage-driver-supabase': patch
'@directus/storage-driver-azure': patch
'@directus/storage-driver-local': patch
'@directus/extensions-registry': patch
'@directus/storage-driver-gcs': patch
'@directus/storage-driver-s3': patch
'@directus/schema-builder': patch
'@directus/format-title': patch
'@directus/update-check': patch
'@directus/composables': patch
'@directus/system-data': patch
'@directus/extensions': patch
'@directus/validation': patch
'@directus/constants': patch
'@directus/pressure': patch
'@directus/storage': patch
'@directus/errors': patch
'@directus/memory': patch
'@directus/schema': patch
'@directus/stores': patch
'@directus/utils': patch
'@directus/env': patch
'@directus/sdk': patch
---
Replaced tsup with tsdown

View File

@@ -32,6 +32,6 @@ runs:
if: inputs.build == 'true'
shell: bash
env:
npm_config_workspace_concurrency: 1
npm_config_workspace_concurrency: 2
NODE_OPTIONS: --max_old_space_size=6144
run: pnpm run build

View File

@@ -2,3 +2,4 @@
!*.scss
!*.css
!*.vue
Dockerfile

View File

@@ -32,7 +32,7 @@ COPY --chown=node:node . .
RUN <<EOF
set -ex
pnpm install --recursive --offline --frozen-lockfile
npm_config_workspace_concurrency=1 pnpm run build
npm_config_workspace_concurrency=2 pnpm run build
pnpm --filter directus deploy --legacy --prod dist
cd dist
# Regenerate package.json file with essential fields only

View File

@@ -22,8 +22,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -42,7 +42,7 @@
"@types/lodash-es": "catalog:",
"@vitest/coverage-v8": "catalog:",
"@vue/test-utils": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:",
"vue": "catalog:"

View File

@@ -22,12 +22,12 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch"
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch"
},
"devDependencies": {
"@directus/tsconfig": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:"
}
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -31,7 +31,7 @@
"@types/lodash-es": "catalog:",
"@types/node": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
},

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -35,7 +35,7 @@
"@directus/types": "workspace:*",
"@types/ms": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -37,7 +37,7 @@
"@directus/types": "workspace:*",
"@directus/tsconfig": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -25,8 +25,8 @@
],
"scripts": {
"build": "pnpm run '/^build:.*/'",
"build:node": "tsup src/node.ts --tsconfig src/node/tsconfig.json --out-dir dist --format=esm --dts",
"build:shared": "tsup src/index.ts --tsconfig src/tsconfig.json --out-dir dist --format=esm --dts",
"build:node": "tsdown src/node.ts --tsconfig src/node/tsconfig.json --out-dir dist --dts",
"build:shared": "tsdown src/index.ts --tsconfig src/tsconfig.json --out-dir dist --dts",
"dev": "pnpm run '/^build:.*/' --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
@@ -48,7 +48,7 @@
"@vitest/coverage-v8": "catalog:",
"knex": "catalog:",
"pino": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:",
"vue": "catalog:",

View File

@@ -32,7 +32,7 @@
],
"scripts": {
"build": "pnpm run '/^bundle|typecheck$/'",
"bundle": "tsup src/index.ts --format=esm --dts",
"bundle": "tsdown src/index.ts --dts",
"test": "vitest run",
"test:coverage": "vitest run --coverage",
"typecheck": "tsc --noEmit"
@@ -40,7 +40,7 @@
"devDependencies": {
"@directus/tsconfig": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -37,7 +37,7 @@
"@directus/tsconfig": "catalog:",
"@types/node": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -33,7 +33,7 @@
"@directus/tsconfig": "catalog:",
"@types/express": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -31,8 +31,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -44,7 +44,7 @@
"@directus/tsconfig": "catalog:",
"@types/lodash-es": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -31,15 +31,15 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch"
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch"
},
"dependencies": {
"knex": "catalog:"
},
"devDependencies": {
"@directus/tsconfig": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:"
}
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -36,7 +36,7 @@
"@directus/types": "workspace:*",
"@ngneat/falso": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -37,7 +37,7 @@
"@directus/types": "workspace:*",
"@ngneat/falso": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -37,7 +37,7 @@
"@directus/types": "workspace:*",
"@ngneat/falso": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -35,7 +35,7 @@
"@types/node": "catalog:",
"@ngneat/falso": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -42,7 +42,7 @@
"@ngneat/falso": "catalog:",
"@types/ms": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -39,7 +39,7 @@
"@directus/types": "workspace:*",
"@ngneat/falso": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -31,7 +31,7 @@
"@directus/types": "workspace:*",
"@types/node": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -21,8 +21,8 @@
"dist"
],
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch"
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch"
},
"dependencies": {
"@vueuse/core": "catalog:"
@@ -30,7 +30,7 @@
"devDependencies": {
"@directus/tsconfig": "catalog:",
"pinia": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vue": "catalog:"
},

View File

@@ -24,14 +24,14 @@
"dist"
],
"scripts": {
"build": "NODE_ENV=production tsup",
"dev": "NODE_ENV=development tsup"
"build": "NODE_ENV=production tsdown",
"dev": "NODE_ENV=development tsdown"
},
"devDependencies": {
"@directus/tsconfig": "catalog:",
"unplugin-yaml": "catalog:",
"esbuild": "catalog:",
"esbuild-yaml": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:"
}
}

View File

@@ -1,7 +1,7 @@
{
"extends": "@directus/tsconfig/node22",
"compilerOptions": {
"types": ["esbuild-yaml/types"]
"types": ["unplugin-yaml/types"]
},
"include": ["src"],
"typedocOptions": {

View File

@@ -1,15 +1,14 @@
import { defineConfig } from 'tsup';
import { YAMLPlugin } from 'esbuild-yaml';
import { defineConfig } from 'tsdown';
import yaml from 'unplugin-yaml/rolldown';
const env = process.env.NODE_ENV;
export default defineConfig({
esbuildPlugins: [YAMLPlugin()],
plugins: [yaml()],
entry: ['src/index.ts'],
format: ['cjs', 'esm'],
target: 'es2020',
minify: env === 'production',
watch: env === 'development',
clean: true,
dts: true,
});

View File

@@ -22,7 +22,7 @@
],
"scripts": {
"build": "pnpm run '/^bundle|typecheck$/'",
"bundle": "tsup src/index.ts --format=esm --dts",
"bundle": "tsdown src/index.ts --dts",
"test": "vitest run",
"test:coverage": "vitest run --coverage",
"typecheck": "tsc --noEmit"
@@ -42,7 +42,7 @@
"@types/semver": "catalog:",
"@vitest/coverage-v8": "catalog:",
"strip-ansi": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}

View File

@@ -25,9 +25,9 @@
],
"scripts": {
"build": "pnpm run '/^build:.*/'",
"build:browser": "tsup browser/index.ts --tsconfig browser/tsconfig.json --out-dir dist/browser --format=esm --dts",
"build:node": "tsup node/index.ts --tsconfig node/tsconfig.json --out-dir dist/node --format=esm --dts",
"build:shared": "tsup shared/index.ts --tsconfig shared/tsconfig.json --out-dir dist/shared --format=esm --dts",
"build:browser": "tsdown browser/index.ts --tsconfig browser/tsconfig.json --out-dir dist/browser --dts",
"build:node": "tsdown node/index.ts --tsconfig node/tsconfig.json --out-dir dist/node --dts",
"build:shared": "tsdown shared/index.ts --tsconfig shared/tsconfig.json --out-dir dist/shared --dts",
"dev": "pnpm run '/^build:.*/' --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
@@ -53,7 +53,7 @@
"@types/tmp": "catalog:",
"@vitest/coverage-v8": "catalog:",
"tmp": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:",
"vue": "catalog:"

View File

@@ -4,8 +4,8 @@
"type": "module",
"sideEffects": false,
"scripts": {
"build": "tsup src/index.ts --format=esm --dts",
"dev": "tsup src/index.ts --format=esm --dts --watch",
"build": "tsdown src/index.ts --dts",
"dev": "tsdown src/index.ts --dts --watch",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -30,7 +30,7 @@
"@directus/tsconfig": "catalog:",
"@directus/types": "workspace:*",
"@vitest/coverage-v8": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
},

1917
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -282,12 +282,13 @@ catalog:
tedious: 18.6.1
tinymce: 6.8.5
tmp: 0.2.4
tsup: 8.5.0
tsdown: 0.14.2
tsx: 4.20.3
tus-js-client: 4.3.1
typescript: 5.8.3
typescript-eslint: 8.38.0
undici: 7.13.0
unplugin-yaml: 3.0.4
update-check: 1.5.4
uuid: 11.1.0
vite: 7.1.3

View File

@@ -23,8 +23,8 @@
"dist"
],
"scripts": {
"build": "NODE_ENV=production tsup",
"dev": "NODE_ENV=development tsup",
"build": "NODE_ENV=production tsdown",
"dev": "NODE_ENV=development tsdown",
"test": "vitest run",
"test:coverage": "vitest run --coverage"
},
@@ -33,7 +33,7 @@
"@directus/tsconfig": "catalog:",
"@vitest/coverage-v8": "catalog:",
"esbuild-plugin-replace": "catalog:",
"tsup": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
},

18
sdk/tsdown.config.ts Normal file
View File

@@ -0,0 +1,18 @@
import { systemCollectionNames } from '@directus/system-data';
import { defineConfig } from 'tsdown';
const env = process.env.NODE_ENV;
export default defineConfig({
sourcemap: env === 'production', // source map is only available in prod
dts: true, // generate dts file for main module
format: ['cjs', 'esm'], // generate cjs and esm files
minify: env === 'production',
watch: env === 'development',
unbundle: true,
target: 'es2022',
entry: ['src/index.ts'],
define: {
__SYSTEM_COLLECTION_NAMES__: JSON.stringify(systemCollectionNames),
},
});

View File

@@ -1,34 +0,0 @@
import { readFile } from 'node:fs/promises';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';
import { defineConfig } from 'tsup';
import { replace } from 'esbuild-plugin-replace';
import { systemCollectionNames } from '@directus/system-data';
const __dirname = dirname(fileURLToPath(import.meta.url));
const { version } = JSON.parse(await readFile(join(__dirname, '../directus/package.json'), 'utf8'));
const env = process.env.NODE_ENV;
export default defineConfig(() => ({
sourcemap: env === 'production', // source map is only available in prod
esbuildOptions(options) {
// fetch source from GitHub
options.sourceRoot = `https://raw.githubusercontent.com/directus/directus/v${version}/sdk/dist/`;
options.sourcesContent = false;
},
clean: true, // clean dist before build
dts: true, // generate dts file for main module
format: ['cjs', 'esm'], // generate cjs and esm files
minify: env === 'production',
watch: env === 'development',
bundle: true,
target: 'es2022',
entry: ['src/index.ts'],
esbuildPlugins: [
replace({
__SYSTEM_COLLECTION_NAMES__: JSON.stringify(systemCollectionNames),
}),
],
}));