@webda/content-mapper 0.0.0-stage → 4.0.0-beta.4
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/LICENSE +166 -0
- package/lib/coercions.d.ts +22 -0
- package/lib/coercions.d.ts.map +1 -0
- package/lib/coercions.js +10 -0
- package/lib/coercions.js.map +1 -0
- package/lib/context.d.ts +56 -0
- package/lib/context.d.ts.map +1 -0
- package/lib/context.js +111 -0
- package/lib/context.js.map +1 -0
- package/lib/defaults.d.ts +31 -0
- package/lib/defaults.d.ts.map +1 -0
- package/lib/defaults.js +33 -0
- package/lib/defaults.js.map +1 -0
- package/lib/generators/accessors.d.ts +15 -0
- package/lib/generators/accessors.d.ts.map +1 -0
- package/lib/generators/accessors.js +567 -0
- package/lib/generators/accessors.js.map +1 -0
- package/lib/generators/behaviors.d.ts +21 -0
- package/lib/generators/behaviors.d.ts.map +1 -0
- package/lib/generators/behaviors.js +292 -0
- package/lib/generators/behaviors.js.map +1 -0
- package/lib/generators/imports.d.ts +86 -0
- package/lib/generators/imports.d.ts.map +1 -0
- package/lib/generators/imports.js +205 -0
- package/lib/generators/imports.js.map +1 -0
- package/lib/generators/loadparameters.d.ts +7 -0
- package/lib/generators/loadparameters.d.ts.map +1 -0
- package/lib/generators/loadparameters.js +175 -0
- package/lib/generators/loadparameters.js.map +1 -0
- package/lib/generators/qlvalidator.d.ts +53 -0
- package/lib/generators/qlvalidator.d.ts.map +1 -0
- package/lib/generators/qlvalidator.js +238 -0
- package/lib/generators/qlvalidator.js.map +1 -0
- package/lib/index.d.ts +53 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +36 -0
- package/lib/index.js.map +1 -0
- package/lib/module-discovery.d.ts +211 -0
- package/lib/module-discovery.d.ts.map +1 -0
- package/lib/module-discovery.js +662 -0
- package/lib/module-discovery.js.map +1 -0
- package/lib/module.d.ts +213 -0
- package/lib/module.d.ts.map +1 -0
- package/lib/module.js +1243 -0
- package/lib/module.js.map +1 -0
- package/lib/plan.d.ts +101 -0
- package/lib/plan.d.ts.map +1 -0
- package/lib/plan.js +61 -0
- package/lib/plan.js.map +1 -0
- package/lib/property-order.d.ts +37 -0
- package/lib/property-order.d.ts.map +1 -0
- package/lib/property-order.js +141 -0
- package/lib/property-order.js.map +1 -0
- package/lib/schema/action.d.ts +46 -0
- package/lib/schema/action.d.ts.map +1 -0
- package/lib/schema/action.js +190 -0
- package/lib/schema/action.js.map +1 -0
- package/lib/schema/annotations.d.ts +63 -0
- package/lib/schema/annotations.d.ts.map +1 -0
- package/lib/schema/annotations.js +116 -0
- package/lib/schema/annotations.js.map +1 -0
- package/lib/schema/converter.d.ts +363 -0
- package/lib/schema/converter.d.ts.map +1 -0
- package/lib/schema/converter.js +1377 -0
- package/lib/schema/converter.js.map +1 -0
- package/lib/schema/jsdoc.d.ts +34 -0
- package/lib/schema/jsdoc.d.ts.map +1 -0
- package/lib/schema/jsdoc.js +206 -0
- package/lib/schema/jsdoc.js.map +1 -0
- package/lib/schema/model.d.ts +27 -0
- package/lib/schema/model.d.ts.map +1 -0
- package/lib/schema/model.js +86 -0
- package/lib/schema/model.js.map +1 -0
- package/lib/schema/project.d.ts +34 -0
- package/lib/schema/project.d.ts.map +1 -0
- package/lib/schema/project.js +305 -0
- package/lib/schema/project.js.map +1 -0
- package/lib/schema/service.d.ts +62 -0
- package/lib/schema/service.d.ts.map +1 -0
- package/lib/schema/service.js +130 -0
- package/lib/schema/service.js.map +1 -0
- package/lib/schema/types.d.ts +61 -0
- package/lib/schema/types.d.ts.map +1 -0
- package/lib/schema/types.js +36 -0
- package/lib/schema/types.js.map +1 -0
- package/lib/schema/worker-cli.d.ts +3 -0
- package/lib/schema/worker-cli.d.ts.map +1 -0
- package/lib/schema/worker-cli.js +7 -0
- package/lib/schema/worker-cli.js.map +1 -0
- package/lib/schema/worker.d.ts +81 -0
- package/lib/schema/worker.d.ts.map +1 -0
- package/lib/schema/worker.js +186 -0
- package/lib/schema/worker.js.map +1 -0
- package/lib/server.d.ts +2 -0
- package/lib/server.d.ts.map +1 -0
- package/lib/server.js +133 -0
- package/lib/server.js.map +1 -0
- package/lib/session.d.ts +84 -0
- package/lib/session.d.ts.map +1 -0
- package/lib/session.js +141 -0
- package/lib/session.js.map +1 -0
- package/lib/spans.d.ts +46 -0
- package/lib/spans.d.ts.map +1 -0
- package/lib/spans.js +64 -0
- package/lib/spans.js.map +1 -0
- package/lib/twopass.d.ts +45 -0
- package/lib/twopass.d.ts.map +1 -0
- package/lib/twopass.js +87 -0
- package/lib/twopass.js.map +1 -0
- package/lib/vite.d.ts +20 -0
- package/lib/vite.d.ts.map +1 -0
- package/lib/vite.js +41 -0
- package/lib/vite.js.map +1 -0
- package/package.json +89 -3
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/schema/converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol documentation resolution, reproduced on the TypeScript 7.1 AST.
|
|
3
|
+
*
|
|
4
|
+
* `Symbol.getDocumentationComment` exists in 7.1 but answers a narrower
|
|
5
|
+
* question than the 6.x services layer did, and the committed
|
|
6
|
+
* `webda.module.json` was generated against the wider one. Three behaviours
|
|
7
|
+
* are missing, each of which silently drops a `description`:
|
|
8
|
+
*
|
|
9
|
+
* 1. **The JSDoc host walk.** `models: { [key: string]: string[] }` documents
|
|
10
|
+
* the property, but the schema is built from the anonymous type literal.
|
|
11
|
+
* TypeScript 6 walks from the type literal up to the property declaration
|
|
12
|
+
* to find the comment; 7.1 does not.
|
|
13
|
+
* 2. **Inheritance from base types.** A member with tags but no prose — say
|
|
14
|
+
* `httpOnly?: boolean` carrying only `@default true` — takes its
|
|
15
|
+
* description from the `implements`/`extends` clause. Most of
|
|
16
|
+
* `CookieOptions` is documented this way, by the `cookie` package.
|
|
17
|
+
* 3. **Raw `{@link}` text.** 7.1 flattens a link to its target name; 6.x
|
|
18
|
+
* reconstructed the braces, and whether the target resolves changes the
|
|
19
|
+
* result by one space.
|
|
20
|
+
*
|
|
21
|
+
* All three are reimplemented here rather than worked around, because the
|
|
22
|
+
* alternative is a schema that quietly loses documentation — exactly the
|
|
23
|
+
* class of failure stage 7 is meant to make impossible.
|
|
24
|
+
*/
|
|
25
|
+
import type { Checker, Project, Symbol as TsSymbol } from "typescript/unstable/sync";
|
|
26
|
+
/**
|
|
27
|
+
* The documentation comment for a symbol, as TypeScript 6 rendered it.
|
|
28
|
+
* @param symbol - the symbol to document
|
|
29
|
+
* @param checker - checker used to resolve link targets and base types
|
|
30
|
+
* @param project - project used to resolve declaration handles
|
|
31
|
+
* @returns the comment text, empty when there is none
|
|
32
|
+
*/
|
|
33
|
+
export declare function documentationOf(symbol: TsSymbol, checker: Checker, project: Project): string;
|
|
34
|
+
//# sourceMappingURL=jsdoc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsdoc.d.ts","sourceRoot":"","sources":["../../src/schema/jsdoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAgBrF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAuB5F"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { SyntaxKind } from "typescript/unstable/ast";
|
|
2
|
+
/**
|
|
3
|
+
* The documentation comment for a symbol, as TypeScript 6 rendered it.
|
|
4
|
+
* @param symbol - the symbol to document
|
|
5
|
+
* @param checker - checker used to resolve link targets and base types
|
|
6
|
+
* @param project - project used to resolve declaration handles
|
|
7
|
+
* @returns the comment text, empty when there is none
|
|
8
|
+
*/
|
|
9
|
+
export function documentationOf(symbol, checker, project) {
|
|
10
|
+
const declarations = symbol.declarations.map(handle => handle.resolve(project)).filter(isNode);
|
|
11
|
+
const blocks = [];
|
|
12
|
+
for (const declaration of unique(declarations)) {
|
|
13
|
+
for (const block of commentHavingNodes(declaration)) {
|
|
14
|
+
if (!block.comment || block.comment.length === 0)
|
|
15
|
+
continue;
|
|
16
|
+
const rendered = renderComment(block.comment, checker, project);
|
|
17
|
+
if (!blocks.includes(rendered))
|
|
18
|
+
blocks.push(rendered);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (blocks.length > 0)
|
|
22
|
+
return blocks.join("\n");
|
|
23
|
+
// Nothing of its own: take the base declaration's documentation, which is
|
|
24
|
+
// how a member that only carries tags is still described.
|
|
25
|
+
for (const declaration of unique(declarations)) {
|
|
26
|
+
const inherited = baseSymbolOf(declaration, symbol.name, checker);
|
|
27
|
+
if (inherited) {
|
|
28
|
+
const text = documentationOf(inherited, checker, project);
|
|
29
|
+
if (text)
|
|
30
|
+
return text;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return "";
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* JSDoc blocks that document a node, including those on enclosing nodes.
|
|
37
|
+
*
|
|
38
|
+
* A type literal, an initialiser and a return expression are all documented
|
|
39
|
+
* by their parent, so the chain is followed upwards. Only the last block on
|
|
40
|
+
* each node counts — an earlier one documents whatever came before it.
|
|
41
|
+
* @param node - the declaration to document
|
|
42
|
+
* @returns the blocks, nearest first
|
|
43
|
+
*/
|
|
44
|
+
function commentHavingNodes(node) {
|
|
45
|
+
const blocks = [];
|
|
46
|
+
let current = node;
|
|
47
|
+
while (current?.parent) {
|
|
48
|
+
const own = current.jsDoc;
|
|
49
|
+
if (own && own.length > 0)
|
|
50
|
+
blocks.push(own[own.length - 1]);
|
|
51
|
+
current = nextCommentLocation(current);
|
|
52
|
+
}
|
|
53
|
+
return blocks;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The enclosing node that may document this one.
|
|
57
|
+
* @param node - the current node
|
|
58
|
+
* @returns the parent when it documents `node`, otherwise undefined
|
|
59
|
+
*/
|
|
60
|
+
function nextCommentLocation(node) {
|
|
61
|
+
const parent = node.parent;
|
|
62
|
+
if (!parent)
|
|
63
|
+
return undefined;
|
|
64
|
+
switch (parent.kind) {
|
|
65
|
+
case SyntaxKind.PropertyAssignment:
|
|
66
|
+
case SyntaxKind.ExportAssignment:
|
|
67
|
+
case SyntaxKind.PropertyDeclaration:
|
|
68
|
+
case SyntaxKind.ReturnStatement:
|
|
69
|
+
return parent;
|
|
70
|
+
case SyntaxKind.ExpressionStatement:
|
|
71
|
+
return node.kind === SyntaxKind.PropertyAccessExpression ? parent : undefined;
|
|
72
|
+
default:
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Render a JSDoc comment array to text.
|
|
78
|
+
* @param parts - the comment nodes
|
|
79
|
+
* @param checker - checker used to resolve link targets
|
|
80
|
+
* @param project - project used to resolve declaration handles
|
|
81
|
+
* @returns the rendered comment
|
|
82
|
+
*/
|
|
83
|
+
function renderComment(parts, checker, project) {
|
|
84
|
+
let out = "";
|
|
85
|
+
for (const part of parts) {
|
|
86
|
+
out += part.kind === SyntaxKind.JSDocText ? part.text : renderLink(part, checker, project);
|
|
87
|
+
}
|
|
88
|
+
// A block closed by a blank `*` line, or one followed by tags, leaves a
|
|
89
|
+
// trailing newline in the 7.1 AST that 6.x trimmed before handing the
|
|
90
|
+
// comment out. Keeping it would put `\n` at the end of a third of the
|
|
91
|
+
// descriptions in the corpus.
|
|
92
|
+
return out.replace(/\s+$/, "");
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Render a `{@link}`, `{@linkcode}` or `{@linkplain}` back to source form.
|
|
96
|
+
*
|
|
97
|
+
* The trailing space when the target does not resolve is not a quirk worth
|
|
98
|
+
* smoothing over: it is in the committed schemas, so removing it is a diff.
|
|
99
|
+
* @param part - the link node
|
|
100
|
+
* @param checker - checker used to resolve the target
|
|
101
|
+
* @param project - project used to resolve declaration handles
|
|
102
|
+
* @returns the rendered link, braces included
|
|
103
|
+
*/
|
|
104
|
+
function renderLink(part, checker, project) {
|
|
105
|
+
const prefix = part.kind === SyntaxKind.JSDocLinkCode
|
|
106
|
+
? "linkcode"
|
|
107
|
+
: part.kind === SyntaxKind.JSDocLinkPlain
|
|
108
|
+
? "linkplain"
|
|
109
|
+
: "link";
|
|
110
|
+
if (!part.name)
|
|
111
|
+
return `{@${prefix} ${part.text}}`;
|
|
112
|
+
const suffix = linkNameEnd(part.text);
|
|
113
|
+
const name = nameText(part.name) + part.text.slice(0, suffix);
|
|
114
|
+
const text = stripSeparator(part.text.slice(suffix));
|
|
115
|
+
const symbol = checker.getSymbolAtLocation(part.name);
|
|
116
|
+
const declaration = symbol?.valueDeclaration?.resolve(project) ?? symbol?.declarations[0]?.resolve(project);
|
|
117
|
+
const body = declaration ? name + text : name + (suffix ? "" : " ") + text;
|
|
118
|
+
return `{@${prefix} ${body}}`;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* How much of a link's trailing text still belongs to the target name.
|
|
122
|
+
*
|
|
123
|
+
* `{@link fn()}` and `{@link Box<T>}` carry the call or type arguments in the
|
|
124
|
+
* text rather than the name node.
|
|
125
|
+
* @param text - the text following the link name
|
|
126
|
+
* @returns the number of leading characters belonging to the name
|
|
127
|
+
*/
|
|
128
|
+
function linkNameEnd(text) {
|
|
129
|
+
if (text.startsWith("()"))
|
|
130
|
+
return 2;
|
|
131
|
+
if (text[0] !== "<")
|
|
132
|
+
return 0;
|
|
133
|
+
let depth = 0;
|
|
134
|
+
for (let index = 0; index < text.length; index++) {
|
|
135
|
+
if (text[index] === "<")
|
|
136
|
+
depth++;
|
|
137
|
+
if (text[index] === ">")
|
|
138
|
+
depth--;
|
|
139
|
+
if (depth === 0)
|
|
140
|
+
return index + 1;
|
|
141
|
+
}
|
|
142
|
+
return 0;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Drop the `|` separator between a link target and its display text.
|
|
146
|
+
* @param text - the text after the target name
|
|
147
|
+
* @returns the display text
|
|
148
|
+
*/
|
|
149
|
+
function stripSeparator(text) {
|
|
150
|
+
if (text[0] !== "|")
|
|
151
|
+
return text;
|
|
152
|
+
return text.slice(1).replace(/^ +/, "");
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Source text of an entity name.
|
|
156
|
+
* @param node - an identifier or qualified name
|
|
157
|
+
* @returns the dotted name
|
|
158
|
+
*/
|
|
159
|
+
function nameText(node) {
|
|
160
|
+
const qualified = node;
|
|
161
|
+
if (qualified.left && qualified.right)
|
|
162
|
+
return `${nameText(qualified.left)}.${qualified.right.text}`;
|
|
163
|
+
return qualified.text ?? "";
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* The same-named member on a declaration's base or implemented types.
|
|
167
|
+
* @param declaration - the member declaration
|
|
168
|
+
* @param name - the member name
|
|
169
|
+
* @param checker - checker used to resolve heritage types
|
|
170
|
+
* @returns the base member's symbol, when one exists
|
|
171
|
+
*/
|
|
172
|
+
function baseSymbolOf(declaration, name, checker) {
|
|
173
|
+
const owner = declaration.parent;
|
|
174
|
+
if (!owner)
|
|
175
|
+
return undefined;
|
|
176
|
+
const heritage = owner.heritageClauses;
|
|
177
|
+
if (!heritage)
|
|
178
|
+
return undefined;
|
|
179
|
+
for (const clause of heritage) {
|
|
180
|
+
for (const typeNode of clause.types) {
|
|
181
|
+
const baseType = checker.getTypeAtLocation(typeNode);
|
|
182
|
+
const member = checker.getPropertyOfType(baseType, name);
|
|
183
|
+
if (member)
|
|
184
|
+
return member;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return undefined;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Narrow away undefined entries.
|
|
191
|
+
* @param node - a possibly missing value
|
|
192
|
+
* @returns true when present
|
|
193
|
+
* @typeParam T - the value type
|
|
194
|
+
*/
|
|
195
|
+
function isNode(node) {
|
|
196
|
+
return node !== undefined;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Deduplicate declarations while preserving order.
|
|
200
|
+
* @param nodes - the declarations
|
|
201
|
+
* @returns the distinct declarations
|
|
202
|
+
*/
|
|
203
|
+
function unique(nodes) {
|
|
204
|
+
return nodes.filter((node, index) => nodes.indexOf(node) === index);
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=jsdoc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsdoc.js","sourceRoot":"","sources":["../../src/schema/jsdoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Checker, Project } from "typescript/unstable/sync";
|
|
2
|
+
import type { ClassDeclaration } from "typescript/unstable/ast";
|
|
3
|
+
import type { JSONSchema7 } from "./types.ts";
|
|
4
|
+
/** The three views of a model, as recorded in `webda.module.json`. */
|
|
5
|
+
export interface ModelSchemas {
|
|
6
|
+
/** What a client may send. */
|
|
7
|
+
Input: JSONSchema7;
|
|
8
|
+
/** What the API returns. */
|
|
9
|
+
Output: JSONSchema7;
|
|
10
|
+
/** What is persisted. */
|
|
11
|
+
Stored: JSONSchema7;
|
|
12
|
+
}
|
|
13
|
+
/** What is needed to convert a model. */
|
|
14
|
+
export interface ModelSchemaOptions {
|
|
15
|
+
/** Project the checker belongs to. */
|
|
16
|
+
project: Project;
|
|
17
|
+
/** The resident checker. */
|
|
18
|
+
checker: Checker;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generate a model's Input, Output and Stored schemas.
|
|
22
|
+
* @param declaration - the model class
|
|
23
|
+
* @param options - project and checker
|
|
24
|
+
* @returns the three schemas, each carrying its `$webda` provenance marker
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateModelSchemas(declaration: ClassDeclaration, options: ModelSchemaOptions): ModelSchemas;
|
|
27
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/schema/model.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAmB,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAQ,MAAM,yBAAyB,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,KAAK,EAAE,WAAW,CAAC;IACnB,4BAA4B;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,yBAAyB;IACzB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAgD7G"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model schemas — the `Schemas` field of a model entry in
|
|
3
|
+
* `webda.module.json`.
|
|
4
|
+
*
|
|
5
|
+
* Stage 7.2, and the part that needed the accessor read/write distinction.
|
|
6
|
+
* A model is described three times, from three different angles:
|
|
7
|
+
*
|
|
8
|
+
* | schema | mode | answers |
|
|
9
|
+
* | -------- | ---------- | ---------------------------------------- |
|
|
10
|
+
* | `Input` | `dto-in` | what a client may send |
|
|
11
|
+
* | `Output` | `dto-out` | what the API returns |
|
|
12
|
+
* | `Stored` | `output` | what is persisted |
|
|
13
|
+
*
|
|
14
|
+
* Each is taken from an explicit `fromDto` / `toDto` / `toJSON` when the
|
|
15
|
+
* model declares one, and derived from the class shape otherwise. Which of
|
|
16
|
+
* the two applied is recorded in `$webda` and is part of the committed
|
|
17
|
+
* artefact, so it has to be reproduced exactly — see
|
|
18
|
+
* `ModuleGenerator.generateModelSchemas`.
|
|
19
|
+
*/
|
|
20
|
+
import { SignatureKind } from "typescript/unstable/sync";
|
|
21
|
+
import { SchemaConverter } from "./converter.js";
|
|
22
|
+
/**
|
|
23
|
+
* Generate a model's Input, Output and Stored schemas.
|
|
24
|
+
* @param declaration - the model class
|
|
25
|
+
* @param options - project and checker
|
|
26
|
+
* @returns the three schemas, each carrying its `$webda` provenance marker
|
|
27
|
+
*/
|
|
28
|
+
export function generateModelSchemas(declaration, options) {
|
|
29
|
+
const { checker, project } = options;
|
|
30
|
+
const classType = checker.getTypeAtLocation(declaration);
|
|
31
|
+
/**
|
|
32
|
+
* The first call signature of a method on the model, if it declares one.
|
|
33
|
+
* @param name - the method name
|
|
34
|
+
* @returns the signature, when present
|
|
35
|
+
*/
|
|
36
|
+
const signatureOf = (name) => {
|
|
37
|
+
const symbol = checker.getApparentType(classType).getProperty(name) ?? classType.getProperty(name);
|
|
38
|
+
if (!symbol)
|
|
39
|
+
return undefined;
|
|
40
|
+
const methodType = checker.getTypeOfSymbolAtLocation(symbol, declaration);
|
|
41
|
+
const signatures = checker.getSignaturesOfType(methodType, SignatureKind.Call);
|
|
42
|
+
return signatures.length > 0 ? signatures[0] : undefined;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Convert either an explicit type or the class shape.
|
|
46
|
+
* @param mode - which view to build
|
|
47
|
+
* @param explicit - the declared type, when the model provides one
|
|
48
|
+
* @param marker - the `$webda` value for whichever applied
|
|
49
|
+
* @returns the schema
|
|
50
|
+
*/
|
|
51
|
+
const build = (mode, explicit, marker) => {
|
|
52
|
+
const converter = new SchemaConverter({ project, checker, mode });
|
|
53
|
+
const schema = explicit ? converter.fromType(explicit, declaration) : converter.fromNode(declaration);
|
|
54
|
+
schema.$webda = marker;
|
|
55
|
+
return schema;
|
|
56
|
+
};
|
|
57
|
+
const toDto = signatureOf("toDto");
|
|
58
|
+
const fromDto = signatureOf("fromDto");
|
|
59
|
+
const toJSON = signatureOf("toJSON");
|
|
60
|
+
return {
|
|
61
|
+
Output: build("dto-out", toDto && checker.getReturnTypeOfSignature(toDto), toDto ? "toDto$return" : "toDto$auto"),
|
|
62
|
+
Input: build("dto-in", fromDto && firstParameterType(fromDto, declaration, options), fromDto ? "fromDto$param" : "fromDto$auto"),
|
|
63
|
+
Stored: build("output", toJSON && checker.getReturnTypeOfSignature(toJSON), toJSON ? "toJSON$return" : "toJSON$auto")
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The declared type of a signature's first parameter.
|
|
68
|
+
*
|
|
69
|
+
* Read from the declaration rather than the signature where possible: a
|
|
70
|
+
* parameter's contextual type can be narrowed, and the Input schema wants
|
|
71
|
+
* what was written down.
|
|
72
|
+
* @param signature - the signature
|
|
73
|
+
* @param location - fallback resolution context
|
|
74
|
+
* @param options - project and checker
|
|
75
|
+
* @returns the parameter type
|
|
76
|
+
*/
|
|
77
|
+
function firstParameterType(signature, location, options) {
|
|
78
|
+
const parameter = signature.getParameters()[0];
|
|
79
|
+
const declaration = parameter?.valueDeclaration?.resolve(options.project) ?? parameter?.declarations[0]?.resolve(options.project);
|
|
80
|
+
if (declaration)
|
|
81
|
+
return options.checker.getTypeAtLocation(declaration);
|
|
82
|
+
return parameter
|
|
83
|
+
? options.checker.getTypeOfSymbolAtLocation(parameter, location)
|
|
84
|
+
: options.checker.getParameterType(signature, 0);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/schema/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { MethodDeclaration } from "typescript/unstable/ast";
|
|
2
|
+
import type { AnalysisContext } from "../plan.ts";
|
|
3
|
+
import type { JSONSchema7 } from "./types.ts";
|
|
4
|
+
/** What is needed to build the whole map. */
|
|
5
|
+
export interface TopLevelSchemaOptions {
|
|
6
|
+
/** Application root. */
|
|
7
|
+
appPath: string;
|
|
8
|
+
/** Source root; classes outside it belong to dependencies. */
|
|
9
|
+
rootDir: string;
|
|
10
|
+
/** Output root, for the discovery pass. */
|
|
11
|
+
outDir: string;
|
|
12
|
+
/** Namespace prefix applied to unqualified names. */
|
|
13
|
+
namespace?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Build every top-level schema for a project.
|
|
17
|
+
* @param ctx - analysis context, whose `sourceFiles` are the project's own
|
|
18
|
+
* @param options - roots and namespace
|
|
19
|
+
* @returns the `schemas` map
|
|
20
|
+
*/
|
|
21
|
+
export declare function generateTopLevelSchemas(ctx: AnalysisContext, options: TopLevelSchemaOptions): Record<string, JSONSchema7>;
|
|
22
|
+
/**
|
|
23
|
+
* The string-literal `name` option of a method's `@Action`/`@Operation`.
|
|
24
|
+
* @param method - the method declaration
|
|
25
|
+
* @returns the name, or undefined when the decorator sets none
|
|
26
|
+
*/
|
|
27
|
+
export declare function actionNameOption(method: MethodDeclaration): string | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Read a project's namespace the way `WebdaProject` does.
|
|
30
|
+
* @param appPath - application root
|
|
31
|
+
* @returns the namespace, when one applies
|
|
32
|
+
*/
|
|
33
|
+
export declare function namespaceOf(appPath: string): string | undefined;
|
|
34
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schema/project.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAoB,iBAAiB,EAAQ,MAAM,yBAAyB,CAAC;AAIzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,qBAAqB,GAC7B,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAyB7B;AA2LD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAqB9E;AAWD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB/D"}
|