@knapsack/spec-utils 4.78.12 → 4.78.13--canary.bf27ce1.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.
Files changed (56) hide show
  1. package/package.json +10 -10
  2. package/.turbo/turbo-build.log +0 -4
  3. package/.turbo/turbo-lint.log +0 -4
  4. package/.turbo/turbo-test.log +0 -50
  5. package/dist/align/align.vtest.d.ts +0 -2
  6. package/dist/align/align.vtest.d.ts.map +0 -1
  7. package/dist/align/align.vtest.js +0 -46
  8. package/dist/align/align.vtest.js.map +0 -1
  9. package/dist/analyze-exports.sandbox-components.vtest.d.ts +0 -2
  10. package/dist/analyze-exports.sandbox-components.vtest.d.ts.map +0 -1
  11. package/dist/analyze-exports.sandbox-components.vtest.js +0 -51
  12. package/dist/analyze-exports.sandbox-components.vtest.js.map +0 -1
  13. package/dist/analyze-exports.vtest.d.ts +0 -2
  14. package/dist/analyze-exports.vtest.d.ts.map +0 -1
  15. package/dist/analyze-exports.vtest.js +0 -160
  16. package/dist/analyze-exports.vtest.js.map +0 -1
  17. package/dist/convert-to-spec.vtest.d.ts +0 -2
  18. package/dist/convert-to-spec.vtest.d.ts.map +0 -1
  19. package/dist/convert-to-spec.vtest.js +0 -131
  20. package/dist/convert-to-spec.vtest.js.map +0 -1
  21. package/dist/get-ts-config.vtest.d.ts +0 -2
  22. package/dist/get-ts-config.vtest.d.ts.map +0 -1
  23. package/dist/get-ts-config.vtest.js +0 -9
  24. package/dist/get-ts-config.vtest.js.map +0 -1
  25. package/dist/resolve.vtest.d.ts +0 -2
  26. package/dist/resolve.vtest.d.ts.map +0 -1
  27. package/dist/resolve.vtest.js +0 -57
  28. package/dist/resolve.vtest.js.map +0 -1
  29. package/dist/utils.vtest.d.ts +0 -2
  30. package/dist/utils.vtest.d.ts.map +0 -1
  31. package/dist/utils.vtest.js +0 -37
  32. package/dist/utils.vtest.js.map +0 -1
  33. package/src/align/align.vtest.ts +0 -56
  34. package/src/align/get-exports.bench.ts +0 -28
  35. package/src/align/resolve.bench.ts +0 -20
  36. package/src/align/utils.ts +0 -14
  37. package/src/analyze-exports.sandbox-components.vtest.ts +0 -53
  38. package/src/analyze-exports.ts +0 -54
  39. package/src/analyze-exports.vtest.ts +0 -178
  40. package/src/analyze-symbol.ts +0 -213
  41. package/src/analyze-type.ts +0 -316
  42. package/src/boot.ts +0 -31
  43. package/src/convert-to-spec.ts +0 -196
  44. package/src/convert-to-spec.vtest.ts +0 -136
  45. package/src/get-exports.ts +0 -70
  46. package/src/get-ts-config.ts +0 -96
  47. package/src/get-ts-config.vtest.ts +0 -9
  48. package/src/index.ts +0 -5
  49. package/src/resolve.ts +0 -54
  50. package/src/resolve.vtest.ts +0 -69
  51. package/src/test-fixtures/basics.ts +0 -17
  52. package/src/test-fixtures/functions.ts +0 -50
  53. package/src/test-fixtures/index.ts +0 -2
  54. package/src/types.ts +0 -66
  55. package/src/utils.ts +0 -61
  56. package/src/utils.vtest.ts +0 -39
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@knapsack/spec-utils",
3
3
  "description": "",
4
- "version": "4.78.12",
4
+ "version": "4.78.13--canary.bf27ce1.0",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
@@ -20,17 +20,17 @@
20
20
  "test": "vitest run"
21
21
  },
22
22
  "dependencies": {
23
- "@knapsack/utils": "4.78.12",
23
+ "@knapsack/utils": "4.78.13--canary.bf27ce1.0",
24
24
  "typescript": "^5.8.3"
25
25
  },
26
26
  "devDependencies": {
27
- "@knapsack/angular-sandbox-components": "4.78.12",
28
- "@knapsack/eslint-config-starter": "4.78.12",
29
- "@knapsack/file-utils": "4.78.12",
30
- "@knapsack/prettier-config": "4.78.12",
31
- "@knapsack/sandbox-components": "4.78.12",
32
- "@knapsack/types": "4.78.12",
33
- "@knapsack/typescript-config-starter": "4.78.12",
27
+ "@knapsack/angular-sandbox-components": "4.78.13--canary.bf27ce1.0",
28
+ "@knapsack/eslint-config-starter": "4.78.13--canary.bf27ce1.0",
29
+ "@knapsack/file-utils": "4.78.13--canary.bf27ce1.0",
30
+ "@knapsack/prettier-config": "4.78.13--canary.bf27ce1.0",
31
+ "@knapsack/sandbox-components": "4.78.13--canary.bf27ce1.0",
32
+ "@knapsack/types": "4.78.13--canary.bf27ce1.0",
33
+ "@knapsack/typescript-config-starter": "4.78.13--canary.bf27ce1.0",
34
34
  "@mui/material": "^5.17.1",
35
35
  "@types/node": "^20.17.24",
36
36
  "eslint": "^8.57.0",
@@ -45,5 +45,5 @@
45
45
  "directory": "apps/client/libs/spec-utils",
46
46
  "type": "git"
47
47
  },
48
- "gitHead": "73a56eb8790c595fd6796ff7505991df43caad7c"
48
+ "gitHead": "bf27ce14ebaf5fc1efc579f61a5002824c9aad0c"
49
49
  }
@@ -1,4 +0,0 @@
1
-
2
- > @knapsack/spec-utils@4.78.11 build /home/runner/work/app-monorepo/app-monorepo/apps/client/libs/spec-utils
3
- > tsc
4
-
@@ -1,4 +0,0 @@
1
-
2
- > @knapsack/spec-utils@4.78.11 lint /home/runner/work/app-monorepo/app-monorepo/apps/client/libs/spec-utils
3
- > eslint ./
4
-
@@ -1,50 +0,0 @@
1
-
2
- > @knapsack/spec-utils@4.78.11 test /home/runner/work/app-monorepo/app-monorepo/apps/client/libs/spec-utils
3
- > vitest run
4
-
5
-
6
-  RUN  v3.1.1 /home/runner/work/app-monorepo/app-monorepo/apps/client/libs/spec-utils
7
- Coverage enabled with v8
8
-
9
- ✓ src/convert-to-spec.vtest.ts (4 tests) 5ms
10
- ✓ src/utils.vtest.ts (3 tests) 6ms
11
- ✓ src/get-ts-config.vtest.ts (1 test) 29ms
12
- ✓ src/resolve.vtest.ts (6 tests) 34ms
13
- ✓ src/analyze-exports.vtest.ts (20 tests) 2282ms
14
- ✓ analyze-exports tests for .ts files > gets export names  1150ms
15
- ✓ analyze-exports tests for .d.ts files > gets export names  1125ms
16
- ✓ src/analyze-exports.sandbox-components.vtest.ts (2 tests) 5805ms
17
- ✓ analyze-exports sandbox components > analyzes react exports  2208ms
18
- ✓ analyze-exports sandbox components > analyzes angular exports  3594ms
19
- ✓ src/align/align.vtest.ts (8 tests) 7547ms
20
- ✓ '@knapsack/sandbox-components/react' > finds same export names in ts and js  2045ms
21
- ✓ '@knapsack/angular-sandbox-components' > finds same export names in ts and js  1541ms
22
- ✓ '@mui/material' > finds same export names in ts and js  2193ms
23
- ✓ '@knapsack/utils' > finds same export names in ts and js  1723ms
24
-
25
-  Test Files  7 passed (7)
26
-  Tests  44 passed (44)
27
-  Start at  22:23:07
28
-  Duration  10.44s (transform 338ms, setup 72ms, collect 10.11s, tests 15.71s, environment 2ms, prepare 841ms)
29
-
30
-  % Coverage report from v8
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
- -------------------|---------|----------|---------|---------|-------------------
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=align.vtest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"align.vtest.d.ts","sourceRoot":"","sources":["../../src/align/align.vtest.ts"],"names":[],"mappings":""}
@@ -1,46 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=analyze-exports.sandbox-components.vtest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze-exports.sandbox-components.vtest.d.ts","sourceRoot":"","sources":["../src/analyze-exports.sandbox-components.vtest.ts"],"names":[],"mappings":""}
@@ -1,51 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=analyze-exports.vtest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze-exports.vtest.d.ts","sourceRoot":"","sources":["../src/analyze-exports.vtest.ts"],"names":[],"mappings":""}
@@ -1,160 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze-exports.vtest.js","sourceRoot":"","sources":["../src/analyze-exports.vtest.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=convert-to-spec.vtest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert-to-spec.vtest.d.ts","sourceRoot":"","sources":["../src/convert-to-spec.vtest.ts"],"names":[],"mappings":""}
@@ -1,131 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert-to-spec.vtest.js","sourceRoot":"","sources":["../src/convert-to-spec.vtest.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=get-ts-config.vtest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-ts-config.vtest.d.ts","sourceRoot":"","sources":["../src/get-ts-config.vtest.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=resolve.vtest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve.vtest.d.ts","sourceRoot":"","sources":["../src/resolve.vtest.ts"],"names":[],"mappings":""}