typesync 0.12.2 → 0.13.1
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/lib/cli-util.d.ts +1 -1
- package/lib/cli-util.js +21 -69
- package/lib/cli-util.js.map +1 -1
- package/lib/cli.js +80 -151
- package/lib/cli.js.map +1 -1
- package/lib/config-service.d.ts +10 -1
- package/lib/config-service.js +37 -71
- package/lib/config-service.js.map +1 -1
- package/lib/fs-utils.d.ts +1 -0
- package/lib/fs-utils.js +28 -0
- package/lib/fs-utils.js.map +1 -0
- package/lib/globber.d.ts +4 -6
- package/lib/globber.js +7 -6
- package/lib/globber.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/package-json-file-service.d.ts +14 -1
- package/lib/package-json-file-service.js +14 -115
- package/lib/package-json-file-service.js.map +1 -1
- package/lib/package-source.d.ts +21 -1
- package/lib/package-source.js +30 -76
- package/lib/package-source.js.map +1 -1
- package/lib/type-syncer.d.ts +7 -3
- package/lib/type-syncer.js +129 -185
- package/lib/type-syncer.js.map +1 -1
- package/lib/types.d.ts +9 -68
- package/lib/types.js.map +1 -1
- package/lib/util.d.ts +4 -16
- package/lib/util.js +33 -163
- package/lib/util.js.map +1 -1
- package/lib/versioning.d.ts +8 -2
- package/lib/versioning.js +5 -5
- package/lib/versioning.js.map +1 -1
- package/lib/workspace-resolver.d.ts +78 -0
- package/lib/workspace-resolver.js +47 -0
- package/lib/workspace-resolver.js.map +1 -0
- package/package.json +6 -3
package/lib/util.js
CHANGED
|
@@ -1,60 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
50
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
51
|
-
if (ar || !(i in from)) {
|
|
52
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
53
|
-
ar[i] = from[i];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
57
|
-
};
|
|
58
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
3
|
exports.uniq = uniq;
|
|
60
4
|
exports.filterMap = filterMap;
|
|
@@ -63,8 +7,6 @@ exports.mergeObjects = mergeObjects;
|
|
|
63
7
|
exports.typed = typed;
|
|
64
8
|
exports.untyped = untyped;
|
|
65
9
|
exports.orderObject = orderObject;
|
|
66
|
-
exports.promisify = promisify;
|
|
67
|
-
exports.flatten = flatten;
|
|
68
10
|
exports.memoizeAsync = memoizeAsync;
|
|
69
11
|
exports.ensureWorkspacesArray = ensureWorkspacesArray;
|
|
70
12
|
/**
|
|
@@ -73,15 +15,7 @@ exports.ensureWorkspacesArray = ensureWorkspacesArray;
|
|
|
73
15
|
* @param source The source to filter
|
|
74
16
|
*/
|
|
75
17
|
function uniq(source) {
|
|
76
|
-
|
|
77
|
-
for (var _i = 0, source_1 = source; _i < source_1.length; _i++) {
|
|
78
|
-
var s = source_1[_i];
|
|
79
|
-
if (seen.includes(s)) {
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
seen.push(s);
|
|
83
|
-
}
|
|
84
|
-
return seen;
|
|
18
|
+
return [...new Set(source)];
|
|
85
19
|
}
|
|
86
20
|
/**
|
|
87
21
|
* Does a `map` and a `filter` in one pass.
|
|
@@ -90,11 +24,10 @@ function uniq(source) {
|
|
|
90
24
|
* @param iteratee The iteratee.
|
|
91
25
|
*/
|
|
92
26
|
function filterMap(source, iteratee) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
for (
|
|
96
|
-
|
|
97
|
-
var mapped = iteratee(item, index++);
|
|
27
|
+
const result = [];
|
|
28
|
+
let index = 0;
|
|
29
|
+
for (const item of source) {
|
|
30
|
+
const mapped = iteratee(item, index++);
|
|
98
31
|
if (mapped === false)
|
|
99
32
|
continue;
|
|
100
33
|
result.push(mapped);
|
|
@@ -107,9 +40,8 @@ function filterMap(source, iteratee) {
|
|
|
107
40
|
* @param source
|
|
108
41
|
*/
|
|
109
42
|
function shrinkObject(source) {
|
|
110
|
-
|
|
111
|
-
for (
|
|
112
|
-
// tslint:disable-next-line
|
|
43
|
+
const object = {};
|
|
44
|
+
for (const key in source) {
|
|
113
45
|
if (typeof source[key] !== 'undefined') {
|
|
114
46
|
object[key] = source[key];
|
|
115
47
|
}
|
|
@@ -122,7 +54,7 @@ function shrinkObject(source) {
|
|
|
122
54
|
* @param source An array of objects to merge.
|
|
123
55
|
*/
|
|
124
56
|
function mergeObjects(source) {
|
|
125
|
-
return source.reduce(
|
|
57
|
+
return source.reduce((accum, next) => ({ ...accum, ...next }), {});
|
|
126
58
|
}
|
|
127
59
|
/**
|
|
128
60
|
* Returns the assumed types package name.
|
|
@@ -131,24 +63,24 @@ function mergeObjects(source) {
|
|
|
131
63
|
function typed(name) {
|
|
132
64
|
// If the package is scoped, the typings scheme is slightly different.
|
|
133
65
|
if (/^@.*?\//i.test(name)) {
|
|
134
|
-
|
|
135
|
-
return
|
|
66
|
+
const splat = name.split('/');
|
|
67
|
+
return `@types/${splat[0].slice(1)}__${splat[1]}`;
|
|
136
68
|
}
|
|
137
|
-
return
|
|
69
|
+
return `@types/${name}`;
|
|
138
70
|
}
|
|
139
71
|
/**
|
|
140
72
|
* Returns the assumed code package name based on a types package name.
|
|
141
73
|
* @param name
|
|
142
74
|
*/
|
|
143
75
|
function untyped(name) {
|
|
144
|
-
|
|
76
|
+
const prefix = '@types/';
|
|
145
77
|
if (!name.startsWith(prefix)) {
|
|
146
78
|
return name;
|
|
147
79
|
}
|
|
148
80
|
name = name.substring(prefix.length);
|
|
149
|
-
|
|
81
|
+
const splat = name.split('__');
|
|
150
82
|
if (splat.length === 2) {
|
|
151
|
-
return
|
|
83
|
+
return `@${splat[0]}/${splat[1]}`;
|
|
152
84
|
}
|
|
153
85
|
return name;
|
|
154
86
|
}
|
|
@@ -157,98 +89,37 @@ function untyped(name) {
|
|
|
157
89
|
* @param source
|
|
158
90
|
*/
|
|
159
91
|
function orderObject(source, comparer) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
for (
|
|
163
|
-
var key = keys_1[_i];
|
|
92
|
+
const keys = Object.keys(source).sort(comparer);
|
|
93
|
+
const result = {};
|
|
94
|
+
for (const key of keys) {
|
|
164
95
|
result[key] = source[key];
|
|
165
96
|
}
|
|
166
97
|
return result;
|
|
167
98
|
}
|
|
168
|
-
/**
|
|
169
|
-
* Promisifies the specified function.
|
|
170
|
-
*
|
|
171
|
-
* @param fn
|
|
172
|
-
*/
|
|
173
|
-
function promisify(fn) {
|
|
174
|
-
return function promisified() {
|
|
175
|
-
var args = [];
|
|
176
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
177
|
-
args[_i] = arguments[_i];
|
|
178
|
-
}
|
|
179
|
-
return new Promise(function (resolve, reject) {
|
|
180
|
-
fn.apply(void 0, __spreadArray(__spreadArray([], args, false), [function callback(err, result) {
|
|
181
|
-
// Edge case with `fs.exists`.
|
|
182
|
-
if (arguments.length === 1 && typeof err === 'boolean') {
|
|
183
|
-
return resolve(err);
|
|
184
|
-
}
|
|
185
|
-
return !err ? resolve(result) : reject(err);
|
|
186
|
-
}], false));
|
|
187
|
-
});
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Flattens a 2-dimensional array.
|
|
192
|
-
*
|
|
193
|
-
* @param source
|
|
194
|
-
*/
|
|
195
|
-
function flatten(source) {
|
|
196
|
-
var result = [];
|
|
197
|
-
for (var _i = 0, source_3 = source; _i < source_3.length; _i++) {
|
|
198
|
-
var items = source_3[_i];
|
|
199
|
-
for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {
|
|
200
|
-
var item = items_1[_a];
|
|
201
|
-
result.push(item);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return result;
|
|
205
|
-
}
|
|
206
99
|
/**
|
|
207
100
|
* Async memoize.
|
|
208
101
|
*
|
|
209
102
|
* @param fn
|
|
210
103
|
*/
|
|
211
104
|
function memoizeAsync(fn) {
|
|
212
|
-
|
|
213
|
-
function run() {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
105
|
+
const cache = new Map();
|
|
106
|
+
async function run(...args) {
|
|
107
|
+
try {
|
|
108
|
+
return await fn(...args);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
cache.delete(args[0]);
|
|
112
|
+
throw err;
|
|
217
113
|
}
|
|
218
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
219
|
-
var err_1;
|
|
220
|
-
return __generator(this, function (_a) {
|
|
221
|
-
switch (_a.label) {
|
|
222
|
-
case 0:
|
|
223
|
-
_a.trys.push([0, 2, , 3]);
|
|
224
|
-
return [4 /*yield*/, fn.apply(void 0, args)];
|
|
225
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
226
|
-
case 2:
|
|
227
|
-
err_1 = _a.sent();
|
|
228
|
-
cache.delete(args[0]);
|
|
229
|
-
throw err_1;
|
|
230
|
-
case 3: return [2 /*return*/];
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
114
|
}
|
|
235
|
-
return function () {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
115
|
+
return async function (...args) {
|
|
116
|
+
const key = args[0];
|
|
117
|
+
if (cache.has(key)) {
|
|
118
|
+
return cache.get(key);
|
|
239
119
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
key = args[0];
|
|
244
|
-
if (cache.has(key)) {
|
|
245
|
-
return [2 /*return*/, cache.get(key)];
|
|
246
|
-
}
|
|
247
|
-
p = run.apply(void 0, args);
|
|
248
|
-
cache.set(key, p);
|
|
249
|
-
return [2 /*return*/, p];
|
|
250
|
-
});
|
|
251
|
-
});
|
|
120
|
+
const p = run(...args);
|
|
121
|
+
cache.set(key, p);
|
|
122
|
+
return p;
|
|
252
123
|
};
|
|
253
124
|
}
|
|
254
125
|
/**
|
|
@@ -263,8 +134,7 @@ function ensureWorkspacesArray(data) {
|
|
|
263
134
|
if (!Array.isArray(data)) {
|
|
264
135
|
return ensureWorkspacesArray(data.packages);
|
|
265
136
|
}
|
|
266
|
-
|
|
267
|
-
if (!data.every(function (s) { return typeof s === 'string'; })) {
|
|
137
|
+
if (!data.every((s) => typeof s === 'string')) {
|
|
268
138
|
return [];
|
|
269
139
|
}
|
|
270
140
|
return data;
|
package/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/lib/versioning.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Version descriptor for versions returned in remote package info.
|
|
3
|
+
*/
|
|
4
|
+
export interface IPackageVersionInfo {
|
|
5
|
+
version: string;
|
|
6
|
+
containsInternalTypings: boolean;
|
|
7
|
+
}
|
|
2
8
|
/**
|
|
3
9
|
* Gets the closest matching package version info.
|
|
4
10
|
*
|
|
5
11
|
* @param availableVersions
|
|
6
12
|
* @param version
|
|
7
13
|
*/
|
|
8
|
-
export declare function getClosestMatchingVersion(availableVersions: IPackageVersionInfo
|
|
14
|
+
export declare function getClosestMatchingVersion(availableVersions: Array<IPackageVersionInfo>, version: string): IPackageVersionInfo;
|
package/lib/versioning.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getClosestMatchingVersion = getClosestMatchingVersion;
|
|
4
|
-
|
|
4
|
+
const semver_1 = require("semver");
|
|
5
5
|
/**
|
|
6
6
|
* Gets the closest matching package version info.
|
|
7
7
|
*
|
|
@@ -9,12 +9,12 @@ var semver_1 = require("semver");
|
|
|
9
9
|
* @param version
|
|
10
10
|
*/
|
|
11
11
|
function getClosestMatchingVersion(availableVersions, version) {
|
|
12
|
-
|
|
12
|
+
const parsedVersion = parseVersion(version);
|
|
13
13
|
if (!parsedVersion) {
|
|
14
14
|
return availableVersions[0];
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const bestMatch = availableVersions.find((v) => {
|
|
17
|
+
const parsedAvailableVersion = parseVersion(v.version);
|
|
18
18
|
if (!parsedAvailableVersion) {
|
|
19
19
|
return false;
|
|
20
20
|
}
|
|
@@ -26,7 +26,7 @@ function getClosestMatchingVersion(availableVersions, version) {
|
|
|
26
26
|
}
|
|
27
27
|
return true;
|
|
28
28
|
});
|
|
29
|
-
return bestMatch
|
|
29
|
+
return bestMatch ?? availableVersions[0];
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Parses the version if possible.
|
package/lib/versioning.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versioning.js","sourceRoot":"","sources":["../src/versioning.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"versioning.js","sourceRoot":"","sources":["../src/versioning.ts"],"names":[],"mappings":";;AAgBA,8DA2BC;AA3CD,mCAA8B;AAU9B;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,iBAA6C,EAC7C,OAAe;IAEf,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7C,MAAM,sBAAsB,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,aAAa,CAAC,KAAK,KAAK,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACzD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,aAAa,CAAC,KAAK,KAAK,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACzD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,OAAO,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,IAAA,cAAK,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;AACrC,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type * as fsUtils from './fs-utils';
|
|
2
|
+
import { IGlobber } from './globber';
|
|
3
|
+
import type { IPackageFile } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Service for fetching monorepo workspaces in a standardized format in package-manager-agnostic way.
|
|
6
|
+
* It is used to allow syncing all types in a workspace when run from the root of a monorepo.
|
|
7
|
+
*/
|
|
8
|
+
export interface IWorkspaceResolverService {
|
|
9
|
+
/**
|
|
10
|
+
* Reads, parses, and normalizes a workspaces configuration from the following files, in this order:
|
|
11
|
+
* - `package.json` `workspaces` field, as an array of globs.
|
|
12
|
+
* - `package.json` `workspaces` field, as an object with a `projects` field, which is an array of globs.
|
|
13
|
+
* - `pnpm-workspace.yaml` `packages` field, as an array of globs.
|
|
14
|
+
*
|
|
15
|
+
* Path is relative to the current working directory.
|
|
16
|
+
*/
|
|
17
|
+
getWorkspaces(packageJson: IPackageFile, root: string, globber: IGlobber, ignored: IWorkspacesArray): Promise<IWorkspacesArray>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @example
|
|
21
|
+
* ```json
|
|
22
|
+
* "workspaces": [
|
|
23
|
+
* "packages/*",
|
|
24
|
+
* ]
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export type IWorkspacesArray = Array<string>;
|
|
28
|
+
/**
|
|
29
|
+
* @example
|
|
30
|
+
* ```yaml
|
|
31
|
+
* projects:
|
|
32
|
+
* - 'packages/*'
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export interface IWorkspacesObject {
|
|
36
|
+
packages: IWorkspacesArray;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @see {@link IWorkspacesArray}
|
|
40
|
+
*/
|
|
41
|
+
export type NpmWorkspacesConfig = IWorkspacesArray;
|
|
42
|
+
/**
|
|
43
|
+
* Yarn is a special snowflake.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```json
|
|
47
|
+
* "workspaces": {
|
|
48
|
+
* "packages": [
|
|
49
|
+
* "packages/*",
|
|
50
|
+
* ],
|
|
51
|
+
* "nohoist": []
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export type YarnWorkspacesConfig = IWorkspacesArray | (IWorkspacesObject & {
|
|
56
|
+
nohoist?: Array<string>;
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* The contents of a `pnpm-workspace.yaml` file.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```yaml
|
|
63
|
+
* packages:
|
|
64
|
+
* - 'packages/*'
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export type PnpmWorkspacesConfig = IWorkspacesObject;
|
|
68
|
+
/**
|
|
69
|
+
* @see {@link IWorkspacesArray}
|
|
70
|
+
*/
|
|
71
|
+
export type BunWorkspacesConfig = IWorkspacesArray;
|
|
72
|
+
/**
|
|
73
|
+
* Section in `package.json` representing workspaces.
|
|
74
|
+
*/
|
|
75
|
+
export type IWorkspacesSection = NpmWorkspacesConfig | YarnWorkspacesConfig | BunWorkspacesConfig;
|
|
76
|
+
export declare function createWorkspaceResolverService({ readFileContents, }: {
|
|
77
|
+
readFileContents: typeof fsUtils.readFileContents;
|
|
78
|
+
}): IWorkspaceResolverService;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createWorkspaceResolverService = createWorkspaceResolverService;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
9
|
+
const util_1 = require("./util");
|
|
10
|
+
function createWorkspaceResolverService({ readFileContents, }) {
|
|
11
|
+
return {
|
|
12
|
+
getWorkspaces: async (packageJson, root, globber, ignored) => {
|
|
13
|
+
const [manifests, ignoredWorkspaces] = await Promise.all([
|
|
14
|
+
(async () => {
|
|
15
|
+
const workspaces = await getWorkspaces(packageJson, root);
|
|
16
|
+
const workspacesArray = (0, util_1.ensureWorkspacesArray)(workspaces);
|
|
17
|
+
const globbedArrays = await Promise.all(workspacesArray.map(async (workspace) => await globber.glob(root, workspace)));
|
|
18
|
+
return (0, util_1.uniq)(globbedArrays.flat());
|
|
19
|
+
})(),
|
|
20
|
+
(async () => {
|
|
21
|
+
const ignoredWorkspacesArrays = await Promise.all(ignored.map(async (ignoredWorkspace) => await globber.glob(root, ignoredWorkspace)));
|
|
22
|
+
return (0, util_1.uniq)(ignoredWorkspacesArrays.flat());
|
|
23
|
+
})(),
|
|
24
|
+
]);
|
|
25
|
+
return manifests.filter((manifest) => !ignoredWorkspaces.includes(manifest));
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
async function getWorkspaces(packageJson, root) {
|
|
29
|
+
const packageJsonWorkspaces = packageJson.workspaces;
|
|
30
|
+
if (packageJsonWorkspaces !== undefined) {
|
|
31
|
+
return packageJsonWorkspaces;
|
|
32
|
+
}
|
|
33
|
+
return await getPnpmWorkspaces(root);
|
|
34
|
+
}
|
|
35
|
+
async function getPnpmWorkspaces(root) {
|
|
36
|
+
try {
|
|
37
|
+
const filePath = node_path_1.default.relative(root, 'pnpm-workspace.yaml');
|
|
38
|
+
const contents = await readFileContents(filePath);
|
|
39
|
+
const pnpmWorkspaces = js_yaml_1.default.load(contents);
|
|
40
|
+
return pnpmWorkspaces.packages;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=workspace-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-resolver.js","sourceRoot":"","sources":["../src/workspace-resolver.ts"],"names":[],"mappings":";;;;;AA+FA,wEA8DC;AA7JD,0DAA4B;AAC5B,sDAA0B;AAG1B,iCAAoD;AA2FpD,SAAgB,8BAA8B,CAAC,EAC7C,gBAAgB,GAGjB;IACC,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;YAC3D,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACvD,CAAC,KAAK,IAAI,EAAE;oBACV,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;oBACzD,MAAM,eAAe,GAAG,IAAA,4BAAqB,EAAC,UAAU,CAAC,CAAA;oBACzD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,eAAe,CAAC,GAAG,CACjB,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CACzD,CACF,CAAA;oBAED,OAAO,IAAA,WAAI,EAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;gBACnC,CAAC,CAAC,EAAE;gBACJ,CAAC,KAAK,IAAI,EAAE;oBACV,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/C,OAAO,CAAC,GAAG,CACT,KAAK,EAAE,gBAAgB,EAAE,EAAE,CACzB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAC7C,CACF,CAAA;oBAED,OAAO,IAAA,WAAI,EAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC7C,CAAC,CAAC,EAAE;aACL,CAAC,CAAA;YAEF,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACpD,CAAA;QACH,CAAC;KACF,CAAA;IAED,KAAK,UAAU,aAAa,CAC1B,WAAyB,EACzB,IAAY;QAEZ,MAAM,qBAAqB,GAAG,WAAW,CAAC,UAAU,CAAA;QACpD,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,qBAAqB,CAAA;QAC9B,CAAC;QAED,OAAO,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,UAAU,iBAAiB,CAC9B,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YACjD,MAAM,cAAc,GAAG,iBAAI,CAAC,IAAI,CAAC,QAAQ,CAAyB,CAAA;YAElE,OAAO,cAAc,CAAC,QAAQ,CAAA;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typesync",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "Install missing TypeScript typings for your dependencies.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16.0.0"
|
|
@@ -52,13 +52,15 @@
|
|
|
52
52
|
"cosmiconfig": "^9.0.0",
|
|
53
53
|
"detect-indent": "^6.0.0",
|
|
54
54
|
"glob": "^10.4.2",
|
|
55
|
+
"js-yaml": "^4.1.0",
|
|
55
56
|
"npm-registry-fetch": "^17.1.0",
|
|
56
57
|
"ora": "^5.1.0",
|
|
57
58
|
"semver": "^7.6.2"
|
|
58
59
|
},
|
|
59
60
|
"devDependencies": {
|
|
60
|
-
"@types/glob": "^8.1.0",
|
|
61
61
|
"@types/jest": "^29.5.12",
|
|
62
|
+
"@types/js-yaml": "~4.0.9 || ~4.1.0",
|
|
63
|
+
"@types/node": "~16.18.102",
|
|
62
64
|
"@types/npm-registry-fetch": "^8.0.7",
|
|
63
65
|
"@types/semver": "^7.5.8",
|
|
64
66
|
"@typescript-eslint/eslint-plugin": "^7.15.0",
|
|
@@ -97,5 +99,6 @@
|
|
|
97
99
|
"tsx",
|
|
98
100
|
"js"
|
|
99
101
|
]
|
|
100
|
-
}
|
|
102
|
+
},
|
|
103
|
+
"packageManager": "npm@8.19.4"
|
|
101
104
|
}
|