diff --git a/packages/@yarn-tool/static-file/.gitignore b/packages/@yarn-tool/static-file/.gitignore index f431151cb..748b41d05 100644 --- a/packages/@yarn-tool/static-file/.gitignore +++ b/packages/@yarn-tool/static-file/.gitignore @@ -68,3 +68,12 @@ coverage !.gitlab .git +/file/ws-root/__ws_root.d.ts +/file/ws-root/__ws_root.js +/file/ws-root/__ws_root.js.map +/file/test/__root.d.ts +/file/test/__root.js +/file/test/__root.js.map +/file/ws-root/__root_ws.d.ts +/file/ws-root/__root_ws.js +/file/ws-root/__root_ws.js.map diff --git a/packages/@yarn-tool/static-file/file/gitignore b/packages/@yarn-tool/static-file/file/gitignore index c7ab6afbf..43a2308c8 100644 --- a/packages/@yarn-tool/static-file/file/gitignore +++ b/packages/@yarn-tool/static-file/file/gitignore @@ -121,6 +121,12 @@ bin/**/*.d.cts /packages/*/tests/*.d.cts /packages/*/tests/temp* +/src/**/*.d.ts +/src/**/*.js +/src/**/*.d.cts +/src/**/*.d.mts +/src/**/*.cjs +/src/**/*.mjs **/node_modules *.tgz diff --git a/packages/@yarn-tool/static-file/file/npmignore b/packages/@yarn-tool/static-file/file/npmignore index 7b4410f5b..db4e4a071 100644 --- a/packages/@yarn-tool/static-file/file/npmignore +++ b/packages/@yarn-tool/static-file/file/npmignore @@ -35,6 +35,13 @@ node_modules /bin/**/*.d.cts /bin/*.d.cts +/src/**/*.d.ts +/src/**/*.js +/src/**/*.d.cts +/src/**/*.d.mts +/src/**/*.cjs +/src/**/*.mjs + *.tgz /tsconfig.json.tpl yarn-error.log diff --git a/packages/@yarn-tool/static-file/file/test/__root.ts b/packages/@yarn-tool/static-file/file/test/__root.ts new file mode 100644 index 000000000..446a39a9d --- /dev/null +++ b/packages/@yarn-tool/static-file/file/test/__root.ts @@ -0,0 +1,3 @@ +import { join } from "path"; + +export const __root = join(__dirname, '..'); diff --git a/packages/@yarn-tool/static-file/file/test/tsconfig.json.tpl b/packages/@yarn-tool/static-file/file/test/tsconfig.json.tpl index 1bd00d38f..b0ec2bc0f 100644 --- a/packages/@yarn-tool/static-file/file/test/tsconfig.json.tpl +++ b/packages/@yarn-tool/static-file/file/test/tsconfig.json.tpl @@ -1,7 +1,7 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "module": "CommonJS", + "module": "node12", "noEmit": true, "declaration": false, "noUnusedParameters": false, diff --git a/packages/@yarn-tool/static-file/file/ws-root/__root_ws.ts b/packages/@yarn-tool/static-file/file/ws-root/__root_ws.ts new file mode 100644 index 000000000..b080abd17 --- /dev/null +++ b/packages/@yarn-tool/static-file/file/ws-root/__root_ws.ts @@ -0,0 +1,3 @@ +import { join } from "path"; + +export const __root_ws = join(__dirname); diff --git a/packages/@yarn-tool/static-file/lib/const.d.ts b/packages/@yarn-tool/static-file/lib/const.d.ts index 8423e0979..e35ce8c02 100644 --- a/packages/@yarn-tool/static-file/lib/const.d.ts +++ b/packages/@yarn-tool/static-file/lib/const.d.ts @@ -1,3 +1,4 @@ import { IStaticFilesMapArray } from './types'; export declare const defaultCopyStaticFiles: IStaticFilesMapArray<"tsconfig.json.tpl" | "test/tsconfig.json.tpl" | "tsconfig.esm.json.tpl" | "tsconfig.tsdx.json.tpl" | ".eslintrc.json.tpl" | "now.json.tpl" | ".npmrc.tpl" | "tsdx.config.js.tpl" | "tsc-multi.json.tpl">; export declare const defaultCopyStaticFilesRootOnly: IStaticFilesMapArray<"tsconfig.json" | "lerna.json.tpl" | "pnpm-workspace.yaml.tpl">; +export declare const defaultCopyStaticFilesWsRootOnly: IStaticFilesMapArray<"tsc-multi.json.tpl">; diff --git a/packages/@yarn-tool/static-file/lib/const.js b/packages/@yarn-tool/static-file/lib/const.js index 19f9eccde..5a80bb166 100644 --- a/packages/@yarn-tool/static-file/lib/const.js +++ b/packages/@yarn-tool/static-file/lib/const.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultCopyStaticFilesRootOnly = exports.defaultCopyStaticFiles = void 0; +exports.defaultCopyStaticFilesWsRootOnly = exports.defaultCopyStaticFilesRootOnly = exports.defaultCopyStaticFiles = void 0; const _defaultCopyStaticFiles = [ ['.npmignore', 'file/npmignore'], ['.gitignore', 'file/gitignore'], @@ -21,6 +21,7 @@ const _defaultCopyStaticFiles = [ ['.npmrc.tpl', 'file/npmrc', '.npmrc'], ['tsdx.config.js.tpl', 'file/tsdx.config.js', 'tsdx.config.js'], ['tsc-multi.json.tpl', 'file/tsc-multi.json.tpl', 'tsc-multi.json'], + ['test/__root.ts', 'file/test/__root.ts'], ]; const _defaultCopyStaticFilesRootOnly = [ ['lerna.json.tpl', 'file/lerna.json.tpl', 'lerna.json'], @@ -29,6 +30,14 @@ const _defaultCopyStaticFilesRootOnly = [ ['.github/workflows/action-yarnlock-dedupe.yml', 'file/github/workflows/action-yarnlock-dedupe.yml'], ['tsconfig.json', 'file/tsconfig.json.tpl', 'tsconfig.json'], ]; +const _defaultCopyStaticFilesWsRootOnly = [ + ['lerna.json.tpl', 'file/lerna.json.tpl'], + ['pnpm-workspace.yaml', 'file/pnpm-workspace.yaml'], + ['tsconfig.json', 'file/tsconfig.json.tpl'], + ['tsc-multi.json.tpl', 'file/tsc-multi.json.tpl', 'tsc-multi.json'], + ['__root_ws.ts', 'file/ws-root/__root_ws.ts'], +]; exports.defaultCopyStaticFiles = Object.freeze(_defaultCopyStaticFiles); exports.defaultCopyStaticFilesRootOnly = Object.freeze(_defaultCopyStaticFilesRootOnly); +exports.defaultCopyStaticFilesWsRootOnly = Object.freeze(_defaultCopyStaticFilesWsRootOnly); //# sourceMappingURL=const.js.map \ No newline at end of file diff --git a/packages/@yarn-tool/static-file/lib/const.ts b/packages/@yarn-tool/static-file/lib/const.ts index 873a30f09..843bd8929 100644 --- a/packages/@yarn-tool/static-file/lib/const.ts +++ b/packages/@yarn-tool/static-file/lib/const.ts @@ -37,6 +37,8 @@ const _defaultCopyStaticFiles = [ ['tsc-multi.json.tpl', 'file/tsc-multi.json.tpl', 'tsc-multi.json'], + ['test/__root.ts', 'file/test/__root.ts'], + ] as const; const _defaultCopyStaticFilesRootOnly = [ @@ -53,6 +55,22 @@ const _defaultCopyStaticFilesRootOnly = [ ] as const; +const _defaultCopyStaticFilesWsRootOnly = [ + + ['lerna.json.tpl', 'file/lerna.json.tpl'], + + ['pnpm-workspace.yaml', 'file/pnpm-workspace.yaml'], + + ['tsconfig.json', 'file/tsconfig.json.tpl'], + + ['tsc-multi.json.tpl', 'file/tsc-multi.json.tpl', 'tsc-multi.json'], + + ['__root_ws.ts', 'file/ws-root/__root_ws.ts'], + +] as const; + export const defaultCopyStaticFiles = Object.freeze(_defaultCopyStaticFiles) as any as IStaticFilesMapArray<_Key>; export const defaultCopyStaticFilesRootOnly = Object.freeze(_defaultCopyStaticFilesRootOnly) as any as IStaticFilesMapArray<_Key>; + +export const defaultCopyStaticFilesWsRootOnly = Object.freeze(_defaultCopyStaticFilesWsRootOnly) as any as IStaticFilesMapArray<_Key>; diff --git a/packages/@yarn-tool/static-file/lib/reMapStaticFilesMapArray.js b/packages/@yarn-tool/static-file/lib/reMapStaticFilesMapArray.js index a797da4c6..e885e1184 100644 --- a/packages/@yarn-tool/static-file/lib/reMapStaticFilesMapArray.js +++ b/packages/@yarn-tool/static-file/lib/reMapStaticFilesMapArray.js @@ -4,6 +4,7 @@ exports.reMapStaticFilesMapArray = void 0; const parseStaticMap_1 = require("./parseStaticMap"); const getRowOfStaticFilesMapArray_1 = require("./getRowOfStaticFilesMapArray"); const replaceTargetOfStaticFilesMapArrayEntry_1 = require("./replaceTargetOfStaticFilesMapArrayEntry"); +const array_hyper_unique_1 = require("array-hyper-unique"); function reMapStaticFilesMapArray(file_map, replaceMap) { const ls = (0, parseStaticMap_1.parseStaticMap)(file_map); const arr = Object.entries(replaceMap) @@ -14,7 +15,7 @@ function reMapStaticFilesMapArray(file_map, replaceMap) { } return arr; }, []); - return arr.concat(ls); + return (0, array_hyper_unique_1.array_unique_overwrite)(arr.concat(ls)); } exports.reMapStaticFilesMapArray = reMapStaticFilesMapArray; //# sourceMappingURL=reMapStaticFilesMapArray.js.map \ No newline at end of file diff --git a/packages/@yarn-tool/static-file/lib/reMapStaticFilesMapArray.ts b/packages/@yarn-tool/static-file/lib/reMapStaticFilesMapArray.ts index d95229a7b..452050bbf 100644 --- a/packages/@yarn-tool/static-file/lib/reMapStaticFilesMapArray.ts +++ b/packages/@yarn-tool/static-file/lib/reMapStaticFilesMapArray.ts @@ -2,6 +2,7 @@ import { IStaticFiles, IStaticFilesKey, IStaticFilesMapArray, IStaticFilesMapArr import { parseStaticMap } from './parseStaticMap'; import { getRowOfStaticFilesMapArray } from './getRowOfStaticFilesMapArray'; import { replaceTargetOfStaticFilesMapArrayEntry } from './replaceTargetOfStaticFilesMapArrayEntry'; +import { array_unique_overwrite } from 'array-hyper-unique'; export function reMapStaticFilesMapArray, N extends string>(file_map: T, replaceMap: Record>, @@ -23,5 +24,5 @@ export function reMapStaticFilesMapArray, N exten }, [] as IStaticFilesMapArray) ; - return arr.concat(ls as any) as IStaticFilesMapArray | N> + return array_unique_overwrite(arr.concat(ls as any)) as IStaticFilesMapArray | N> } diff --git a/packages/create-yarn-workspaces/lib/wsCopyStaticFiles.ts b/packages/create-yarn-workspaces/lib/wsCopyStaticFiles.ts index dd2090adb..c043690ca 100644 --- a/packages/create-yarn-workspaces/lib/wsCopyStaticFiles.ts +++ b/packages/create-yarn-workspaces/lib/wsCopyStaticFiles.ts @@ -1,4 +1,8 @@ -import { defaultCopyStaticFiles, defaultCopyStaticFilesRootOnly } from '@yarn-tool/static-file/lib/const'; +import { + defaultCopyStaticFiles, + defaultCopyStaticFilesRootOnly, + defaultCopyStaticFilesWsRootOnly, +} from '@yarn-tool/static-file/lib/const'; import { IStaticFiles, IStaticFilesKey, IStaticFilesMapArray } from '@yarn-tool/static-file/lib/types'; import { reMapStaticFilesMapArray } from '@yarn-tool/static-file/lib/reMapStaticFilesMapArray'; @@ -13,6 +17,7 @@ export function getWsCopyStaticFiles(): IStaticFiles