@knapsack/spec-utils 4.75.1--canary.5533.b6d80e0.0 → 4.75.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-test.log +2 -2
- package/CHANGELOG.md +23 -0
- package/dist/analyze-type.d.ts.map +1 -1
- package/dist/analyze-type.js +59 -0
- package/dist/analyze-type.js.map +1 -1
- package/package.json +10 -10
- package/src/analyze-type.ts +62 -0
package/.turbo/turbo-test.log
CHANGED
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
✔ analyze-exports › function with basic parameters: .d.ts
|
|
24
24
|
✔ analyze-exports › async function with basic parameters: .d.ts
|
|
25
25
|
✔ analyze-exports › function with complex parameters: .d.ts
|
|
26
|
-
✔ analyze-exports.sandbox-components › analyzeExports react (3.
|
|
27
|
-
✔ analyze-exports.sandbox-components › analyzeExports angular (
|
|
26
|
+
✔ analyze-exports.sandbox-components › analyzeExports react (3.5s)
|
|
27
|
+
✔ analyze-exports.sandbox-components › analyzeExports angular (2.2s)
|
|
28
28
|
✔ convert-to-spec › string
|
|
29
29
|
✔ convert-to-spec › boolean
|
|
30
30
|
✔ convert-to-spec › object
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
# v4.75.1 (Fri Jan 31 2025)
|
|
2
|
+
|
|
3
|
+
#### 🐛 Bug Fix
|
|
4
|
+
|
|
5
|
+
- null template demoIds causing render error [#5533](https://github.com/knapsack-labs/app-monorepo/pull/5533) ([@mabry1985](https://github.com/mabry1985))
|
|
6
|
+
- functions not populating schema on react infer spec [#5496](https://github.com/knapsack-labs/app-monorepo/pull/5496) ([@mabry1985](https://github.com/mabry1985))
|
|
7
|
+
- comment out object logic for first pass ([@mabry1985](https://github.com/mabry1985))
|
|
8
|
+
- handle function types ([@mabry1985](https://github.com/mabry1985))
|
|
9
|
+
- adds handling for object props ([@mabry1985](https://github.com/mabry1985))
|
|
10
|
+
|
|
11
|
+
#### 🏠 Internal
|
|
12
|
+
|
|
13
|
+
- Update Node.js to v20.18.2 [#5500](https://github.com/knapsack-labs/app-monorepo/pull/5500) ([@renovate[bot]](https://github.com/renovate[bot]))
|
|
14
|
+
- Ensure we await mergePr to properly catch errors [#5477](https://github.com/knapsack-labs/app-monorepo/pull/5477) ([@illepic](https://github.com/illepic))
|
|
15
|
+
|
|
16
|
+
#### Authors: 3
|
|
17
|
+
|
|
18
|
+
- [@renovate[bot]](https://github.com/renovate[bot])
|
|
19
|
+
- Christopher Bloom ([@illepic](https://github.com/illepic))
|
|
20
|
+
- Josh Mabry ([@mabry1985](https://github.com/mabry1985))
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
1
24
|
# v4.74.0 (Fri Jan 24 2025)
|
|
2
25
|
|
|
3
26
|
#### 🏠 Internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-type.d.ts","sourceRoot":"","sources":["../src/analyze-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAkB,MAAM,YAAY,CAAC;AAGtD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACP,UAAU,EACV,YAAwB,GACzB,EAAE;IACD,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACd,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;CAC7B,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"analyze-type.d.ts","sourceRoot":"","sources":["../src/analyze-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAkB,MAAM,YAAY,CAAC;AAGtD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACP,UAAU,EACV,YAAwB,GACzB,EAAE;IACD,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACd,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;CAC7B,GAAG,QAAQ,CA8NX"}
|
package/dist/analyze-type.js
CHANGED
|
@@ -134,6 +134,65 @@ export function analyzeType({ type, checker, isOptional, visitedTypes = new Set(
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
+
// Handle function types
|
|
138
|
+
if (typeFlags.includes('Object') && type.getCallSignatures().length > 0) {
|
|
139
|
+
return {
|
|
140
|
+
type: 'function',
|
|
141
|
+
parameters: [],
|
|
142
|
+
returnType: { type: 'misc', ...typeInfoCommon },
|
|
143
|
+
...typeInfoCommon,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
// Handle object types
|
|
147
|
+
// @TODO: update handling of object type inference
|
|
148
|
+
// https://linear.app/knapsack/issue/KSP-5880/handle-arrays-of-objects-in-react-renderer-infer-spec
|
|
149
|
+
// if (typeFlags.includes('Object')) {
|
|
150
|
+
// const properties = type.getProperties();
|
|
151
|
+
// if (properties.length > 0) {
|
|
152
|
+
// const analyzedProperties = properties.reduce<Record<string, SymbolInfo>>(
|
|
153
|
+
// (acc, prop) => {
|
|
154
|
+
// try {
|
|
155
|
+
// const propType = checker.getTypeOfSymbol(prop);
|
|
156
|
+
// if (propType) {
|
|
157
|
+
// const propAnalysis = analyzeType({
|
|
158
|
+
// type: propType,
|
|
159
|
+
// checker,
|
|
160
|
+
// // eslint-disable-next-line no-bitwise
|
|
161
|
+
// isOptional: !!(prop.flags & ts.SymbolFlags.Optional),
|
|
162
|
+
// visitedTypes,
|
|
163
|
+
// depth: depth + 1,
|
|
164
|
+
// });
|
|
165
|
+
// acc[prop.getName()] = {
|
|
166
|
+
// name: prop.getName(),
|
|
167
|
+
// typeInfo: propAnalysis,
|
|
168
|
+
// tsMetadata: {
|
|
169
|
+
// symbol: prop,
|
|
170
|
+
// type: propType,
|
|
171
|
+
// symbolFlags: getSetFlags({
|
|
172
|
+
// flags: prop.flags,
|
|
173
|
+
// enumObject: ts.SymbolFlags,
|
|
174
|
+
// }),
|
|
175
|
+
// },
|
|
176
|
+
// };
|
|
177
|
+
// }
|
|
178
|
+
// } catch (error) {
|
|
179
|
+
// console.debug(
|
|
180
|
+
// `Error analyzing property ${prop.getName()}: ${error}`,
|
|
181
|
+
// );
|
|
182
|
+
// }
|
|
183
|
+
// return acc;
|
|
184
|
+
// },
|
|
185
|
+
// {},
|
|
186
|
+
// );
|
|
187
|
+
// if (Object.keys(analyzedProperties).length > 0) {
|
|
188
|
+
// return {
|
|
189
|
+
// type: 'object',
|
|
190
|
+
// properties: analyzedProperties,
|
|
191
|
+
// ...typeInfoCommon,
|
|
192
|
+
// };
|
|
193
|
+
// }
|
|
194
|
+
// }
|
|
195
|
+
// }
|
|
137
196
|
// Default to misc type for anything we can't properly analyze
|
|
138
197
|
return {
|
|
139
198
|
type: 'misc',
|
package/dist/analyze-type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-type.js","sourceRoot":"","sources":["../src/analyze-type.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze-type.js","sourceRoot":"","sources":["../src/analyze-type.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knapsack/spec-utils",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "4.75.1
|
|
4
|
+
"version": "4.75.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -19,17 +19,17 @@
|
|
|
19
19
|
"test": "ava"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@knapsack/utils": "4.75.1
|
|
22
|
+
"@knapsack/utils": "4.75.1",
|
|
23
23
|
"typescript": "^5.6.3"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@knapsack/angular-sandbox-components": "4.75.1
|
|
27
|
-
"@knapsack/eslint-config-starter": "4.75.1
|
|
28
|
-
"@knapsack/prettier-config": "4.75.1
|
|
29
|
-
"@knapsack/sandbox-components": "4.75.1
|
|
30
|
-
"@knapsack/test-ava": "4.75.1
|
|
31
|
-
"@knapsack/types": "4.75.1
|
|
32
|
-
"@knapsack/typescript-config-starter": "4.75.1
|
|
26
|
+
"@knapsack/angular-sandbox-components": "4.75.1",
|
|
27
|
+
"@knapsack/eslint-config-starter": "4.75.1",
|
|
28
|
+
"@knapsack/prettier-config": "4.75.1",
|
|
29
|
+
"@knapsack/sandbox-components": "4.75.1",
|
|
30
|
+
"@knapsack/test-ava": "4.75.1",
|
|
31
|
+
"@knapsack/types": "4.75.1",
|
|
32
|
+
"@knapsack/typescript-config-starter": "4.75.1",
|
|
33
33
|
"@types/node": "^20.17.16",
|
|
34
34
|
"ava": "^6.2.0",
|
|
35
35
|
"eslint": "^8.57.0"
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"directory": "apps/client/libs/spec-utils",
|
|
44
44
|
"type": "git"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "45ad5aef13539ff9a9154a25b7cfde7da79db7f0"
|
|
47
47
|
}
|
package/src/analyze-type.ts
CHANGED
|
@@ -167,6 +167,68 @@ export function analyzeType({
|
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
// Handle function types
|
|
171
|
+
if (typeFlags.includes('Object') && type.getCallSignatures().length > 0) {
|
|
172
|
+
return {
|
|
173
|
+
type: 'function',
|
|
174
|
+
parameters: [],
|
|
175
|
+
returnType: { type: 'misc', ...typeInfoCommon },
|
|
176
|
+
...typeInfoCommon,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Handle object types
|
|
181
|
+
// @TODO: update handling of object type inference
|
|
182
|
+
// https://linear.app/knapsack/issue/KSP-5880/handle-arrays-of-objects-in-react-renderer-infer-spec
|
|
183
|
+
// if (typeFlags.includes('Object')) {
|
|
184
|
+
// const properties = type.getProperties();
|
|
185
|
+
// if (properties.length > 0) {
|
|
186
|
+
// const analyzedProperties = properties.reduce<Record<string, SymbolInfo>>(
|
|
187
|
+
// (acc, prop) => {
|
|
188
|
+
// try {
|
|
189
|
+
// const propType = checker.getTypeOfSymbol(prop);
|
|
190
|
+
// if (propType) {
|
|
191
|
+
// const propAnalysis = analyzeType({
|
|
192
|
+
// type: propType,
|
|
193
|
+
// checker,
|
|
194
|
+
// // eslint-disable-next-line no-bitwise
|
|
195
|
+
// isOptional: !!(prop.flags & ts.SymbolFlags.Optional),
|
|
196
|
+
// visitedTypes,
|
|
197
|
+
// depth: depth + 1,
|
|
198
|
+
// });
|
|
199
|
+
// acc[prop.getName()] = {
|
|
200
|
+
// name: prop.getName(),
|
|
201
|
+
// typeInfo: propAnalysis,
|
|
202
|
+
// tsMetadata: {
|
|
203
|
+
// symbol: prop,
|
|
204
|
+
// type: propType,
|
|
205
|
+
// symbolFlags: getSetFlags({
|
|
206
|
+
// flags: prop.flags,
|
|
207
|
+
// enumObject: ts.SymbolFlags,
|
|
208
|
+
// }),
|
|
209
|
+
// },
|
|
210
|
+
// };
|
|
211
|
+
// }
|
|
212
|
+
// } catch (error) {
|
|
213
|
+
// console.debug(
|
|
214
|
+
// `Error analyzing property ${prop.getName()}: ${error}`,
|
|
215
|
+
// );
|
|
216
|
+
// }
|
|
217
|
+
// return acc;
|
|
218
|
+
// },
|
|
219
|
+
// {},
|
|
220
|
+
// );
|
|
221
|
+
|
|
222
|
+
// if (Object.keys(analyzedProperties).length > 0) {
|
|
223
|
+
// return {
|
|
224
|
+
// type: 'object',
|
|
225
|
+
// properties: analyzedProperties,
|
|
226
|
+
// ...typeInfoCommon,
|
|
227
|
+
// };
|
|
228
|
+
// }
|
|
229
|
+
// }
|
|
230
|
+
// }
|
|
231
|
+
|
|
170
232
|
// Default to misc type for anything we can't properly analyze
|
|
171
233
|
return {
|
|
172
234
|
type: 'misc',
|