Browse Source

chore(node-utils): migrate build to tsdown

pull/7666/head
xingyu4j 1 week ago
parent
commit
a1ca296fc0
  1. 7
      internal/node-utils/build.config.ts
  2. 5
      internal/node-utils/package.json
  3. 37
      internal/node-utils/scripts/build.mjs
  4. 4
      internal/node-utils/src/date.ts
  5. 15
      internal/node-utils/src/monorepo.ts
  6. 8
      internal/node-utils/tsconfig.build.json
  7. 10
      internal/node-utils/tsdown.config.ts

7
internal/node-utils/build.config.ts

@ -1,7 +0,0 @@
import { defineBuildConfig } from 'unbuild';
export default defineBuildConfig({
clean: true,
declaration: true,
entries: ['src/index'],
});

5
internal/node-utils/package.json

@ -12,7 +12,8 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"stub": "pnpm unbuild --stub" "build": "node ./scripts/build.mjs",
"stub": "node ./scripts/build.mjs"
}, },
"files": [ "files": [
"dist" "dist"
@ -22,7 +23,7 @@
"types": "./dist/index.d.ts", "types": "./dist/index.d.ts",
"exports": { "exports": {
".": { ".": {
"types": "./src/index.ts", "types": "./dist/index.d.ts",
"import": "./dist/index.mjs", "import": "./dist/index.mjs",
"default": "./dist/index.mjs" "default": "./dist/index.mjs"
} }

37
internal/node-utils/scripts/build.mjs

@ -0,0 +1,37 @@
import { spawnSync } from 'node:child_process';
const pnpmCommand =
process.env.npm_execpath &&
process.env.npm_execpath.endsWith('.cjs')
? [process.execPath, process.env.npm_execpath]
: [process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm'];
const steps = [
['exec', 'tsdown', '--no-dts'],
[
'exec',
'tsc',
'-p',
'tsconfig.build.json',
'--emitDeclarationOnly',
'--declaration',
'--outDir',
'dist',
],
];
for (const args of steps) {
const [command, ...commandArgs] = pnpmCommand;
const result = spawnSync(command, [...commandArgs, ...args], {
shell: false,
stdio: 'inherit',
});
if (result.error) {
throw result.error;
}
if (result.status !== 0) {
process.exit(result.status ?? 1);
}
}

4
internal/node-utils/src/date.ts

@ -1,6 +1,6 @@
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import timezone from 'dayjs/plugin/timezone'; import timezone from 'dayjs/plugin/timezone.js';
import utc from 'dayjs/plugin/utc'; import utc from 'dayjs/plugin/utc.js';
dayjs.extend(utc); dayjs.extend(utc);
dayjs.extend(timezone); dayjs.extend(timezone);

15
internal/node-utils/src/monorepo.ts

@ -1,10 +1,13 @@
import type { Package } from '@manypkg/get-packages';
import { dirname } from 'node:path'; import { dirname } from 'node:path';
import { import * as manypkg from '@manypkg/get-packages';
getPackages as getPackagesFunc, import * as findUp from 'find-up';
getPackagesSync as getPackagesSyncFunc,
} from '@manypkg/get-packages'; const { getPackages: getPackagesFunc, getPackagesSync: getPackagesSyncFunc } =
import { findUpSync } from 'find-up'; manypkg;
const { findUpSync } = findUp;
/** /**
* *
@ -40,7 +43,7 @@ async function getPackages() {
*/ */
async function getPackage(pkgName: string) { async function getPackage(pkgName: string) {
const { packages } = await getPackages(); const { packages } = await getPackages();
return packages.find((pkg) => pkg.packageJson.name === pkgName); return packages.find((pkg: Package) => pkg.packageJson.name === pkgName);
} }
export { findMonorepoRoot, getPackage, getPackages, getPackagesSync }; export { findMonorepoRoot, getPackage, getPackages, getPackagesSync };

8
internal/node-utils/tsconfig.build.json

@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "./tsconfig.json",
"compilerOptions": {
"noEmit": false
},
"exclude": ["node_modules", "src/__tests__"]
}

10
internal/node-utils/tsdown.config.ts

@ -0,0 +1,10 @@
import { defineConfig } from 'tsdown';
export default defineConfig({
clean: false,
deps: {
skipNodeModulesBundle: true,
},
entry: ['src/index.ts'],
format: ['esm'],
});
Loading…
Cancel
Save