@servicetitan/startup-utils 27.4.0-canary.0 → 34.0.0
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/dist/get-version-mismatches.d.ts +1 -1
- package/dist/get-version-mismatches.d.ts.map +1 -1
- package/dist/get-version-mismatches.js +29 -16
- package/dist/get-version-mismatches.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -19
- package/dist/index.js.map +1 -1
- package/dist/is-compatible.js +22 -12
- package/dist/is-compatible.js.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/package.json +12 -4
- package/src/__tests__/get-version-mismatches.test.ts +27 -53
- package/src/__tests__/is-compatible.test.ts +1 -1
- package/src/get-version-mismatches.ts +1 -1
- package/src/index.ts +1 -2
- package/dist/get-exposed-dependencies.d.ts +0 -3
- package/dist/get-exposed-dependencies.d.ts.map +0 -1
- package/dist/get-exposed-dependencies.js +0 -10
- package/dist/get-exposed-dependencies.js.map +0 -1
- package/dist/load-shared-dependencies.d.ts +0 -2
- package/dist/load-shared-dependencies.d.ts.map +0 -1
- package/dist/load-shared-dependencies.js +0 -34
- package/dist/load-shared-dependencies.js.map +0 -1
- package/src/__tests__/load-shared-dependencies.test.ts +0 -114
- package/src/get-exposed-dependencies.ts +0 -14
- package/src/load-shared-dependencies.ts +0 -38
|
@@ -2,5 +2,5 @@ import { ExposedDependencies } from './types';
|
|
|
2
2
|
export declare const getVersionMismatches: (exposedDependencies: ExposedDependencies, dependencies: Record<string, string>, sharedDependencies: Record<string, string>) => Record<string, {
|
|
3
3
|
host: string;
|
|
4
4
|
package: string;
|
|
5
|
-
}
|
|
5
|
+
}> | undefined;
|
|
6
6
|
//# sourceMappingURL=get-version-mismatches.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-version-mismatches.d.ts","sourceRoot":"","sources":["../src/get-version-mismatches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"get-version-mismatches.d.ts","sourceRoot":"","sources":["../src/get-version-mismatches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,oBAAoB,GAC7B,qBAAqB,mBAAmB,EACxC,cAAc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,oBAAoB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;UAeT,MAAM;aAAW,MAAM;cAc3D,CAAC"}
|
|
@@ -1,27 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "getVersionMismatches", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return getVersionMismatches;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _iscompatible = require("./is-compatible");
|
|
12
|
+
const getVersionMismatches = (exposedDependencies, dependencies, sharedDependencies)=>{
|
|
13
|
+
const mismatch = Object.entries(exposedDependencies).reduce((result, [dependency, { version: hostVersion }])=>{
|
|
7
14
|
const packageVersion = dependencies[dependency];
|
|
8
|
-
if (packageVersion &&
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
if (packageVersion && !!sharedDependencies[dependency] && !(0, _iscompatible.isCompatible)(hostVersion, packageVersion)) {
|
|
16
|
+
result[dependency] = {
|
|
17
|
+
host: hostVersion,
|
|
18
|
+
package: packageVersion
|
|
19
|
+
};
|
|
12
20
|
}
|
|
13
21
|
return result;
|
|
14
22
|
}, {});
|
|
15
|
-
for (const [dependency, variable] of Object.entries(sharedDependencies))
|
|
23
|
+
for (const [dependency, variable] of Object.entries(sharedDependencies)){
|
|
16
24
|
const packageVersion = dependencies[dependency];
|
|
17
25
|
if (!exposedDependencies[dependency]) {
|
|
18
|
-
mismatch[dependency] = {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
mismatch[dependency] = {
|
|
27
|
+
host: 'missing',
|
|
28
|
+
package: packageVersion
|
|
29
|
+
};
|
|
30
|
+
} else if (exposedDependencies[dependency].variable !== variable) {
|
|
31
|
+
mismatch[dependency] = {
|
|
32
|
+
host: 'wrong global variable',
|
|
33
|
+
package: packageVersion
|
|
34
|
+
};
|
|
22
35
|
}
|
|
23
36
|
}
|
|
24
|
-
return mismatch;
|
|
37
|
+
return Object.keys(mismatch).length ? mismatch : undefined;
|
|
25
38
|
};
|
|
26
|
-
|
|
39
|
+
|
|
27
40
|
//# sourceMappingURL=get-version-mismatches.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/get-version-mismatches.ts"],"sourcesContent":["import { isCompatible } from './is-compatible';\nimport { ExposedDependencies } from './types';\n\nexport const getVersionMismatches = (\n exposedDependencies: ExposedDependencies,\n dependencies: Record<string, string>,\n sharedDependencies: Record<string, string>\n) => {\n const mismatch = Object.entries(exposedDependencies).reduce(\n (result, [dependency, { version: hostVersion }]) => {\n const packageVersion = dependencies[dependency];\n if (\n packageVersion &&\n !!sharedDependencies[dependency] &&\n !isCompatible(hostVersion, packageVersion)\n ) {\n result[dependency] = { host: hostVersion, package: packageVersion };\n }\n\n return result;\n },\n {} as Record<string, { host: string; package: string }>\n );\n\n for (const [dependency, variable] of Object.entries(sharedDependencies)) {\n const packageVersion = dependencies[dependency];\n\n if (!exposedDependencies[dependency]) {\n mismatch[dependency] = { host: 'missing', package: packageVersion };\n } else if (exposedDependencies[dependency].variable !== variable) {\n mismatch[dependency] = { host: 'wrong global variable', package: packageVersion };\n }\n }\n\n return Object.keys(mismatch).length ? mismatch : undefined;\n};\n"],"names":["getVersionMismatches","exposedDependencies","dependencies","sharedDependencies","mismatch","Object","entries","reduce","result","dependency","version","hostVersion","packageVersion","isCompatible","host","package","variable","keys","length","undefined"],"mappings":";;;;+BAGaA;;;eAAAA;;;8BAHgB;AAGtB,MAAMA,uBAAuB,CAChCC,qBACAC,cACAC;IAEA,MAAMC,WAAWC,OAAOC,OAAO,CAACL,qBAAqBM,MAAM,CACvD,CAACC,QAAQ,CAACC,YAAY,EAAEC,SAASC,WAAW,EAAE,CAAC;QAC3C,MAAMC,iBAAiBV,YAAY,CAACO,WAAW;QAC/C,IACIG,kBACA,CAAC,CAACT,kBAAkB,CAACM,WAAW,IAChC,CAACI,IAAAA,0BAAY,EAACF,aAAaC,iBAC7B;YACEJ,MAAM,CAACC,WAAW,GAAG;gBAAEK,MAAMH;gBAAaI,SAASH;YAAe;QACtE;QAEA,OAAOJ;IACX,GACA,CAAC;IAGL,KAAK,MAAM,CAACC,YAAYO,SAAS,IAAIX,OAAOC,OAAO,CAACH,oBAAqB;QACrE,MAAMS,iBAAiBV,YAAY,CAACO,WAAW;QAE/C,IAAI,CAACR,mBAAmB,CAACQ,WAAW,EAAE;YAClCL,QAAQ,CAACK,WAAW,GAAG;gBAAEK,MAAM;gBAAWC,SAASH;YAAe;QACtE,OAAO,IAAIX,mBAAmB,CAACQ,WAAW,CAACO,QAAQ,KAAKA,UAAU;YAC9DZ,QAAQ,CAACK,WAAW,GAAG;gBAAEK,MAAM;gBAAyBC,SAASH;YAAe;QACpF;IACJ;IAEA,OAAOP,OAAOY,IAAI,CAACb,UAAUc,MAAM,GAAGd,WAAWe;AACrD"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,mBAAmB,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
_export_star(require("./get-version-mismatches"), exports);
|
|
6
|
+
_export_star(require("./is-compatible"), exports);
|
|
7
|
+
function _export_star(from, to) {
|
|
8
|
+
Object.keys(from).forEach(function(k) {
|
|
9
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
10
|
+
Object.defineProperty(to, k, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function() {
|
|
13
|
+
return from[k];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return from;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './get-version-mismatches';\nexport * from './is-compatible';\nexport type * from './types';\n"],"names":[],"mappings":";;;;qBAAc;qBACA"}
|
package/dist/is-compatible.js
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "isCompatible", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return isCompatible;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _semver = /*#__PURE__*/ _interop_require_default(require("semver"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
8
17
|
function isCompatible(hostVersion, packageVersion) {
|
|
9
18
|
if (hostVersion === packageVersion) {
|
|
10
19
|
return true;
|
|
@@ -16,21 +25,22 @@ function isCompatible(hostVersion, packageVersion) {
|
|
|
16
25
|
return true;
|
|
17
26
|
}
|
|
18
27
|
// host and package have exact non-equal versions
|
|
19
|
-
if (
|
|
28
|
+
if (_semver.default.valid(hostVersion) && _semver.default.valid(packageVersion)) {
|
|
20
29
|
return false;
|
|
21
30
|
}
|
|
22
31
|
// exact package version couldn't be compatible with host range
|
|
23
|
-
if (
|
|
32
|
+
if (_semver.default.validRange(hostVersion) && _semver.default.valid(packageVersion)) {
|
|
24
33
|
return false;
|
|
25
34
|
}
|
|
26
35
|
// exact host version must be in package range
|
|
27
|
-
if (
|
|
28
|
-
return
|
|
36
|
+
if (_semver.default.valid(hostVersion) && _semver.default.validRange(packageVersion)) {
|
|
37
|
+
return _semver.default.satisfies(hostVersion, packageVersion);
|
|
29
38
|
}
|
|
30
39
|
// host range must be fully included in package range
|
|
31
|
-
if (
|
|
32
|
-
return
|
|
40
|
+
if (_semver.default.validRange(hostVersion) && _semver.default.validRange(packageVersion)) {
|
|
41
|
+
return _semver.default.subset(hostVersion, packageVersion);
|
|
33
42
|
}
|
|
34
43
|
return false;
|
|
35
44
|
}
|
|
45
|
+
|
|
36
46
|
//# sourceMappingURL=is-compatible.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/is-compatible.ts"],"sourcesContent":["import semver from 'semver';\n\nexport function isCompatible(hostVersion: string, packageVersion: string) {\n if (hostVersion === packageVersion) {\n return true;\n }\n\n if (hostVersion === '*') {\n return false;\n }\n\n if (packageVersion === '*') {\n return true;\n }\n\n // host and package have exact non-equal versions\n if (semver.valid(hostVersion) && semver.valid(packageVersion)) {\n return false;\n }\n\n // exact package version couldn't be compatible with host range\n if (semver.validRange(hostVersion) && semver.valid(packageVersion)) {\n return false;\n }\n\n // exact host version must be in package range\n if (semver.valid(hostVersion) && semver.validRange(packageVersion)) {\n return semver.satisfies(hostVersion, packageVersion);\n }\n\n // host range must be fully included in package range\n if (semver.validRange(hostVersion) && semver.validRange(packageVersion)) {\n return semver.subset(hostVersion, packageVersion);\n }\n\n return false;\n}\n"],"names":["isCompatible","hostVersion","packageVersion","semver","valid","validRange","satisfies","subset"],"mappings":";;;;+BAEgBA;;;eAAAA;;;+DAFG;;;;;;AAEZ,SAASA,aAAaC,WAAmB,EAAEC,cAAsB;IACpE,IAAID,gBAAgBC,gBAAgB;QAChC,OAAO;IACX;IAEA,IAAID,gBAAgB,KAAK;QACrB,OAAO;IACX;IAEA,IAAIC,mBAAmB,KAAK;QACxB,OAAO;IACX;IAEA,iDAAiD;IACjD,IAAIC,eAAM,CAACC,KAAK,CAACH,gBAAgBE,eAAM,CAACC,KAAK,CAACF,iBAAiB;QAC3D,OAAO;IACX;IAEA,+DAA+D;IAC/D,IAAIC,eAAM,CAACE,UAAU,CAACJ,gBAAgBE,eAAM,CAACC,KAAK,CAACF,iBAAiB;QAChE,OAAO;IACX;IAEA,8CAA8C;IAC9C,IAAIC,eAAM,CAACC,KAAK,CAACH,gBAAgBE,eAAM,CAACE,UAAU,CAACH,iBAAiB;QAChE,OAAOC,eAAM,CAACG,SAAS,CAACL,aAAaC;IACzC;IAEA,qDAAqD;IACrD,IAAIC,eAAM,CAACE,UAAU,CAACJ,gBAAgBE,eAAM,CAACE,UAAU,CAACH,iBAAiB;QACrE,OAAOC,eAAM,CAACI,MAAM,CAACN,aAAaC;IACtC;IAEA,OAAO;AACX"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/startup-utils",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "",
|
|
3
|
+
"version": "34.0.0",
|
|
4
|
+
"description": "Reusable utility functions and helpers for uikit packages",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/servicetitan/uikit.git",
|
|
8
8
|
"directory": "packages/startup-utils"
|
|
9
9
|
},
|
|
10
|
+
"sideEffects": false,
|
|
10
11
|
"main": "./dist/index.js",
|
|
11
12
|
"typings": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"default": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
12
19
|
"files": [
|
|
13
20
|
"dist",
|
|
14
21
|
"src"
|
|
15
22
|
],
|
|
16
23
|
"dependencies": {
|
|
17
|
-
"semver": "
|
|
24
|
+
"semver": "~7.7.3"
|
|
18
25
|
},
|
|
19
26
|
"publishConfig": {
|
|
20
27
|
"access": "public"
|
|
21
28
|
},
|
|
22
29
|
"cli": {
|
|
23
30
|
"webpack": false
|
|
24
|
-
}
|
|
31
|
+
},
|
|
32
|
+
"gitHead": "e193dc22703963f67099874a24de535d0696b6e2"
|
|
25
33
|
}
|
|
@@ -1,85 +1,59 @@
|
|
|
1
1
|
import { getVersionMismatches } from '../get-version-mismatches';
|
|
2
2
|
import { ExposedDependencies } from '../types';
|
|
3
3
|
|
|
4
|
-
describe(`[
|
|
4
|
+
describe(`[startup-utils] ${getVersionMismatches.name}`, () => {
|
|
5
5
|
let sharedDependencies: Record<string, string> = {};
|
|
6
6
|
let dependencies: Record<string, string> = {};
|
|
7
7
|
let exposedDependencies: ExposedDependencies = {};
|
|
8
8
|
|
|
9
9
|
beforeEach(() => {
|
|
10
10
|
sharedDependencies = {
|
|
11
|
-
|
|
11
|
+
foo: 'SharedDependencies.Foo',
|
|
12
|
+
bar: 'SharedDependencies.Bar',
|
|
12
13
|
};
|
|
13
|
-
|
|
14
14
|
dependencies = {
|
|
15
|
-
|
|
15
|
+
foo: '1.0.0',
|
|
16
|
+
bar: '2.0.0',
|
|
16
17
|
};
|
|
17
|
-
|
|
18
18
|
exposedDependencies = {
|
|
19
|
-
'
|
|
20
|
-
|
|
21
|
-
variable: 'SharedDependencies.ServiceTitan.DesignSystem',
|
|
22
|
-
},
|
|
19
|
+
foo: { version: '1.0.0', variable: 'SharedDependencies.Foo' },
|
|
20
|
+
bar: { version: '2.0.0', variable: 'SharedDependencies.Bar' },
|
|
23
21
|
};
|
|
24
22
|
});
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
expect(
|
|
29
|
-
getVersionMismatches(exposedDependencies, dependencies, sharedDependencies)
|
|
30
|
-
).toEqual({});
|
|
31
|
-
});
|
|
32
|
-
}
|
|
24
|
+
const subject = () =>
|
|
25
|
+
getVersionMismatches(exposedDependencies, dependencies, sharedDependencies);
|
|
33
26
|
|
|
34
|
-
|
|
27
|
+
test('returns undefined', () => {
|
|
28
|
+
expect(subject()).toBeUndefined();
|
|
29
|
+
});
|
|
35
30
|
|
|
36
|
-
describe('when
|
|
37
|
-
beforeEach(() => (dependencies
|
|
31
|
+
describe('when host exposes different version', () => {
|
|
32
|
+
beforeEach(() => (dependencies.foo = '2.0.0'));
|
|
38
33
|
|
|
39
|
-
test('returns
|
|
40
|
-
expect(
|
|
41
|
-
|
|
42
|
-
).toEqual({
|
|
43
|
-
'@servicetitan/design-system': {
|
|
44
|
-
host: '~11.8.0',
|
|
45
|
-
package: '~12.0.0',
|
|
46
|
-
},
|
|
34
|
+
test('returns mismatches', () => {
|
|
35
|
+
expect(subject()).toEqual({
|
|
36
|
+
foo: { host: '1.0.0', package: '2.0.0' },
|
|
47
37
|
});
|
|
48
38
|
});
|
|
49
|
-
|
|
50
|
-
describe('when the mismatch is not a shared dependency', () => {
|
|
51
|
-
beforeEach(() => (sharedDependencies = {}));
|
|
52
|
-
|
|
53
|
-
itReturnsNoMismatches();
|
|
54
|
-
});
|
|
55
39
|
});
|
|
56
40
|
|
|
57
|
-
describe('when
|
|
58
|
-
beforeEach(() => delete exposedDependencies
|
|
41
|
+
describe('when host omits dependency', () => {
|
|
42
|
+
beforeEach(() => delete exposedDependencies.foo);
|
|
59
43
|
|
|
60
|
-
test('returns
|
|
61
|
-
expect(
|
|
62
|
-
|
|
63
|
-
).toEqual({
|
|
64
|
-
'@servicetitan/design-system': {
|
|
65
|
-
host: 'missing',
|
|
66
|
-
package: '~11.8.0',
|
|
67
|
-
},
|
|
44
|
+
test('returns missing dependency', () => {
|
|
45
|
+
expect(subject()).toEqual({
|
|
46
|
+
foo: { host: 'missing', package: '1.0.0' },
|
|
68
47
|
});
|
|
69
48
|
});
|
|
70
49
|
});
|
|
71
50
|
|
|
72
|
-
describe('when
|
|
73
|
-
beforeEach(() => (exposedDependencies
|
|
51
|
+
describe('when host exposes different variable', () => {
|
|
52
|
+
beforeEach(() => (exposedDependencies.foo.variable = 'WrongVariable'));
|
|
74
53
|
|
|
75
|
-
test('returns
|
|
76
|
-
expect(
|
|
77
|
-
|
|
78
|
-
).toEqual({
|
|
79
|
-
'@servicetitan/design-system': {
|
|
80
|
-
host: 'wrong global variable',
|
|
81
|
-
package: '~11.8.0',
|
|
82
|
-
},
|
|
54
|
+
test('returns "wrong global"', () => {
|
|
55
|
+
expect(subject()).toEqual({
|
|
56
|
+
foo: { host: 'wrong global variable', package: '1.0.0' },
|
|
83
57
|
});
|
|
84
58
|
});
|
|
85
59
|
});
|
package/src/index.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-exposed-dependencies.d.ts","sourceRoot":"","sources":["../src/get-exposed-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,sBAAsB,CAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,uBAS7C"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getExposedDependencies = getExposedDependencies;
|
|
4
|
-
function getExposedDependencies(sharedDependencies, getVersion) {
|
|
5
|
-
return Object.entries(sharedDependencies).reduce((result, [dependency, variable]) => ({
|
|
6
|
-
...result,
|
|
7
|
-
[dependency]: { version: getVersion(dependency), variable },
|
|
8
|
-
}), {});
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=get-exposed-dependencies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-exposed-dependencies.js","sourceRoot":"","sources":["../src/get-exposed-dependencies.ts"],"names":[],"mappings":";;AAEA,wDAWC;AAXD,SAAgB,sBAAsB,CAClC,kBAA0C,EAC1C,UAA0C;IAE1C,OAAO,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAC5C,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,GAAG,MAAM;QACT,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE;KAC9D,CAAC,EACF,EAAyB,CAC5B,CAAC;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load-shared-dependencies.d.ts","sourceRoot":"","sources":["../src/load-shared-dependencies.ts"],"names":[],"mappings":"AAaA,wBAAgB,sBAAsB,CAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAChD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GACvD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBxB"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadSharedDependencies = loadSharedDependencies;
|
|
4
|
-
const getDefaultSharedDependencies = () => ({
|
|
5
|
-
'@servicetitan/design-system': 'SharedDependencies.ServiceTitan.DesignSystem',
|
|
6
|
-
'@servicetitan/anvil2': 'SharedDependencies.ServiceTitan.Anvil2',
|
|
7
|
-
'classnames': 'SharedDependencies.ClassNames',
|
|
8
|
-
'formstate': 'SharedDependencies.FormState',
|
|
9
|
-
'mobx': 'SharedDependencies.MobX',
|
|
10
|
-
'mobx-react': 'SharedDependencies.MobXReact',
|
|
11
|
-
'mobx-utils': 'SharedDependencies.MobXUtils',
|
|
12
|
-
'react': 'SharedDependencies.React',
|
|
13
|
-
'react-dom': 'SharedDependencies.ReactDOM',
|
|
14
|
-
});
|
|
15
|
-
const defaultsKey = 'defaults';
|
|
16
|
-
function loadSharedDependencies(dependencies, sharedDependencies) {
|
|
17
|
-
if (!dependencies) {
|
|
18
|
-
return {};
|
|
19
|
-
}
|
|
20
|
-
const out = {
|
|
21
|
-
...(!sharedDependencies || sharedDependencies[defaultsKey] !== undefined
|
|
22
|
-
? getDefaultSharedDependencies()
|
|
23
|
-
: {}),
|
|
24
|
-
...(sharedDependencies !== null && sharedDependencies !== void 0 ? sharedDependencies : {}),
|
|
25
|
-
};
|
|
26
|
-
delete out[defaultsKey];
|
|
27
|
-
for (const [dependency, value] of Object.entries(out)) {
|
|
28
|
-
if (!value || !dependencies[dependency]) {
|
|
29
|
-
delete out[dependency];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return out;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=load-shared-dependencies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load-shared-dependencies.js","sourceRoot":"","sources":["../src/load-shared-dependencies.ts"],"names":[],"mappings":";;AAaA,wDAwBC;AArCD,MAAM,4BAA4B,GAAG,GAAG,EAAE,CAAC,CAAC;IACxC,6BAA6B,EAAE,8CAA8C;IAC7E,sBAAsB,EAAE,wCAAwC;IAChE,YAAY,EAAE,+BAA+B;IAC7C,WAAW,EAAE,8BAA8B;IAC3C,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,8BAA8B;IAC5C,YAAY,EAAE,8BAA8B;IAC5C,OAAO,EAAE,0BAA0B;IACnC,WAAW,EAAE,6BAA6B;CAC7C,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,UAAU,CAAC;AAE/B,SAAgB,sBAAsB,CAClC,YAAgD,EAChD,kBAAsD;IAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAA2B;QAChC,GAAG,CAAC,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,WAAW,CAAC,KAAK,SAAS;YACpE,CAAC,CAAC,4BAA4B,EAAE;YAChC,CAAC,CAAC,EAAE,CAAC;QACT,GAAG,CAAC,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,CAAC;KAChC,CAAC;IAEF,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC;IAExB,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { loadSharedDependencies } from '../load-shared-dependencies';
|
|
2
|
-
|
|
3
|
-
describe('[Startup] utils:loadSharedDependencies', () => {
|
|
4
|
-
const getPackageDependencies = (...excluded: string[]) =>
|
|
5
|
-
Object.entries({
|
|
6
|
-
'@servicetitan/confirm': '^0.0.0',
|
|
7
|
-
'@servicetitan/design-system': '^0.0.0',
|
|
8
|
-
'classnames': '^0.0.0',
|
|
9
|
-
'formstate': '^0.0.0',
|
|
10
|
-
'mobx': '^0.0.0',
|
|
11
|
-
'mobx-react': '^0.0.0',
|
|
12
|
-
'mobx-utils': '^0.0.0',
|
|
13
|
-
'react': '^0.0.0',
|
|
14
|
-
'react-dom': '^0.0.0',
|
|
15
|
-
'react-input-mask': '^0.0.0',
|
|
16
|
-
}).reduce(
|
|
17
|
-
(out, [d, v]) => ({
|
|
18
|
-
...out,
|
|
19
|
-
...(excluded.includes(d) ? {} : { [d]: v }),
|
|
20
|
-
}),
|
|
21
|
-
{}
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
test('return default dependencies when manual are not configured', () => {
|
|
25
|
-
expect(loadSharedDependencies(getPackageDependencies(), undefined)).toEqual({
|
|
26
|
-
'@servicetitan/design-system': 'SharedDependencies.ServiceTitan.DesignSystem',
|
|
27
|
-
'classnames': 'SharedDependencies.ClassNames',
|
|
28
|
-
'formstate': 'SharedDependencies.FormState',
|
|
29
|
-
'mobx': 'SharedDependencies.MobX',
|
|
30
|
-
'mobx-react': 'SharedDependencies.MobXReact',
|
|
31
|
-
'mobx-utils': 'SharedDependencies.MobXUtils',
|
|
32
|
-
'react': 'SharedDependencies.React',
|
|
33
|
-
'react-dom': 'SharedDependencies.ReactDOM',
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test('return default dependencies except not used when manual are not configured', () => {
|
|
38
|
-
expect(loadSharedDependencies(getPackageDependencies('mobx-utils'), undefined)).toEqual({
|
|
39
|
-
'@servicetitan/design-system': 'SharedDependencies.ServiceTitan.DesignSystem',
|
|
40
|
-
'classnames': 'SharedDependencies.ClassNames',
|
|
41
|
-
'formstate': 'SharedDependencies.FormState',
|
|
42
|
-
'mobx': 'SharedDependencies.MobX',
|
|
43
|
-
'mobx-react': 'SharedDependencies.MobXReact',
|
|
44
|
-
'react': 'SharedDependencies.React',
|
|
45
|
-
'react-dom': 'SharedDependencies.ReactDOM',
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
test('return manual dependencies if set', () => {
|
|
50
|
-
expect(
|
|
51
|
-
loadSharedDependencies(getPackageDependencies(), {
|
|
52
|
-
'@servicetitan/confirm': 'SharedDependencies.ServiceTitan.Confirm',
|
|
53
|
-
'react-input-mask': 'SharedDependencies.ReactInputMask',
|
|
54
|
-
})
|
|
55
|
-
).toEqual({
|
|
56
|
-
'@servicetitan/confirm': 'SharedDependencies.ServiceTitan.Confirm',
|
|
57
|
-
'react-input-mask': 'SharedDependencies.ReactInputMask',
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
test('return default dependencies within manual', () => {
|
|
62
|
-
expect(
|
|
63
|
-
loadSharedDependencies(getPackageDependencies(), {
|
|
64
|
-
defaults: '',
|
|
65
|
-
})
|
|
66
|
-
).toEqual({
|
|
67
|
-
'@servicetitan/design-system': 'SharedDependencies.ServiceTitan.DesignSystem',
|
|
68
|
-
'classnames': 'SharedDependencies.ClassNames',
|
|
69
|
-
'formstate': 'SharedDependencies.FormState',
|
|
70
|
-
'mobx': 'SharedDependencies.MobX',
|
|
71
|
-
'mobx-react': 'SharedDependencies.MobXReact',
|
|
72
|
-
'mobx-utils': 'SharedDependencies.MobXUtils',
|
|
73
|
-
'react': 'SharedDependencies.React',
|
|
74
|
-
'react-dom': 'SharedDependencies.ReactDOM',
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
test('clear default dependencies when configured', () => {
|
|
79
|
-
expect(
|
|
80
|
-
loadSharedDependencies(getPackageDependencies(), {
|
|
81
|
-
'defaults': '',
|
|
82
|
-
'mobx-utils': '',
|
|
83
|
-
})
|
|
84
|
-
).toEqual({
|
|
85
|
-
'@servicetitan/design-system': 'SharedDependencies.ServiceTitan.DesignSystem',
|
|
86
|
-
'classnames': 'SharedDependencies.ClassNames',
|
|
87
|
-
'formstate': 'SharedDependencies.FormState',
|
|
88
|
-
'mobx': 'SharedDependencies.MobX',
|
|
89
|
-
'mobx-react': 'SharedDependencies.MobXReact',
|
|
90
|
-
'react': 'SharedDependencies.React',
|
|
91
|
-
'react-dom': 'SharedDependencies.ReactDOM',
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
test('mixes default dependencies and configured', () => {
|
|
96
|
-
expect(
|
|
97
|
-
loadSharedDependencies(getPackageDependencies(), {
|
|
98
|
-
'defaults': '',
|
|
99
|
-
'mobx-utils': '',
|
|
100
|
-
'react-input-mask': 'SharedDependencies.ReactInputMask',
|
|
101
|
-
'react-something': 'SharedDependencies.ReactSomething',
|
|
102
|
-
})
|
|
103
|
-
).toEqual({
|
|
104
|
-
'@servicetitan/design-system': 'SharedDependencies.ServiceTitan.DesignSystem',
|
|
105
|
-
'classnames': 'SharedDependencies.ClassNames',
|
|
106
|
-
'formstate': 'SharedDependencies.FormState',
|
|
107
|
-
'mobx': 'SharedDependencies.MobX',
|
|
108
|
-
'mobx-react': 'SharedDependencies.MobXReact',
|
|
109
|
-
'react': 'SharedDependencies.React',
|
|
110
|
-
'react-dom': 'SharedDependencies.ReactDOM',
|
|
111
|
-
'react-input-mask': 'SharedDependencies.ReactInputMask',
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
});
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ExposedDependencies } from './types';
|
|
2
|
-
|
|
3
|
-
export function getExposedDependencies(
|
|
4
|
-
sharedDependencies: Record<string, string>,
|
|
5
|
-
getVersion: (dependency: string) => string
|
|
6
|
-
) {
|
|
7
|
-
return Object.entries(sharedDependencies).reduce(
|
|
8
|
-
(result, [dependency, variable]) => ({
|
|
9
|
-
...result,
|
|
10
|
-
[dependency]: { version: getVersion(dependency), variable },
|
|
11
|
-
}),
|
|
12
|
-
{} as ExposedDependencies
|
|
13
|
-
);
|
|
14
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
const getDefaultSharedDependencies = () => ({
|
|
2
|
-
'@servicetitan/design-system': 'SharedDependencies.ServiceTitan.DesignSystem',
|
|
3
|
-
'@servicetitan/anvil2': 'SharedDependencies.ServiceTitan.Anvil2',
|
|
4
|
-
'classnames': 'SharedDependencies.ClassNames',
|
|
5
|
-
'formstate': 'SharedDependencies.FormState',
|
|
6
|
-
'mobx': 'SharedDependencies.MobX',
|
|
7
|
-
'mobx-react': 'SharedDependencies.MobXReact',
|
|
8
|
-
'mobx-utils': 'SharedDependencies.MobXUtils',
|
|
9
|
-
'react': 'SharedDependencies.React',
|
|
10
|
-
'react-dom': 'SharedDependencies.ReactDOM',
|
|
11
|
-
});
|
|
12
|
-
const defaultsKey = 'defaults';
|
|
13
|
-
|
|
14
|
-
export function loadSharedDependencies(
|
|
15
|
-
dependencies: Record<string, string> | undefined,
|
|
16
|
-
sharedDependencies: Record<string, string> | undefined
|
|
17
|
-
): Record<string, string> {
|
|
18
|
-
if (!dependencies) {
|
|
19
|
-
return {};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const out: Record<string, string> = {
|
|
23
|
-
...(!sharedDependencies || sharedDependencies[defaultsKey] !== undefined
|
|
24
|
-
? getDefaultSharedDependencies()
|
|
25
|
-
: {}),
|
|
26
|
-
...(sharedDependencies ?? {}),
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
delete out[defaultsKey];
|
|
30
|
-
|
|
31
|
-
for (const [dependency, value] of Object.entries(out)) {
|
|
32
|
-
if (!value || !dependencies[dependency]) {
|
|
33
|
-
delete out[dependency];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return out;
|
|
38
|
-
}
|