@servicetitan/startup 35.0.0 → 35.2.0-far-1776.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/cli/commands/mfe-generate-metadata.d.ts.map +1 -1
- package/dist/cli/commands/mfe-generate-metadata.js +6 -4
- package/dist/cli/commands/mfe-generate-metadata.js.map +1 -1
- package/dist/cypress-config/index.d.ts +2 -0
- package/dist/cypress-config/index.d.ts.map +1 -0
- package/dist/cypress-config/index.js +20 -0
- package/dist/cypress-config/index.js.map +1 -0
- package/dist/cypress-config/webpack-config.d.ts +4 -0
- package/dist/cypress-config/webpack-config.d.ts.map +1 -0
- package/dist/cypress-config/webpack-config.js +76 -0
- package/dist/cypress-config/webpack-config.js.map +1 -0
- package/dist/storybook-config/swc.js +1 -1
- package/dist/storybook-config/swc.js.map +1 -1
- package/dist/utils/find-package-lock.d.ts +2 -0
- package/dist/utils/find-package-lock.d.ts.map +1 -0
- package/dist/utils/find-package-lock.js +26 -0
- package/dist/utils/find-package-lock.js.map +1 -0
- package/dist/utils/find-up.js +4 -4
- package/dist/utils/find-up.js.map +1 -1
- package/dist/utils/get-base-tsconfig.d.ts +2 -0
- package/dist/utils/get-base-tsconfig.d.ts.map +1 -0
- package/dist/utils/get-base-tsconfig.js +21 -0
- package/dist/utils/get-base-tsconfig.js.map +1 -0
- package/dist/utils/get-package-data.d.ts.map +1 -1
- package/dist/utils/get-package-data.js +28 -1
- package/dist/utils/get-package-data.js.map +1 -1
- package/dist/utils/get-package-version.d.ts +2 -0
- package/dist/utils/get-package-version.d.ts.map +1 -0
- package/dist/utils/get-package-version.js +31 -0
- package/dist/utils/get-package-version.js.map +1 -0
- package/dist/utils/get-tsconfig-with-fallback.d.ts +6 -0
- package/dist/utils/get-tsconfig-with-fallback.d.ts.map +1 -0
- package/dist/utils/get-tsconfig-with-fallback.js +24 -0
- package/dist/utils/get-tsconfig-with-fallback.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/webpack/configs/cache-config.d.ts.map +1 -1
- package/dist/webpack/configs/cache-config.js +1 -14
- package/dist/webpack/configs/cache-config.js.map +1 -1
- package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.d.ts.map +1 -1
- package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js +1 -11
- package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js.map +1 -1
- package/dist/webpack/configs/utils/get-web-components-version.d.ts.map +1 -1
- package/dist/webpack/configs/utils/get-web-components-version.js +5 -7
- package/dist/webpack/configs/utils/get-web-components-version.js.map +1 -1
- package/package.json +14 -13
- package/src/cli/commands/__tests__/mfe-generate-metadata.test.ts +23 -4
- package/src/cli/commands/mfe-generate-metadata.ts +6 -6
- package/src/cypress-config/__tests__/webpack-config.test.ts +124 -0
- package/src/cypress-config/index.ts +1 -0
- package/src/cypress-config/webpack-config.ts +58 -0
- package/src/storybook-config/__tests__/swc.test.ts +11 -0
- package/src/storybook-config/swc.ts +2 -2
- package/src/utils/__tests__/find-package-lock.test.ts +35 -0
- package/src/utils/__tests__/get-package-data.test.ts +97 -26
- package/src/utils/__tests__/get-package-version.test.ts +120 -0
- package/src/utils/__tests__/get-tsconfig-with-fallback.test.ts +23 -0
- package/src/utils/__tests__/get-tsconfig.test.ts +4 -4
- package/src/utils/find-package-lock.ts +10 -0
- package/src/utils/find-up.ts +1 -1
- package/src/utils/get-base-tsconfig.ts +5 -0
- package/src/utils/get-package-data.ts +27 -2
- package/src/utils/get-package-version.ts +31 -0
- package/src/utils/get-tsconfig-with-fallback.ts +12 -0
- package/src/utils/index.ts +4 -0
- package/src/webpack/configs/cache-config.ts +1 -10
- package/src/webpack/configs/utils/__tests__/get-launchdarkly-sdk-version.test.ts +24 -8
- package/src/webpack/configs/utils/__tests__/get-web-components-version.test.ts +30 -10
- package/src/webpack/configs/utils/get-launchdarkly-sdk-version.ts +2 -12
- package/src/webpack/configs/utils/get-web-components-version.ts +8 -5
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { fs, vol } from 'memfs';
|
|
2
|
+
import { getPackageVersion } from '../get-package-version';
|
|
3
|
+
|
|
4
|
+
jest.mock('fs', () => fs);
|
|
5
|
+
|
|
6
|
+
describe(`[startup] ${getPackageVersion.name}`, () => {
|
|
7
|
+
afterEach(() => vol.reset());
|
|
8
|
+
|
|
9
|
+
const subject = (packageName: string) => getPackageVersion(packageName);
|
|
10
|
+
|
|
11
|
+
describe('when package-lock.json exists', () => {
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
vol.fromJSON({
|
|
14
|
+
'./package-lock.json': JSON.stringify({
|
|
15
|
+
packages: {
|
|
16
|
+
'node_modules/@servicetitan/web-components': { version: '1.2.3' },
|
|
17
|
+
'node_modules/launchdarkly-js-client-sdk': { version: '4.5.6' },
|
|
18
|
+
},
|
|
19
|
+
}),
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('returns version for a found package', () => {
|
|
24
|
+
expect(subject('@servicetitan/web-components')).toBe('1.2.3');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('returns version for another found package', () => {
|
|
28
|
+
expect(subject('launchdarkly-js-client-sdk')).toBe('4.5.6');
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('returns undefined for a package not in lock file', () => {
|
|
32
|
+
expect(subject('nonexistent-package')).toBeUndefined();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
describe('when package is a linked workspace package', () => {
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
vol.fromJSON({
|
|
39
|
+
'./package-lock.json': JSON.stringify({
|
|
40
|
+
packages: {
|
|
41
|
+
'node_modules/@servicetitan/web-components': {
|
|
42
|
+
resolved: 'packages/web-components',
|
|
43
|
+
link: true,
|
|
44
|
+
},
|
|
45
|
+
'packages/web-components': {
|
|
46
|
+
version: '35.1.0',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
}),
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('follows link to resolve version from source path', () => {
|
|
54
|
+
expect(subject('@servicetitan/web-components')).toBe('35.1.0');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
describe('when entry has link but no resolved path', () => {
|
|
59
|
+
beforeEach(() => {
|
|
60
|
+
vol.fromJSON({
|
|
61
|
+
'./package-lock.json': JSON.stringify({
|
|
62
|
+
packages: {
|
|
63
|
+
'node_modules/some-package': { link: true, version: '1.0.0' },
|
|
64
|
+
},
|
|
65
|
+
}),
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
test('returns entry version', () => {
|
|
70
|
+
expect(subject('some-package')).toBe('1.0.0');
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
describe('when linked package resolved path does not exist in packages', () => {
|
|
75
|
+
beforeEach(() => {
|
|
76
|
+
vol.fromJSON({
|
|
77
|
+
'./package-lock.json': JSON.stringify({
|
|
78
|
+
packages: {
|
|
79
|
+
'node_modules/some-package': {
|
|
80
|
+
resolved: 'packages/some-package',
|
|
81
|
+
link: true,
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
}),
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
test('returns undefined', () => {
|
|
89
|
+
expect(subject('some-package')).toBeUndefined();
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
describe('when lock file contains invalid JSON', () => {
|
|
94
|
+
beforeEach(() => {
|
|
95
|
+
vol.fromJSON({
|
|
96
|
+
'./package-lock.json': 'not valid json',
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
test('returns undefined', () => {
|
|
101
|
+
expect(subject('some-package')).toBeUndefined();
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
describe('when lock file has no packages property', () => {
|
|
106
|
+
beforeEach(() => {
|
|
107
|
+
vol.fromJSON({
|
|
108
|
+
'./package-lock.json': JSON.stringify({}),
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
test('returns undefined', () => {
|
|
113
|
+
expect(subject('some-package')).toBeUndefined();
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
test('returns undefined when no package-lock.json exists', () => {
|
|
118
|
+
expect(subject('@servicetitan/web-components')).toBeUndefined();
|
|
119
|
+
});
|
|
120
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { fs, vol } from 'memfs';
|
|
2
|
+
import { getBaseTsConfig } from '../get-base-tsconfig';
|
|
3
|
+
import { getTsConfigWithFallback } from '../get-tsconfig-with-fallback';
|
|
4
|
+
|
|
5
|
+
jest.mock('fs', () => fs);
|
|
6
|
+
|
|
7
|
+
describe(`[startup] Utils`, () => {
|
|
8
|
+
describe(`${getTsConfigWithFallback.name}`, () => {
|
|
9
|
+
afterEach(() => vol.reset());
|
|
10
|
+
|
|
11
|
+
test('returns base.json', () => {
|
|
12
|
+
expect(getTsConfigWithFallback()).toBe(getBaseTsConfig());
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
describe('when tsconfig exists', () => {
|
|
16
|
+
beforeEach(() => vol.fromJSON({ 'tsconfig.json': JSON.stringify({}) }));
|
|
17
|
+
|
|
18
|
+
test('returns tsconfig', () => {
|
|
19
|
+
expect(getTsConfigWithFallback()).toBe('tsconfig.json');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { fs, vol } from 'memfs';
|
|
2
|
-
import path from 'path';
|
|
2
|
+
import path from 'node:path';
|
|
3
3
|
import { getTsConfig } from '../get-tsconfig';
|
|
4
4
|
|
|
5
5
|
jest.mock('fs', () => fs);
|
|
@@ -36,9 +36,9 @@ describe(`[startup] Utils`, () => {
|
|
|
36
36
|
});
|
|
37
37
|
|
|
38
38
|
describe(`when ${buildConfig} is present`, () => {
|
|
39
|
-
beforeEach(() =>
|
|
40
|
-
vol.fromJSON({ [`packages/foo/${buildConfig}`]: JSON.stringify({}) })
|
|
41
|
-
|
|
39
|
+
beforeEach(() =>
|
|
40
|
+
vol.fromJSON({ [`packages/foo/${buildConfig}`]: JSON.stringify({}) })
|
|
41
|
+
);
|
|
42
42
|
|
|
43
43
|
test(`returns {location}/${buildConfig}`, () => {
|
|
44
44
|
expect(subject()).toBe(path.join(location!, buildConfig));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { findUp } from './find-up';
|
|
4
|
+
|
|
5
|
+
export function findPackageLock() {
|
|
6
|
+
return findUp(directory => {
|
|
7
|
+
const lockFile = path.resolve(directory, 'package-lock.json');
|
|
8
|
+
return fs.existsSync(lockFile) ? lockFile : undefined;
|
|
9
|
+
});
|
|
10
|
+
}
|
package/src/utils/find-up.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { findUp } from './find-up';
|
|
3
|
+
import { readJson, readJsonSafe } from './read-json';
|
|
2
4
|
|
|
3
5
|
interface PackageData {
|
|
4
6
|
name: string;
|
|
@@ -14,13 +16,36 @@ export function getPackageData(): PackageData {
|
|
|
14
16
|
name: packageJson.name,
|
|
15
17
|
version: packageJson.version,
|
|
16
18
|
dependencies: {
|
|
17
|
-
...
|
|
19
|
+
...findRootDependencies(),
|
|
18
20
|
...packageJson.dependencies,
|
|
19
21
|
},
|
|
20
22
|
sharedDependencies: packageJson.cli?.webpack?.['shared-dependencies'],
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
25
|
|
|
26
|
+
function findRootDependencies() {
|
|
27
|
+
const cwd = path.resolve('./');
|
|
28
|
+
const root = findUp(directory => {
|
|
29
|
+
if (directory === cwd) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const pkgPath = path.join(directory, 'package.json');
|
|
33
|
+
const pkg = readJsonSafe<{ workspaces?: string[]; dependencies?: Record<string, string> }>(
|
|
34
|
+
pkgPath
|
|
35
|
+
);
|
|
36
|
+
if (pkg?.workspaces) {
|
|
37
|
+
return pkg;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const lernaPath = path.join(directory, 'lerna.json');
|
|
41
|
+
if (readJsonSafe<{ packages?: string[] }>(lernaPath)?.packages) {
|
|
42
|
+
return pkg ?? {};
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
return root?.dependencies ?? {};
|
|
47
|
+
}
|
|
48
|
+
|
|
24
49
|
export function getPackageDependencyVersion(dependency: string, defaultVersion?: string) {
|
|
25
50
|
try {
|
|
26
51
|
const { version } = require(`${dependency}/package.json`);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { findPackageLock } from './find-package-lock';
|
|
2
|
+
import { readJsonSafe } from './read-json';
|
|
3
|
+
|
|
4
|
+
interface PackageLockEntry {
|
|
5
|
+
version?: string;
|
|
6
|
+
resolved?: string;
|
|
7
|
+
link?: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface PackageLock {
|
|
11
|
+
packages: Record<string, PackageLockEntry>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function getPackageVersion(packageName: string) {
|
|
15
|
+
const lockFilePath = findPackageLock();
|
|
16
|
+
if (!lockFilePath) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const lockFile = readJsonSafe<PackageLock>(lockFilePath);
|
|
21
|
+
const entry = lockFile?.packages?.[`node_modules/${packageName}`];
|
|
22
|
+
if (!entry) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (entry.link && entry.resolved) {
|
|
27
|
+
return lockFile?.packages?.[entry.resolved]?.version;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return entry.version;
|
|
31
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { getBaseTsConfig } from './get-base-tsconfig';
|
|
3
|
+
import { getTsConfig } from './get-tsconfig';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns the tsconfig file to use for builds, falling back to startup's base.json
|
|
7
|
+
* if no tsconfig is found at the given location.
|
|
8
|
+
*/
|
|
9
|
+
export function getTsConfigWithFallback(location = './') {
|
|
10
|
+
const config = getTsConfig(location);
|
|
11
|
+
return fs.existsSync(config) ? config : getBaseTsConfig();
|
|
12
|
+
}
|
package/src/utils/index.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
export * from './find-package-lock';
|
|
1
2
|
export * from './find-packages';
|
|
2
3
|
export * from './find-up';
|
|
3
4
|
export * from './format-duration';
|
|
4
5
|
export * from './format-relative-date';
|
|
6
|
+
export * from './get-base-tsconfig';
|
|
5
7
|
export * from './get-branch-configs';
|
|
6
8
|
export * from './get-configuration';
|
|
7
9
|
export * from './get-destination-folders';
|
|
@@ -9,9 +11,11 @@ export * from './get-folders';
|
|
|
9
11
|
export * from './get-jest-config';
|
|
10
12
|
export * from './get-package-data';
|
|
11
13
|
export * from './get-package-name';
|
|
14
|
+
export * from './get-package-version';
|
|
12
15
|
export * from './get-packages';
|
|
13
16
|
export * from './get-startup-version';
|
|
14
17
|
export * from './get-tsconfig';
|
|
18
|
+
export * from './get-tsconfig-with-fallback';
|
|
15
19
|
export * from './load-shared-dependencies';
|
|
16
20
|
export * from './log';
|
|
17
21
|
export * from './log-errors';
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
1
|
import { Configuration } from 'webpack';
|
|
4
|
-
import {
|
|
2
|
+
import { findPackageLock } from '../../utils';
|
|
5
3
|
import { Context, Overrides } from './types';
|
|
6
4
|
|
|
7
5
|
type Config = Configuration['cache'];
|
|
@@ -28,10 +26,3 @@ export function cacheConfig(context: Context, _overrides: Overrides): Result {
|
|
|
28
26
|
infrastructureLogging: { level: 'error' },
|
|
29
27
|
};
|
|
30
28
|
}
|
|
31
|
-
|
|
32
|
-
function findPackageLock() {
|
|
33
|
-
return findUp(directory => {
|
|
34
|
-
const lockFile = path.resolve(path.join(directory), 'package-lock.json');
|
|
35
|
-
return fs.existsSync(lockFile) ? lockFile : undefined;
|
|
36
|
-
});
|
|
37
|
-
}
|
|
@@ -6,25 +6,41 @@ jest.mock('fs', () => fs);
|
|
|
6
6
|
describe(`[startup] ${getLaunchDarklySdkVersion.name}`, () => {
|
|
7
7
|
const launchDarklySdkVersion = '1.2.3';
|
|
8
8
|
|
|
9
|
+
afterEach(() => vol.reset());
|
|
10
|
+
|
|
9
11
|
const subject = () => getLaunchDarklySdkVersion();
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
describe('when package is not in package-lock.json', () => {
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
vol.fromJSON({
|
|
16
|
+
'./package-lock.json': JSON.stringify({ packages: {} }),
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('returns undefined', () => {
|
|
21
|
+
expect(subject()).toBeUndefined();
|
|
22
|
+
});
|
|
13
23
|
});
|
|
14
24
|
|
|
15
|
-
describe('when package is
|
|
25
|
+
describe('when package is in package-lock.json', () => {
|
|
16
26
|
beforeEach(() => {
|
|
17
27
|
vol.fromJSON({
|
|
18
|
-
'
|
|
19
|
-
|
|
28
|
+
'./package-lock.json': JSON.stringify({
|
|
29
|
+
packages: {
|
|
30
|
+
'node_modules/launchdarkly-js-client-sdk': {
|
|
31
|
+
version: launchDarklySdkVersion,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
20
34
|
}),
|
|
21
35
|
});
|
|
22
36
|
});
|
|
23
37
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
test('returns version from launchdarkly-js-client-sdk package', () => {
|
|
38
|
+
test('returns version from package-lock.json', () => {
|
|
27
39
|
expect(subject()).toEqual(launchDarklySdkVersion);
|
|
28
40
|
});
|
|
29
41
|
});
|
|
42
|
+
|
|
43
|
+
test('returns undefined when no package-lock.json exists', () => {
|
|
44
|
+
expect(subject()).toBeUndefined();
|
|
45
|
+
});
|
|
30
46
|
});
|
|
@@ -6,19 +6,39 @@ jest.mock('fs', () => fs);
|
|
|
6
6
|
describe(`[startup] ${getWebComponentsVersion.name}`, () => {
|
|
7
7
|
const webComponentsVersion = '1.2.3';
|
|
8
8
|
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
vol.fromJSON({
|
|
11
|
-
'packages/web-components/package.json': JSON.stringify({
|
|
12
|
-
version: webComponentsVersion,
|
|
13
|
-
}),
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
|
|
17
9
|
afterEach(() => vol.reset());
|
|
18
10
|
|
|
19
11
|
const subject = () => getWebComponentsVersion();
|
|
20
12
|
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
describe('when package is in package-lock.json', () => {
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
vol.fromJSON({
|
|
16
|
+
'./package-lock.json': JSON.stringify({
|
|
17
|
+
packages: {
|
|
18
|
+
'node_modules/@servicetitan/web-components': {
|
|
19
|
+
version: webComponentsVersion,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('returns version from package-lock.json', () => {
|
|
27
|
+
expect(subject()).toEqual(webComponentsVersion);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
describe('when package is not in package-lock.json', () => {
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
vol.fromJSON({
|
|
34
|
+
'./package-lock.json': JSON.stringify({ packages: {} }),
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test('throws', () => {
|
|
39
|
+
expect(subject).toThrow(
|
|
40
|
+
'Unable to resolve @servicetitan/web-components version from package-lock.json'
|
|
41
|
+
);
|
|
42
|
+
});
|
|
23
43
|
});
|
|
24
44
|
});
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { readJson } from '../../../utils';
|
|
1
|
+
import { getPackageVersion } from '../../../utils';
|
|
3
2
|
|
|
4
3
|
export function getLaunchDarklySdkVersion() {
|
|
5
|
-
|
|
6
|
-
return readJson<{ version: string }>(
|
|
7
|
-
path.join(
|
|
8
|
-
path.dirname(require.resolve('launchdarkly-js-client-sdk')),
|
|
9
|
-
'../package.json'
|
|
10
|
-
)
|
|
11
|
-
).version;
|
|
12
|
-
} catch {
|
|
13
|
-
// ignore
|
|
14
|
-
}
|
|
4
|
+
return getPackageVersion('launchdarkly-js-client-sdk');
|
|
15
5
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { readJson } from '../../../utils';
|
|
1
|
+
import { getPackageVersion } from '../../../utils';
|
|
3
2
|
|
|
4
3
|
export function getWebComponentsVersion() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const version = getPackageVersion('@servicetitan/web-components');
|
|
5
|
+
if (!version) {
|
|
6
|
+
throw new Error(
|
|
7
|
+
'Unable to resolve @servicetitan/web-components version from package-lock.json'
|
|
8
|
+
);
|
|
9
|
+
}
|
|
10
|
+
return version;
|
|
8
11
|
}
|