The TypeScript pnpm CLI freezes at v11; pnpm 12 will be the Rust pacquet port. To make that split legible, all TypeScript source, test, and build directories move under a new top-level pnpm11/ directory. The name states the version boundary rather than implying a behavioral fork, since the two stacks are meant to behave identically. Scope is source-only: the shared workspace root stays at the repo root. pnpm-workspace.yaml, package.json, pnpm-lock.yaml, .pnpmfile.cjs, .meta-updater, __patches__, .changeset, .husky, and the lint/spell configs remain in place, so one pnpm workspace and one Cargo workspace still span all three products. pnpr/client and pacquet/tasks/registry-mock stay as cross-product workspace members. Rewiring the move required: - pnpm-workspace.yaml globs prefixed with pnpm11/ - root package.json script paths, eslint.config.mjs, tsconfig.lint.json, .gitignore, and CODEOWNERS updated - .meta-updater/src/index.ts literals repointed (pnpm11/pnpm/package.json, pnpm11/__utils__, pnpm11/__typings__, and the main package directory) - regenerated every moved package's repository/homepage URL via meta-updater - pnpm11/pnpm/bundle-deps.ts and __utils__/scripts/src/typecheck-only.ts climb one more level to reach the repo root .meta-updater stays at the repo root because @pnpm/meta-updater resolves its config at <cwd>/.meta-updater/main.mjs. TS CI (.github/workflows/ci.yml) now only runs when pnpm11/-relevant paths change, via a dorny/paths-filter changes job plus a TS CI / Success aggregate gate; branch protection should require only that gate.
65 lines
2.2 KiB
TypeScript
65 lines
2.2 KiB
TypeScript
import { build } from 'esbuild'
|
|
|
|
;(async () => {
|
|
try {
|
|
const banner = { js: [
|
|
`import { createRequire as _cr } from 'module';const require = _cr(import.meta.url); const __filename = import.meta.filename; const __dirname = import.meta.dirname;`,
|
|
// Suppress "SQLite is an experimental feature" warnings.
|
|
// Must run before any module that loads node:sqlite.
|
|
`var _ew=process.emitWarning;process.emitWarning=function(w,...a){if(String(w).includes('SQLite')&&(a[0]==='ExperimentalWarning'||(a[0]&&a[0].type==='ExperimentalWarning')))return;return _ew.call(process,w,...a)};`,
|
|
].join('') }
|
|
await build({
|
|
entryPoints: ['lib/pnpm.js'],
|
|
bundle: true,
|
|
platform: 'node',
|
|
outfile: 'dist/pnpm.mjs',
|
|
// Create separate source map files, but intentionally omit
|
|
// sourceMappingUrl comment links from the original *.mjs/*.cjs files. The
|
|
// resulting *.map file is also excluded from NPM publishing.
|
|
//
|
|
// This keeps pnpm distributions small, but still allows developers to use
|
|
// .map files to reverse minified stack traces using tools such as
|
|
// https://sourcemap.tools. For more examples, see
|
|
// https://github.com/pnpm/pnpm/pull/10378
|
|
sourcemap: 'external',
|
|
format: 'esm',
|
|
banner,
|
|
external: [
|
|
'node-gyp',
|
|
'./get-uid-gid.js', // traces back to: https://github.com/npm/uid-number/blob/6e9bdb302ae4799d05abf12e922ccdb4bd9ea023/uid-number.js#L31
|
|
'@reflink/reflink',
|
|
],
|
|
define: {
|
|
'process.env.npm_package_name': JSON.stringify(
|
|
process.env.npm_package_name
|
|
),
|
|
'process.env.npm_package_version': JSON.stringify(
|
|
process.env.npm_package_version
|
|
),
|
|
},
|
|
loader: {
|
|
'.node': 'copy',
|
|
},
|
|
})
|
|
|
|
await build({
|
|
entryPoints: ['../worker/lib/worker.js'],
|
|
bundle: true,
|
|
platform: 'node',
|
|
sourcemap: 'external',
|
|
format: 'esm',
|
|
outfile: 'dist/worker.js',
|
|
banner,
|
|
external: [
|
|
'@reflink/reflink',
|
|
],
|
|
loader: {
|
|
'.node': 'copy',
|
|
},
|
|
})
|
|
} catch (err) {
|
|
console.error(err)
|
|
process.exit(1)
|
|
}
|
|
})()
|