@goldstack/utils-typescript-references 0.1.4 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/src/sharedUtils.d.ts.map +1 -1
- package/dist/src/sharedUtils.js +12 -0
- package/dist/src/sharedUtils.js.map +1 -1
- package/dist/src/updatePackageProjectReferences.js +9 -4
- package/dist/src/updatePackageProjectReferences.js.map +1 -1
- package/dist/src/updateRootProjectReferences.d.ts.map +1 -1
- package/dist/src/updateRootProjectReferences.js +6 -1
- package/dist/src/updateRootProjectReferences.js.map +1 -1
- package/dist/src/utilsTypeScriptReferences.d.ts.map +1 -1
- package/dist/src/utilsTypeScriptReferences.js +0 -12
- package/dist/src/utilsTypeScriptReferences.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -25,8 +25,6 @@ Running this script will:
|
|
|
25
25
|
|
|
26
26
|
2. Update all the `"references"` in the `tsconfig.json` for all packages in the workspace so that it includes all the packages that it declares as a dependency in `package.json`.
|
|
27
27
|
|
|
28
|
-
This package uses [@monorepo-utils/workspaces-to-typescript-project-references](https://github.com/azu/monorepo-utils/tree/master/packages/@monorepo-utils/workspaces-to-typescript-project-references#readme).
|
|
29
|
-
|
|
30
28
|
## Usage
|
|
31
29
|
|
|
32
30
|
Install as development dependency using
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedUtils.d.ts","sourceRoot":"","sources":["../../src/sharedUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sharedUtils.d.ts","sourceRoot":"","sources":["../../src/sharedUtils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CA+BzD"}
|
package/dist/src/sharedUtils.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.getPackages = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
4
8
|
function getPackages(cmdRes) {
|
|
5
9
|
return cmdRes
|
|
6
10
|
.split('\n')
|
|
@@ -18,6 +22,14 @@ function getPackages(cmdRes) {
|
|
|
18
22
|
name: undefined,
|
|
19
23
|
};
|
|
20
24
|
}
|
|
25
|
+
// ignore packages without TypeScript configuration
|
|
26
|
+
if (!fs_1.default.existsSync(`${packageData.location}/tsconfig.json`)) {
|
|
27
|
+
console.log('skipping package', packageData.location);
|
|
28
|
+
return {
|
|
29
|
+
path: undefined,
|
|
30
|
+
name: undefined,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
21
33
|
return {
|
|
22
34
|
path: packageData.location,
|
|
23
35
|
name: packageData.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedUtils.js","sourceRoot":"","sources":["../../src/sharedUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sharedUtils.js","sourceRoot":"","sources":["../../src/sharedUtils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AAOpB,SAAgB,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACtB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB,CAAC;SACH;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,WAAW,CAAC,QAAQ,KAAK,GAAG,EAAE;YAChC,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB,CAAC;SACH;QACD,mDAAmD;QACnD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,QAAQ,gBAAgB,CAAC,EAAE;YAC3D,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB,CAAC;SACH;QACD,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AA/BD,kCA+BC"}
|
|
@@ -23,7 +23,6 @@ const updatePackageProjectReferences = () => {
|
|
|
23
23
|
};
|
|
24
24
|
exports.updatePackageProjectReferences = updatePackageProjectReferences;
|
|
25
25
|
function processPackage(packageDir, allPackages, packageData) {
|
|
26
|
-
console.log(`Processing package ${packageDir}`);
|
|
27
26
|
const packageJson = fs_1.default
|
|
28
27
|
.readFileSync(path_1.default.resolve(packageDir, './package.json'))
|
|
29
28
|
.toString();
|
|
@@ -49,8 +48,14 @@ function processPackage(packageDir, allPackages, packageData) {
|
|
|
49
48
|
path: path_1.default.posix.relative(packageData.path, dependencyPackageData.path),
|
|
50
49
|
};
|
|
51
50
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
const tsConfigPath = path_1.default.resolve(packageDir, './tsconfig.json');
|
|
52
|
+
const newData = JSON.stringify(tsConfigData, null, 2);
|
|
53
|
+
// only update the config file when it has changed
|
|
54
|
+
if (!fs_1.default.existsSync(tsConfigPath) ||
|
|
55
|
+
fs_1.default.readFileSync(tsConfigPath).toString() !== newData) {
|
|
56
|
+
console.log(`Updating project references in ${tsConfigPath} to:\n` +
|
|
57
|
+
tsConfigData.references.map((refData) => refData.path).join('\n '));
|
|
58
|
+
fs_1.default.writeFileSync(tsConfigPath, newData);
|
|
59
|
+
}
|
|
55
60
|
}
|
|
56
61
|
//# sourceMappingURL=updatePackageProjectReferences.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updatePackageProjectReferences.js","sourceRoot":"","sources":["../../src/updatePackageProjectReferences.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,iDAAyC;AACzC,+CAAyD;AACzD,gDAAwB;AAEjB,MAAM,8BAA8B,GAAG,GAAS,EAAE;IACvD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,6BAA6B,CAAC,CAAC,QAAQ,EAAE,CAAC;IAElE,MAAM,WAAW,GAAG,IAAA,yBAAW,EAAC,MAAM,CAAC,CAAC;IAExC,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE;QACrC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC;QAEpC,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,EAAE;YAC9D,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;SACtD;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;SAC/C;KACF;AACH,CAAC,CAAC;AAdW,QAAA,8BAA8B,kCAczC;AAEF,SAAS,cAAc,CACrB,UAAkB,EAClB,WAA0B,EAC1B,WAAwB;IAExB,
|
|
1
|
+
{"version":3,"file":"updatePackageProjectReferences.js","sourceRoot":"","sources":["../../src/updatePackageProjectReferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateRootProjectReferences.d.ts","sourceRoot":"","sources":["../../src/updateRootProjectReferences.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,2BAA2B,QAAO,
|
|
1
|
+
{"version":3,"file":"updateRootProjectReferences.d.ts","sourceRoot":"","sources":["../../src/updateRootProjectReferences.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,2BAA2B,QAAO,IAsB9C,CAAC"}
|
|
@@ -13,7 +13,12 @@ const updateRootProjectReferences = () => {
|
|
|
13
13
|
const tsConfig = fs_1.default.readFileSync('./tsconfig.json').toString();
|
|
14
14
|
const tsConfigData = JSON.parse(tsConfig);
|
|
15
15
|
tsConfigData.references = allPackages.filter((packageData) => packageData.path);
|
|
16
|
-
|
|
16
|
+
const newContent = JSON.stringify(tsConfigData, null, 2);
|
|
17
|
+
if (newContent !== fs_1.default.readFileSync('./tsconfig.json').toString()) {
|
|
18
|
+
console.log("Updating project references in './tsconfig.json' to:\n" +
|
|
19
|
+
tsConfigData.references.map((refData) => refData.path).join('\n '));
|
|
20
|
+
fs_1.default.writeFileSync('./tsconfig.json', newContent);
|
|
21
|
+
}
|
|
17
22
|
};
|
|
18
23
|
exports.updateRootProjectReferences = updateRootProjectReferences;
|
|
19
24
|
//# sourceMappingURL=updateRootProjectReferences.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateRootProjectReferences.js","sourceRoot":"","sources":["../../src/updateRootProjectReferences.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,iDAAyC;AACzC,+CAA4C;AAErC,MAAM,2BAA2B,GAAG,GAAS,EAAE;IACpD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,6BAA6B,CAAC,CAAC,QAAQ,EAAE,CAAC;IAElE,MAAM,WAAW,GAAG,IAAA,yBAAW,EAAC,MAAM,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,YAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE/D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE1C,YAAY,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAC1C,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAClC,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"updateRootProjectReferences.js","sourceRoot":"","sources":["../../src/updateRootProjectReferences.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,iDAAyC;AACzC,+CAA4C;AAErC,MAAM,2BAA2B,GAAG,GAAS,EAAE;IACpD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,6BAA6B,CAAC,CAAC,QAAQ,EAAE,CAAC;IAElE,MAAM,WAAW,GAAG,IAAA,yBAAW,EAAC,MAAM,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,YAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE/D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE1C,YAAY,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAC1C,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAClC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEzD,IAAI,UAAU,KAAK,YAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChE,OAAO,CAAC,GAAG,CACT,wDAAwD;YACtD,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CACrE,CAAC;QACF,YAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;KACjD;AACH,CAAC,CAAC;AAtBW,QAAA,2BAA2B,+BAsBtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilsTypeScriptReferences.d.ts","sourceRoot":"","sources":["../../src/utilsTypeScriptReferences.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utilsTypeScriptReferences.d.ts","sourceRoot":"","sources":["../../src/utilsTypeScriptReferences.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG,SAAU,MAAM,EAAE,KAAG,IAQpC,CAAC"}
|
|
@@ -4,19 +4,7 @@ exports.run = void 0;
|
|
|
4
4
|
const updatePackageProjectReferences_1 = require("./updatePackageProjectReferences");
|
|
5
5
|
const updateRootProjectReferences_1 = require("./updateRootProjectReferences");
|
|
6
6
|
const run = (args) => {
|
|
7
|
-
console.log('run ' + args);
|
|
8
7
|
if (args.indexOf('--skipPackages') === -1) {
|
|
9
|
-
// const res = toProjectReferences({
|
|
10
|
-
// rootDir: path.resolve('./'),
|
|
11
|
-
// checkOnly: false,
|
|
12
|
-
// });
|
|
13
|
-
// if (!res.ok) {
|
|
14
|
-
// if (res.aggregateError) {
|
|
15
|
-
// console.error(res.aggregateError.message);
|
|
16
|
-
// }
|
|
17
|
-
// process.exit(1);
|
|
18
|
-
// }
|
|
19
|
-
console.log('packages');
|
|
20
8
|
(0, updatePackageProjectReferences_1.updatePackageProjectReferences)();
|
|
21
9
|
}
|
|
22
10
|
if (args.indexOf('--skipRoot') === -1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilsTypeScriptReferences.js","sourceRoot":"","sources":["../../src/utilsTypeScriptReferences.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utilsTypeScriptReferences.js","sourceRoot":"","sources":["../../src/utilsTypeScriptReferences.ts"],"names":[],"mappings":";;;AAAA,qFAAkF;AAClF,+EAA4E;AAErE,MAAM,GAAG,GAAG,CAAC,IAAc,EAAQ,EAAE;IAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;QACzC,IAAA,+DAA8B,GAAE,CAAC;KAClC;IAED,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;QACrC,IAAA,yDAA2B,GAAE,CAAC;KAC/B;AACH,CAAC,CAAC;AARW,QAAA,GAAG,OAQd"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldstack/utils-typescript-references",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Utility for keeping TypeScript references in sync in
|
|
3
|
+
"version": "0.1.7",
|
|
4
|
+
"description": "Utility for keeping TypeScript references in sync in a Yarn monorepo",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goldstack",
|
|
7
7
|
"utility",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "yarn clean && yarn compile",
|
|
27
27
|
"build:watch": "yarn clean && yarn compile-watch",
|
|
28
|
-
"clean": "
|
|
28
|
+
"clean": "rimraf ./dist",
|
|
29
29
|
"compile": "tsc -p tsconfig.json",
|
|
30
30
|
"coverage": "jest --collect-coverage --passWithNoTests --config=./jest.config.js",
|
|
31
31
|
"prepublishOnly": "yarn run build",
|
|
@@ -35,15 +35,15 @@
|
|
|
35
35
|
"version:apply:force": "yarn version $@ && yarn version apply"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@monorepo-utils/workspaces-to-typescript-project-references": "^2.6.2",
|
|
39
38
|
"source-map-support": "^0.5.21"
|
|
40
39
|
},
|
|
41
40
|
"devDependencies": {
|
|
42
|
-
"@goldstack/utils-git": "0.1.
|
|
41
|
+
"@goldstack/utils-git": "0.1.31",
|
|
43
42
|
"@types/jest": "^27.0.2",
|
|
44
43
|
"@types/node": "^16.11.0",
|
|
45
44
|
"@types/source-map-support": "^0.5.4",
|
|
46
45
|
"jest": "^26.6.3",
|
|
46
|
+
"rimraf": "^3.0.2",
|
|
47
47
|
"ts-jest": "^26.5.4",
|
|
48
48
|
"typescript": "^4.4.3"
|
|
49
49
|
},
|