@knapsack/spec-utils 4.78.13--canary.5646.9581069.0 → 4.78.13
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/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-lint.log +4 -0
- package/.turbo/turbo-test.log +50 -0
- package/CHANGELOG.md +12 -0
- package/dist/align/align.vtest.d.ts +2 -0
- package/dist/align/align.vtest.d.ts.map +1 -0
- package/dist/align/align.vtest.js +46 -0
- package/dist/align/align.vtest.js.map +1 -0
- package/dist/analyze-exports.sandbox-components.vtest.d.ts +2 -0
- package/dist/analyze-exports.sandbox-components.vtest.d.ts.map +1 -0
- package/dist/analyze-exports.sandbox-components.vtest.js +51 -0
- package/dist/analyze-exports.sandbox-components.vtest.js.map +1 -0
- package/dist/analyze-exports.vtest.d.ts +2 -0
- package/dist/analyze-exports.vtest.d.ts.map +1 -0
- package/dist/analyze-exports.vtest.js +160 -0
- package/dist/analyze-exports.vtest.js.map +1 -0
- package/dist/convert-to-spec.vtest.d.ts +2 -0
- package/dist/convert-to-spec.vtest.d.ts.map +1 -0
- package/dist/convert-to-spec.vtest.js +131 -0
- package/dist/convert-to-spec.vtest.js.map +1 -0
- package/dist/get-ts-config.vtest.d.ts +2 -0
- package/dist/get-ts-config.vtest.d.ts.map +1 -0
- package/dist/get-ts-config.vtest.js +9 -0
- package/dist/get-ts-config.vtest.js.map +1 -0
- package/dist/resolve.vtest.d.ts +2 -0
- package/dist/resolve.vtest.d.ts.map +1 -0
- package/dist/resolve.vtest.js +57 -0
- package/dist/resolve.vtest.js.map +1 -0
- package/dist/utils.vtest.d.ts +2 -0
- package/dist/utils.vtest.d.ts.map +1 -0
- package/dist/utils.vtest.js +37 -0
- package/dist/utils.vtest.js.map +1 -0
- package/package.json +10 -10
- package/src/align/align.vtest.ts +56 -0
- package/src/align/get-exports.bench.ts +28 -0
- package/src/align/resolve.bench.ts +20 -0
- package/src/align/utils.ts +14 -0
- package/src/analyze-exports.sandbox-components.vtest.ts +53 -0
- package/src/analyze-exports.ts +54 -0
- package/src/analyze-exports.vtest.ts +178 -0
- package/src/analyze-symbol.ts +213 -0
- package/src/analyze-type.ts +316 -0
- package/src/boot.ts +31 -0
- package/src/convert-to-spec.ts +196 -0
- package/src/convert-to-spec.vtest.ts +136 -0
- package/src/get-exports.ts +70 -0
- package/src/get-ts-config.ts +96 -0
- package/src/get-ts-config.vtest.ts +9 -0
- package/src/index.ts +5 -0
- package/src/resolve.ts +54 -0
- package/src/resolve.vtest.ts +69 -0
- package/src/test-fixtures/basics.ts +17 -0
- package/src/test-fixtures/functions.ts +50 -0
- package/src/test-fixtures/index.ts +2 -0
- package/src/types.ts +66 -0
- package/src/utils.ts +61 -0
- package/src/utils.vtest.ts +39 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
|
|
2
|
+
> @knapsack/spec-utils@4.78.12 test /home/runner/work/app-monorepo/app-monorepo/apps/client/libs/spec-utils
|
|
3
|
+
> vitest run
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
[1m[7m[36m RUN [39m[27m[22m [36mv3.1.1 [39m[90m/home/runner/work/app-monorepo/app-monorepo/apps/client/libs/spec-utils[39m
|
|
7
|
+
[2mCoverage enabled with [22m[33mv8[39m
|
|
8
|
+
|
|
9
|
+
[32m✓[39m src/convert-to-spec.vtest.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
10
|
+
[32m✓[39m src/get-ts-config.vtest.ts [2m([22m[2m1 test[22m[2m)[22m[32m 36[2mms[22m[39m
|
|
11
|
+
[32m✓[39m src/resolve.vtest.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 26[2mms[22m[39m
|
|
12
|
+
[32m✓[39m src/utils.vtest.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
13
|
+
[32m✓[39m src/analyze-exports.vtest.ts [2m([22m[2m20 tests[22m[2m)[22m[33m 2247[2mms[22m[39m
|
|
14
|
+
[33m[2m✓[22m[39m analyze-exports tests for .ts files[2m > [22mgets export names [33m 1196[2mms[22m[39m
|
|
15
|
+
[33m[2m✓[22m[39m analyze-exports tests for .d.ts files[2m > [22mgets export names [33m 1043[2mms[22m[39m
|
|
16
|
+
[32m✓[39m src/analyze-exports.sandbox-components.vtest.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 5778[2mms[22m[39m
|
|
17
|
+
[33m[2m✓[22m[39m analyze-exports sandbox components[2m > [22manalyzes react exports [33m 2182[2mms[22m[39m
|
|
18
|
+
[33m[2m✓[22m[39m analyze-exports sandbox components[2m > [22manalyzes angular exports [33m 3594[2mms[22m[39m
|
|
19
|
+
[32m✓[39m src/align/align.vtest.ts [2m([22m[2m8 tests[22m[2m)[22m[33m 7566[2mms[22m[39m
|
|
20
|
+
[33m[2m✓[22m[39m '@knapsack/sandbox-components/react'[2m > [22mfinds same export names in ts and js [33m 2113[2mms[22m[39m
|
|
21
|
+
[33m[2m✓[22m[39m '@knapsack/angular-sandbox-components'[2m > [22mfinds same export names in ts and js [33m 1548[2mms[22m[39m
|
|
22
|
+
[33m[2m✓[22m[39m '@mui/material'[2m > [22mfinds same export names in ts and js [33m 2116[2mms[22m[39m
|
|
23
|
+
[33m[2m✓[22m[39m '@knapsack/utils'[2m > [22mfinds same export names in ts and js [33m 1747[2mms[22m[39m
|
|
24
|
+
|
|
25
|
+
[2m Test Files [22m [1m[32m7 passed[39m[22m[90m (7)[39m
|
|
26
|
+
[2m Tests [22m [1m[32m44 passed[39m[22m[90m (44)[39m
|
|
27
|
+
[2m Start at [22m 18:33:46
|
|
28
|
+
[2m Duration [22m 10.42s[2m (transform 471ms, setup 95ms, collect 10.01s, tests 15.66s, environment 2ms, prepare 838ms)[22m
|
|
29
|
+
|
|
30
|
+
[34m % [39m[2mCoverage report from [22m[33mv8[39m
|
|
31
|
+
-------------------|---------|----------|---------|---------|-------------------
|
|
32
|
+
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
|
|
33
|
+
-------------------|---------|----------|---------|---------|-------------------
|
|
34
|
+
All files | 79.48 | 75 | 84.21 | 79.48 |
|
|
35
|
+
src | 83.6 | 76.15 | 94.11 | 83.6 |
|
|
36
|
+
...ze-exports.ts | 55.55 | 100 | 50 | 55.55 | 31-54
|
|
37
|
+
...yze-symbol.ts | 98.85 | 96.55 | 100 | 98.85 | 120-121
|
|
38
|
+
analyze-type.ts | 97.93 | 94.59 | 100 | 97.93 | 226-227,238-239
|
|
39
|
+
boot.ts | 100 | 100 | 100 | 100 |
|
|
40
|
+
...rt-to-spec.ts | 65.45 | 48.27 | 100 | 65.45 | ...81-185,188-194
|
|
41
|
+
get-exports.ts | 64.4 | 50 | 100 | 64.4 | ...35,47-50,56-70
|
|
42
|
+
get-ts-config.ts | 67.16 | 36.36 | 100 | 67.16 | ...84,86-88,92-94
|
|
43
|
+
resolve.ts | 95.83 | 66.66 | 100 | 95.83 | 51-52
|
|
44
|
+
types.ts | 0 | 0 | 0 | 0 |
|
|
45
|
+
utils.ts | 85.71 | 85.71 | 100 | 85.71 | 58-60
|
|
46
|
+
src/align | 23.72 | 0 | 0 | 23.72 |
|
|
47
|
+
...orts.bench.ts | 0 | 0 | 0 | 0 | 1-28
|
|
48
|
+
resolve.bench.ts | 0 | 0 | 0 | 0 | 1-20
|
|
49
|
+
utils.ts | 100 | 100 | 100 | 100 |
|
|
50
|
+
-------------------|---------|----------|---------|---------|-------------------
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# v4.78.13 (Fri Apr 25 2025)
|
|
2
|
+
|
|
3
|
+
#### 🏠 Internal
|
|
4
|
+
|
|
5
|
+
- Network flow diagram for customer security review [#6051](https://github.com/knapsack-labs/app-monorepo/pull/6051) ([@freneticpixel](https://github.com/freneticpixel))
|
|
6
|
+
|
|
7
|
+
#### Authors: 1
|
|
8
|
+
|
|
9
|
+
- Jim Frenette ([@freneticpixel](https://github.com/freneticpixel))
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
1
13
|
# v4.78.11 (Thu Apr 24 2025)
|
|
2
14
|
|
|
3
15
|
#### 🏠 Internal
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"align.vtest.d.ts","sourceRoot":"","sources":["../../src/align/align.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { describe, it, expect, assert } from 'vitest';
|
|
2
|
+
import { realpath } from 'node:fs/promises';
|
|
3
|
+
import { getJsExportNames, resolvePath } from '@knapsack/file-utils';
|
|
4
|
+
import { resolveTsModule } from '../resolve.js';
|
|
5
|
+
import { getTsExports } from '../get-exports.js';
|
|
6
|
+
import { paths } from './utils.js';
|
|
7
|
+
describe.for(paths)(`$path`, ({ path }) => {
|
|
8
|
+
it('resolves to same file path', async () => {
|
|
9
|
+
const { absolutePath } = await resolvePath({
|
|
10
|
+
path,
|
|
11
|
+
resolveType: 'types',
|
|
12
|
+
});
|
|
13
|
+
const { resolvedFileName } = resolveTsModule({
|
|
14
|
+
moduleName: path,
|
|
15
|
+
containingFile: import.meta.filename,
|
|
16
|
+
});
|
|
17
|
+
expect(await realpath(resolvedFileName)).toBe(await realpath(absolutePath));
|
|
18
|
+
});
|
|
19
|
+
it('finds same export names in ts and js', {
|
|
20
|
+
timeout: 10000,
|
|
21
|
+
}, async () => {
|
|
22
|
+
const { exports } = getTsExports({
|
|
23
|
+
fileName: path,
|
|
24
|
+
});
|
|
25
|
+
const exportNamesFromTs = exports.map((e) => e.getName());
|
|
26
|
+
const { exports: exportNamesFromJs } = await getJsExportNames({
|
|
27
|
+
path,
|
|
28
|
+
});
|
|
29
|
+
// the ts details will contain things like types that the js details don't
|
|
30
|
+
// this makes sure that all we found in js is also found in ts
|
|
31
|
+
const exportNamesFromJsSet = new Set(exportNamesFromJs);
|
|
32
|
+
exportNamesFromTs.forEach((e) => {
|
|
33
|
+
exportNamesFromJsSet.delete(e);
|
|
34
|
+
});
|
|
35
|
+
if (path === '@mui/material') {
|
|
36
|
+
// pulling these out b/c they fail test, but we got the other ones
|
|
37
|
+
exportNamesFromJsSet.delete('FormLabelRoot');
|
|
38
|
+
exportNamesFromJsSet.delete('private_createMixins');
|
|
39
|
+
exportNamesFromJsSet.delete('usePagination');
|
|
40
|
+
}
|
|
41
|
+
assert.isEmpty(exportNamesFromJsSet, `found ${exportNamesFromJsSet.size} extra exports in js: ${[
|
|
42
|
+
...exportNamesFromJsSet,
|
|
43
|
+
].join(', ')}`);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=align.vtest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"align.vtest.js","sourceRoot":"","sources":["../../src/align/align.vtest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACxC,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,WAAW,CAAC;YACzC,IAAI;YACJ,WAAW,EAAE,OAAO;SACrB,CAAC,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC;YAC3C,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;SACrC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CACA,sCAAsC,EACtC;QACE,OAAO,EAAE,KAAM;KAChB,EACD,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAE1D,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAC5D,IAAI;SACL,CAAC,CAAC;QAEH,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACxD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC7B,kEAAkE;YAClE,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7C,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACpD,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,OAAO,CACZ,oBAAoB,EACpB,SAAS,oBAAoB,CAAC,IAAI,yBAAyB;YACzD,GAAG,oBAAoB;SACxB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-exports.sandbox-components.vtest.d.ts","sourceRoot":"","sources":["../src/analyze-exports.sandbox-components.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { analyzeExports } from './analyze-exports.js';
|
|
3
|
+
import { assertTypeInfo } from './utils.js';
|
|
4
|
+
describe('analyze-exports sandbox components', () => {
|
|
5
|
+
it('analyzes react exports', () => {
|
|
6
|
+
const exports = analyzeExports({
|
|
7
|
+
fileName: '@knapsack/sandbox-components/react',
|
|
8
|
+
});
|
|
9
|
+
const { Button } = exports;
|
|
10
|
+
expect(Button).toBeTruthy();
|
|
11
|
+
assertTypeInfo(Button.typeInfo, 'function');
|
|
12
|
+
const { parameters } = Button.typeInfo;
|
|
13
|
+
const [props] = parameters;
|
|
14
|
+
assertTypeInfo(props.typeInfo, 'object');
|
|
15
|
+
const { properties } = props.typeInfo;
|
|
16
|
+
const { size } = properties;
|
|
17
|
+
assertTypeInfo(size.typeInfo, 'union');
|
|
18
|
+
const { items } = size.typeInfo;
|
|
19
|
+
const sizeValues = items
|
|
20
|
+
.map((item) => {
|
|
21
|
+
assertTypeInfo(item, 'stringLiteral');
|
|
22
|
+
return item.value;
|
|
23
|
+
})
|
|
24
|
+
.sort();
|
|
25
|
+
expect(sizeValues).toEqual(['large', 'medium', 'small'].sort());
|
|
26
|
+
});
|
|
27
|
+
it('analyzes angular exports', () => {
|
|
28
|
+
const exports = analyzeExports({
|
|
29
|
+
fileName: '@knapsack/angular-sandbox-components',
|
|
30
|
+
});
|
|
31
|
+
const { KsButtonComponent } = exports;
|
|
32
|
+
expect(KsButtonComponent).toBeTruthy();
|
|
33
|
+
assertTypeInfo(KsButtonComponent.typeInfo, 'class');
|
|
34
|
+
const { prototype } = KsButtonComponent.typeInfo;
|
|
35
|
+
assertTypeInfo(prototype.typeInfo, 'object');
|
|
36
|
+
const { hasArrow, click, size, handleClick } = prototype.typeInfo.properties;
|
|
37
|
+
assertTypeInfo(hasArrow.typeInfo, 'boolean');
|
|
38
|
+
assertTypeInfo(handleClick.typeInfo, 'function');
|
|
39
|
+
expect(click.typeInfo.tsRawType).toBe('EventEmitter<void>');
|
|
40
|
+
assertTypeInfo(size.typeInfo, 'union');
|
|
41
|
+
const { items } = size.typeInfo;
|
|
42
|
+
const sizeValues = items
|
|
43
|
+
.map((item) => {
|
|
44
|
+
assertTypeInfo(item, 'stringLiteral');
|
|
45
|
+
return item.value;
|
|
46
|
+
})
|
|
47
|
+
.sort();
|
|
48
|
+
expect(sizeValues).toEqual(['large', 'medium', 'small'].sort());
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=analyze-exports.sandbox-components.vtest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-exports.sandbox-components.vtest.js","sourceRoot":"","sources":["../src/analyze-exports.sandbox-components.vtest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-exports.vtest.d.ts","sourceRoot":"","sources":["../src/analyze-exports.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { analyzeExports } from './analyze-exports.js';
|
|
4
|
+
import { assertTypeInfo } from './utils.js';
|
|
5
|
+
const tsDetailsSrc = join(import.meta.dirname, '../src/test-fixtures/index.ts');
|
|
6
|
+
const tsDetailsDts = join(import.meta.dirname, '../dist/test-fixtures/index.d.ts');
|
|
7
|
+
[tsDetailsSrc, tsDetailsDts].forEach((fileName) => {
|
|
8
|
+
const ext = fileName.endsWith('.d.ts') ? '.d.ts' : '.ts';
|
|
9
|
+
const exports = analyzeExports({ fileName });
|
|
10
|
+
describe(`analyze-exports tests for ${ext} files`, () => {
|
|
11
|
+
it(`gets export names`, () => {
|
|
12
|
+
const results = analyzeExports({
|
|
13
|
+
fileName,
|
|
14
|
+
});
|
|
15
|
+
const exportNames = Object.keys(results);
|
|
16
|
+
expect(exportNames).toContain('complexFuncTypes');
|
|
17
|
+
expect(exportNames).toContain('doIt');
|
|
18
|
+
});
|
|
19
|
+
it(`handles basics: number`, () => {
|
|
20
|
+
const { typeInfo } = exports.aNumber;
|
|
21
|
+
expect(typeInfo.type).toBe('number');
|
|
22
|
+
});
|
|
23
|
+
it(`handles string union`, () => {
|
|
24
|
+
const { typeInfo } = exports.stringUnion;
|
|
25
|
+
assertTypeInfo(typeInfo, 'union');
|
|
26
|
+
const { items } = typeInfo;
|
|
27
|
+
const sizes = items.map((item) => {
|
|
28
|
+
if (item.type !== 'stringLiteral') {
|
|
29
|
+
throw new Error(`Expected type to be stringLiteral, got ${item.type}`);
|
|
30
|
+
}
|
|
31
|
+
return item.value;
|
|
32
|
+
});
|
|
33
|
+
expect(sizes).toEqual(['small', 'medium', 'large']);
|
|
34
|
+
});
|
|
35
|
+
it(`handles string via type alias`, () => {
|
|
36
|
+
const { typeInfo } = exports.stringViaTypeAlias;
|
|
37
|
+
expect(typeInfo.type).toBe('string');
|
|
38
|
+
});
|
|
39
|
+
it(`handles jsdoc`, () => {
|
|
40
|
+
const { jsDoc } = exports.complexFuncTypes;
|
|
41
|
+
if (!jsDoc) {
|
|
42
|
+
throw new Error('jsDoc is undefined');
|
|
43
|
+
}
|
|
44
|
+
expect(jsDoc.description).toBe('Some basic types');
|
|
45
|
+
expect(jsDoc.jsDocTags.length).toBe(1);
|
|
46
|
+
expect(jsDoc.jsDocTags).toEqual([
|
|
47
|
+
{ name: 'link', text: 'https://www.example.com' },
|
|
48
|
+
]);
|
|
49
|
+
});
|
|
50
|
+
it(`handles basics: string[]`, () => {
|
|
51
|
+
const { typeInfo } = exports.anArrayOfStrings;
|
|
52
|
+
assertTypeInfo(typeInfo, 'array');
|
|
53
|
+
expect(typeInfo.items.type).toBe('string');
|
|
54
|
+
expect(typeInfo.tsRawType).toBe('string[]');
|
|
55
|
+
});
|
|
56
|
+
it(`handles basics: object`, () => {
|
|
57
|
+
const { typeInfo } = exports.anObject;
|
|
58
|
+
assertTypeInfo(typeInfo, 'object');
|
|
59
|
+
const { properties: { a, b, c }, } = typeInfo;
|
|
60
|
+
expect(a.typeInfo.type).toBe('number');
|
|
61
|
+
expect(b.typeInfo.type).toBe('string');
|
|
62
|
+
assertTypeInfo(c.typeInfo, 'array');
|
|
63
|
+
expect(c.typeInfo.items.type).toBe('string');
|
|
64
|
+
expect(c.typeInfo.tsRawType).toBe('string[]');
|
|
65
|
+
});
|
|
66
|
+
it(`handles function with basic parameters`, () => {
|
|
67
|
+
const { typeInfo } = exports.aFunction;
|
|
68
|
+
assertTypeInfo(typeInfo, 'function');
|
|
69
|
+
const { parameters, returnType, tsRawType } = typeInfo;
|
|
70
|
+
if (!returnType) {
|
|
71
|
+
throw new Error('returnType is undefined');
|
|
72
|
+
}
|
|
73
|
+
const [param] = parameters;
|
|
74
|
+
expect(tsRawType).toBe('(a: number) => number');
|
|
75
|
+
expect(param.name).toBe('a');
|
|
76
|
+
expect(param.typeInfo.type).toBe('number');
|
|
77
|
+
expect(returnType.type).toBe('number');
|
|
78
|
+
});
|
|
79
|
+
it(`handles async function with basic parameters`, () => {
|
|
80
|
+
const { typeInfo } = exports.asyncFunction;
|
|
81
|
+
assertTypeInfo(typeInfo, 'function');
|
|
82
|
+
const { parameters, returnType, tsRawType } = typeInfo;
|
|
83
|
+
if (!returnType) {
|
|
84
|
+
throw new Error('returnType is undefined');
|
|
85
|
+
}
|
|
86
|
+
const [param] = parameters;
|
|
87
|
+
expect(param.name).toBe('a');
|
|
88
|
+
expect(param.typeInfo.type).toBe('number');
|
|
89
|
+
expect(tsRawType).toBe('(a: number) => Promise<number>');
|
|
90
|
+
expect(returnType.type).toBe('misc');
|
|
91
|
+
});
|
|
92
|
+
it(`handles function with complex parameters`, () => {
|
|
93
|
+
const { typeInfo } = exports.complexFuncTypes;
|
|
94
|
+
assertTypeInfo(typeInfo, 'function');
|
|
95
|
+
const [param] = typeInfo.parameters;
|
|
96
|
+
expect(param.name).toBe('obj');
|
|
97
|
+
assertTypeInfo(param.typeInfo, 'object');
|
|
98
|
+
const { properties } = param.typeInfo;
|
|
99
|
+
Object.entries(properties).forEach(([key, { typeInfo: propInfo }]) => {
|
|
100
|
+
switch (key) {
|
|
101
|
+
case 'aString': {
|
|
102
|
+
expect(propInfo.type).toBe('string');
|
|
103
|
+
expect(propInfo.isOptional).toBe(false);
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case 'anOptionalString': {
|
|
107
|
+
expect(propInfo.type).toBe('string');
|
|
108
|
+
expect(propInfo.isOptional).toBe(true);
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
case 'aBoolean': {
|
|
112
|
+
expect(propInfo.type).toBe('boolean');
|
|
113
|
+
expect(propInfo.isOptional).toBe(false);
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
case 'someSizes': {
|
|
117
|
+
assertTypeInfo(propInfo, 'union');
|
|
118
|
+
const sizes = propInfo.items.map((item) => {
|
|
119
|
+
assertTypeInfo(item, 'stringLiteral');
|
|
120
|
+
return item.value;
|
|
121
|
+
});
|
|
122
|
+
expect(sizes).toEqual(['small', 'medium', 'large']);
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
case 'anArray': {
|
|
126
|
+
assertTypeInfo(propInfo, 'array');
|
|
127
|
+
expect(propInfo.items.type).toBe('string');
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
case 'aFunc': {
|
|
131
|
+
assertTypeInfo(propInfo, 'function');
|
|
132
|
+
const { parameters, returnType } = propInfo;
|
|
133
|
+
if (!returnType) {
|
|
134
|
+
throw new Error('returnType is undefined');
|
|
135
|
+
}
|
|
136
|
+
const [p] = parameters;
|
|
137
|
+
expect(p.name).toBe('a');
|
|
138
|
+
expect(p.typeInfo.type).toBe('string');
|
|
139
|
+
expect(returnType.type).toBe('string');
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
case 'anotherFunc': {
|
|
143
|
+
assertTypeInfo(propInfo, 'function');
|
|
144
|
+
const { parameters } = propInfo;
|
|
145
|
+
const [p] = parameters;
|
|
146
|
+
expect(p.name).toBe('opt');
|
|
147
|
+
assertTypeInfo(p.typeInfo, 'object');
|
|
148
|
+
const { onFoo } = p.typeInfo.properties;
|
|
149
|
+
assertTypeInfo(onFoo.typeInfo, 'function');
|
|
150
|
+
const [onFooParam] = onFoo.typeInfo.parameters;
|
|
151
|
+
expect(onFooParam.name).toBe('a');
|
|
152
|
+
expect(onFooParam.typeInfo.type).toBe('string');
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=analyze-exports.vtest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-exports.vtest.js","sourceRoot":"","sources":["../src/analyze-exports.vtest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-to-spec.vtest.d.ts","sourceRoot":"","sources":["../src/convert-to-spec.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { convertToSpec } from './convert-to-spec.js';
|
|
3
|
+
// these two are up here to make TS happy
|
|
4
|
+
const typeInfoStubBase = {
|
|
5
|
+
tsRawType: '',
|
|
6
|
+
tsMetadata: null,
|
|
7
|
+
};
|
|
8
|
+
const tsMetadata = null;
|
|
9
|
+
describe('convert-to-spec', () => {
|
|
10
|
+
it('handles string', () => {
|
|
11
|
+
const { prop } = convertToSpec({
|
|
12
|
+
typeInfo: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
...typeInfoStubBase,
|
|
15
|
+
},
|
|
16
|
+
trustRequiredProps: false,
|
|
17
|
+
});
|
|
18
|
+
expect(prop).toEqual({
|
|
19
|
+
type: 'string',
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
it('handles boolean', () => {
|
|
23
|
+
const { prop } = convertToSpec({
|
|
24
|
+
typeInfo: {
|
|
25
|
+
type: 'boolean',
|
|
26
|
+
...typeInfoStubBase,
|
|
27
|
+
},
|
|
28
|
+
trustRequiredProps: false,
|
|
29
|
+
});
|
|
30
|
+
expect(prop).toEqual({
|
|
31
|
+
type: 'boolean',
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
it('handles object', () => {
|
|
35
|
+
const { prop } = convertToSpec({
|
|
36
|
+
typeInfo: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
...typeInfoStubBase,
|
|
39
|
+
properties: {
|
|
40
|
+
name: {
|
|
41
|
+
name: 'name',
|
|
42
|
+
typeInfo: {
|
|
43
|
+
type: 'string',
|
|
44
|
+
tsRawType: '',
|
|
45
|
+
tsMetadata: null,
|
|
46
|
+
},
|
|
47
|
+
tsMetadata,
|
|
48
|
+
},
|
|
49
|
+
age: {
|
|
50
|
+
name: 'age',
|
|
51
|
+
typeInfo: {
|
|
52
|
+
isOptional: true,
|
|
53
|
+
type: 'number',
|
|
54
|
+
...typeInfoStubBase,
|
|
55
|
+
},
|
|
56
|
+
tsMetadata,
|
|
57
|
+
},
|
|
58
|
+
shoePrefs: {
|
|
59
|
+
name: 'shoePrefs',
|
|
60
|
+
typeInfo: {
|
|
61
|
+
type: 'union',
|
|
62
|
+
...typeInfoStubBase,
|
|
63
|
+
items: [
|
|
64
|
+
{
|
|
65
|
+
type: 'stringLiteral',
|
|
66
|
+
value: 'sandals',
|
|
67
|
+
...typeInfoStubBase,
|
|
68
|
+
},
|
|
69
|
+
{ type: 'stringLiteral', value: 'boots', ...typeInfoStubBase },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
tsMetadata,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
trustRequiredProps: true,
|
|
77
|
+
});
|
|
78
|
+
expect(prop).toEqual({
|
|
79
|
+
type: 'object',
|
|
80
|
+
required: ['name', 'shoePrefs'],
|
|
81
|
+
properties: {
|
|
82
|
+
name: {
|
|
83
|
+
type: 'string',
|
|
84
|
+
},
|
|
85
|
+
age: {
|
|
86
|
+
type: 'number',
|
|
87
|
+
},
|
|
88
|
+
shoePrefs: {
|
|
89
|
+
type: 'string',
|
|
90
|
+
enum: ['sandals', 'boots'],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it('handles array of objects', () => {
|
|
96
|
+
const { prop } = convertToSpec({
|
|
97
|
+
typeInfo: {
|
|
98
|
+
type: 'array',
|
|
99
|
+
items: {
|
|
100
|
+
type: 'object',
|
|
101
|
+
properties: {
|
|
102
|
+
name: {
|
|
103
|
+
name: 'name',
|
|
104
|
+
typeInfo: {
|
|
105
|
+
type: 'string',
|
|
106
|
+
...typeInfoStubBase,
|
|
107
|
+
},
|
|
108
|
+
tsMetadata,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
...typeInfoStubBase,
|
|
112
|
+
},
|
|
113
|
+
...typeInfoStubBase,
|
|
114
|
+
},
|
|
115
|
+
trustRequiredProps: false,
|
|
116
|
+
});
|
|
117
|
+
expect(prop).toEqual({
|
|
118
|
+
type: 'array',
|
|
119
|
+
items: {
|
|
120
|
+
type: 'object',
|
|
121
|
+
required: [],
|
|
122
|
+
properties: {
|
|
123
|
+
name: {
|
|
124
|
+
type: 'string',
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=convert-to-spec.vtest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-to-spec.vtest.js","sourceRoot":"","sources":["../src/convert-to-spec.vtest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-ts-config.vtest.d.ts","sourceRoot":"","sources":["../src/get-ts-config.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { getTsConfigJson } from './get-ts-config.js';
|
|
3
|
+
describe('get-ts-config', () => {
|
|
4
|
+
it('reads this pkg tsconfig.json', () => {
|
|
5
|
+
const { tsConfig } = getTsConfigJson({ basePath: import.meta.dirname });
|
|
6
|
+
expect(Object.keys(tsConfig.options).length).toBeGreaterThan(0);
|
|
7
|
+
});
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=get-ts-config.vtest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-ts-config.vtest.js","sourceRoot":"","sources":["../src/get-ts-config.vtest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.vtest.d.ts","sourceRoot":"","sources":["../src/resolve.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { resolveTsModule } from './resolve.js';
|
|
4
|
+
describe('resolve module tests', () => {
|
|
5
|
+
it('resolves @knapsack/utils', () => {
|
|
6
|
+
const { resolvedFileName, isExternalLibraryImport } = resolveTsModule({
|
|
7
|
+
containingFile: import.meta.filename,
|
|
8
|
+
moduleName: '@knapsack/utils',
|
|
9
|
+
});
|
|
10
|
+
expect(resolvedFileName).toBeTruthy();
|
|
11
|
+
expect(resolvedFileName).toMatch(/\.d\.ts$/);
|
|
12
|
+
expect(resolvedFileName).toContain('utils/dist');
|
|
13
|
+
expect(isExternalLibraryImport).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
it('resolves local ts file with .js extension', () => {
|
|
16
|
+
const { resolvedFileName } = resolveTsModule({
|
|
17
|
+
containingFile: import.meta.filename,
|
|
18
|
+
moduleName: './boot.js',
|
|
19
|
+
});
|
|
20
|
+
expect(resolvedFileName).toBe(join(import.meta.dirname, './boot.ts'));
|
|
21
|
+
});
|
|
22
|
+
it('resolves local ts file with .ts extension', () => {
|
|
23
|
+
const { resolvedFileName } = resolveTsModule({
|
|
24
|
+
containingFile: import.meta.filename,
|
|
25
|
+
moduleName: './boot.ts',
|
|
26
|
+
});
|
|
27
|
+
expect(resolvedFileName).toBe(join(import.meta.dirname, './boot.ts'));
|
|
28
|
+
});
|
|
29
|
+
it('resolves a local package.json', () => {
|
|
30
|
+
const { resolvedFileName } = resolveTsModule({
|
|
31
|
+
containingFile: import.meta.filename,
|
|
32
|
+
moduleName: '../package.json',
|
|
33
|
+
});
|
|
34
|
+
expect(resolvedFileName).toMatch(/package\.json$/);
|
|
35
|
+
expect(resolvedFileName).toBe(join(import.meta.dirname, '../package.json'));
|
|
36
|
+
});
|
|
37
|
+
it('resolves a local file', () => {
|
|
38
|
+
const { resolvedFileName } = resolveTsModule({
|
|
39
|
+
containingFile: import.meta.filename,
|
|
40
|
+
moduleName: '../.eslintrc.cjs',
|
|
41
|
+
});
|
|
42
|
+
expect(resolvedFileName).toBe(join(import.meta.dirname, '../.eslintrc.cjs'));
|
|
43
|
+
});
|
|
44
|
+
it('resolves alias of @knapsack/utils', () => {
|
|
45
|
+
const { resolvedFileName } = resolveTsModule({
|
|
46
|
+
containingFile: import.meta.filename,
|
|
47
|
+
moduleName: 'foo',
|
|
48
|
+
pkgPathAliases: {
|
|
49
|
+
foo: '@knapsack/utils',
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
expect(resolvedFileName).toBeTruthy();
|
|
53
|
+
expect(resolvedFileName).toMatch(/\.d\.ts$/);
|
|
54
|
+
expect(resolvedFileName).toContain('utils/dist');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=resolve.vtest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.vtest.js","sourceRoot":"","sources":["../src/resolve.vtest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.vtest.d.ts","sourceRoot":"","sources":["../src/utils.vtest.ts"],"names":[],"mappings":""}
|