@kernlang/python 3.5.6-canary.199.1.c927d232 → 3.5.6-canary.202.1.31706b95
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/adapters/django.d.ts +49 -0
- package/dist/adapters/django.js +151 -0
- package/dist/adapters/django.js.map +1 -0
- package/dist/adapters/fastapi.d.ts +43 -0
- package/dist/adapters/fastapi.js +139 -0
- package/dist/adapters/fastapi.js.map +1 -0
- package/dist/codegen-body-python.d.ts +51 -2
- package/dist/codegen-body-python.js +281 -26
- package/dist/codegen-body-python.js.map +1 -1
- package/dist/codegen-python.d.ts +1 -0
- package/dist/codegen-python.js +1 -1
- package/dist/codegen-python.js.map +1 -1
- package/dist/core/emit-imports.d.ts +11 -0
- package/dist/core/emit-imports.js +166 -0
- package/dist/core/emit-imports.js.map +1 -0
- package/dist/core/emit-models.d.ts +14 -0
- package/dist/core/emit-models.js +86 -0
- package/dist/core/emit-models.js.map +1 -0
- package/dist/core/expr/helpers.d.ts +5 -0
- package/dist/core/expr/helpers.js +62 -0
- package/dist/core/expr/helpers.js.map +1 -0
- package/dist/core/expr/index.d.ts +9 -0
- package/dist/core/expr/index.js +2046 -0
- package/dist/core/expr/index.js.map +1 -0
- package/dist/core/fence-diagnostics.d.ts +17 -0
- package/dist/core/fence-diagnostics.js +86 -0
- package/dist/core/fence-diagnostics.js.map +1 -0
- package/dist/core/handlers/index.d.ts +74 -0
- package/dist/core/handlers/index.js +462 -0
- package/dist/core/handlers/index.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/type-mapper.d.ts +4 -0
- package/dist/core/type-mapper.js +8 -0
- package/dist/core/type-mapper.js.map +1 -0
- package/dist/fastapi-portable.d.ts +7 -1
- package/dist/fastapi-portable.js +97 -74
- package/dist/fastapi-portable.js.map +1 -1
- package/dist/fastapi-response.d.ts +0 -4
- package/dist/fastapi-response.js +1 -1868
- package/dist/fastapi-response.js.map +1 -1
- package/dist/fastapi-route.js +24 -3
- package/dist/fastapi-route.js.map +1 -1
- package/dist/fastapi-utils.d.ts +2 -1
- package/dist/fastapi-utils.js +2 -58
- package/dist/fastapi-utils.js.map +1 -1
- package/dist/generators/data.d.ts +3 -1
- package/dist/generators/data.js +28 -1
- package/dist/generators/data.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/ir-semantics/python-leg.js +5 -0
- package/dist/ir-semantics/python-leg.js.map +1 -1
- package/dist/targets/python.d.ts +32 -0
- package/dist/targets/python.js +176 -0
- package/dist/targets/python.js.map +1 -0
- package/dist/transpiler-fastapi.js +23 -66
- package/dist/transpiler-fastapi.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-agnostic Python handler emission — revised contract (post nero red-team).
|
|
3
|
+
*
|
|
4
|
+
* The `python` target (targets/python.ts) emits a list of `PurePythonHandler`
|
|
5
|
+
* values. Framework adapters (Phase 3: fastapi, django, asgi) take that list
|
|
6
|
+
* and wrap each in their own routing/validation skin.
|
|
7
|
+
*
|
|
8
|
+
* KEY: the boundary is EXPLICIT. A handler consumes a `PureRequest` (a plain
|
|
9
|
+
* dict whose shape is defined HERE, not borrowed from FastAPI or Django) and
|
|
10
|
+
* returns a `PureResponse` (status, body, optional headers). The adapter is
|
|
11
|
+
* the ONLY place that knows about its framework's native request object —
|
|
12
|
+
* the pure handler never sees `fastapi.Request`, `django.http.HttpRequest`,
|
|
13
|
+
* or any framework type.
|
|
14
|
+
*
|
|
15
|
+
* Why explicit instead of `request: dict`? nero pointed out that "request:
|
|
16
|
+
* dict" silently leaks FastAPI's auto-parsed shape into the handler (FastAPI
|
|
17
|
+
* gives you parsed JSON in one place, Django gives you `.POST`/`.GET`/raw
|
|
18
|
+
* body in another). By specifying PureRequest's shape here, the handler is
|
|
19
|
+
* portable BY CONSTRUCTION and the Phase 2 smoke proves it: it hand-builds
|
|
20
|
+
* a PureRequest (neither FastAPI- nor Django-shaped) and the handler still
|
|
21
|
+
* works.
|
|
22
|
+
*
|
|
23
|
+
* EXPLICIT REQUEST/RESPONSE SHAPE (the contract every adapter must marshal to/from):
|
|
24
|
+
*
|
|
25
|
+
* PureRequest:
|
|
26
|
+
* method: str # 'GET' | 'POST' | ...
|
|
27
|
+
* path_params: dict[str, str|int] # already-coerced path params
|
|
28
|
+
* query: dict[str, str|list] # already-parsed (single or list per key)
|
|
29
|
+
* body: Any (typically dict) # JSON-decoded body if content-type is JSON
|
|
30
|
+
* headers: dict[str, str] # lowercased keys
|
|
31
|
+
* user: Any (optional) # auth-supplied user object, opaque to handler
|
|
32
|
+
*
|
|
33
|
+
* PureResponse:
|
|
34
|
+
* tuple[int, Any] # (status, body) — body is JSON-serialisable
|
|
35
|
+
* tuple[int, Any, dict[str, str]] # (status, body, extra_headers)
|
|
36
|
+
*
|
|
37
|
+
* Guard rejections return `(status, {"detail": "<msg>"})` — same unified
|
|
38
|
+
* error shape used by the FastAPI and Go targets (#3 error-semantics).
|
|
39
|
+
*
|
|
40
|
+
* Phase 2 emitter detail: bodies wrap incoming `request`/`body` in a
|
|
41
|
+
* `__DotDict` so the shared `rewriteExpr` lowering (which assumes JS
|
|
42
|
+
* attribute access like `body.value`) is satisfied without each handler
|
|
43
|
+
* needing to rewrite `body.x` → `body["x"]`. The wrapping is internal —
|
|
44
|
+
* adapters and external callers always see a plain `dict`.
|
|
45
|
+
*/
|
|
46
|
+
import { getChildren, getFirstChild, getProps } from '@kernlang/core';
|
|
47
|
+
import { isUnsupportedJsHandlerBody, unsupportedRawHandlerBody } from '../../fastapi-raw-handler.js';
|
|
48
|
+
import { derivePathParams, escapePyStr, indentHandler, slugify } from '../../fastapi-utils.js';
|
|
49
|
+
import { toSnakeCase } from '../../type-map.js';
|
|
50
|
+
import { rewriteExpr } from '../expr/index.js';
|
|
51
|
+
function indentHoistedDef(def, indent) {
|
|
52
|
+
return def.split('\n').map((line) => `${indent}${line}`);
|
|
53
|
+
}
|
|
54
|
+
function findFieldsForSchema(root, schemaName) {
|
|
55
|
+
const fields = new Set();
|
|
56
|
+
function search(node) {
|
|
57
|
+
if ((node.type === 'interface' || node.type === 'model' || node.type === 'type') &&
|
|
58
|
+
getProps(node).name === schemaName) {
|
|
59
|
+
const fieldNodes = getChildren(node, 'field');
|
|
60
|
+
for (const f of fieldNodes) {
|
|
61
|
+
const name = getProps(f).name;
|
|
62
|
+
if (name)
|
|
63
|
+
fields.add(String(name));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
for (const child of node.children || []) {
|
|
67
|
+
search(child);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
search(root);
|
|
71
|
+
return fields;
|
|
72
|
+
}
|
|
73
|
+
// Extract the code from a prop that may arrive as a curly-expression
|
|
74
|
+
function extractExprCode(val) {
|
|
75
|
+
if (val && typeof val === 'object' && '__expr' in val && typeof val.code === 'string') {
|
|
76
|
+
return val.code;
|
|
77
|
+
}
|
|
78
|
+
if (typeof val === 'string')
|
|
79
|
+
return val;
|
|
80
|
+
if (typeof val === 'number' || typeof val === 'boolean')
|
|
81
|
+
return String(val);
|
|
82
|
+
return '';
|
|
83
|
+
}
|
|
84
|
+
function extractCodeOrString(val) {
|
|
85
|
+
return extractExprCode(val);
|
|
86
|
+
}
|
|
87
|
+
function mapJsDefaultToPython(def) {
|
|
88
|
+
if (def === undefined || def === null)
|
|
89
|
+
return 'None';
|
|
90
|
+
const s = String(def).trim();
|
|
91
|
+
if (s === 'true')
|
|
92
|
+
return 'True';
|
|
93
|
+
if (s === 'false')
|
|
94
|
+
return 'False';
|
|
95
|
+
if (s === 'null' || s === 'undefined')
|
|
96
|
+
return 'None';
|
|
97
|
+
return s;
|
|
98
|
+
}
|
|
99
|
+
function generatePurePythonStmt(child, indent, pathParams, bodyFields, authUser, imports, hoistCtx) {
|
|
100
|
+
const lines = [];
|
|
101
|
+
const p = getProps(child);
|
|
102
|
+
function rewriteExprPure(expr, currentIndent) {
|
|
103
|
+
const defs = [];
|
|
104
|
+
const rewritten = rewriteExpr(expr, pathParams, bodyFields, authUser, imports, defs, hoistCtx.seq);
|
|
105
|
+
return { expr: rewritten, hoists: defs.flatMap((def) => indentHoistedDef(def, currentIndent)) };
|
|
106
|
+
}
|
|
107
|
+
switch (child.type) {
|
|
108
|
+
case 'derive': {
|
|
109
|
+
const name = String(p.name || '');
|
|
110
|
+
const exprCode = extractExprCode(p.expr);
|
|
111
|
+
if (name && exprCode) {
|
|
112
|
+
const rewritten = rewriteExprPure(exprCode, indent);
|
|
113
|
+
lines.push(...rewritten.hoists, `${indent}${toSnakeCase(name)} = ${rewritten.expr}`);
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case 'assign': {
|
|
118
|
+
const target = extractExprCode(p.target);
|
|
119
|
+
if (!target)
|
|
120
|
+
break;
|
|
121
|
+
const op = p.op === undefined || p.op === '' ? '=' : String(p.op);
|
|
122
|
+
const lhs = rewriteExprPure(target, indent);
|
|
123
|
+
lines.push(...lhs.hoists);
|
|
124
|
+
if (op === '++' || op === '--') {
|
|
125
|
+
lines.push(`${indent}${lhs.expr} ${op === '++' ? '+=' : '-='} 1`);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const valueCode = extractExprCode(p.value);
|
|
129
|
+
if (!valueCode) {
|
|
130
|
+
throw new Error('portable route `assign` requires `value=` for a non-postfix operator.');
|
|
131
|
+
}
|
|
132
|
+
const rhs = rewriteExprPure(valueCode, indent);
|
|
133
|
+
lines.push(...rhs.hoists, `${indent}${lhs.expr} ${op} ${rhs.expr}`);
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case 'do': {
|
|
138
|
+
const value = extractExprCode(p.value);
|
|
139
|
+
if (value) {
|
|
140
|
+
const rewritten = rewriteExprPure(value, indent);
|
|
141
|
+
lines.push(...rewritten.hoists, `${indent}${rewritten.expr}`);
|
|
142
|
+
}
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
case 'guard': {
|
|
146
|
+
const name = String(p.name || '');
|
|
147
|
+
const exprCode = extractExprCode(p.expr);
|
|
148
|
+
const elseStatus = p.else ? parseInt(String(p.else), 10) : 404;
|
|
149
|
+
const elseMessage = typeof p.message === 'string' ? p.message : name ? `${name} guard failed` : 'Guard failed';
|
|
150
|
+
if (exprCode) {
|
|
151
|
+
const rewritten = rewriteExprPure(exprCode, indent);
|
|
152
|
+
lines.push(...rewritten.hoists, `${indent}if not (${rewritten.expr}):`);
|
|
153
|
+
lines.push(`${indent} return ${elseStatus}, {"detail": "${escapePyStr(elseMessage)}"}`);
|
|
154
|
+
}
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
case 'handler': {
|
|
158
|
+
const code = String(p.code || '');
|
|
159
|
+
if (code) {
|
|
160
|
+
if (isUnsupportedJsHandlerBody(code)) {
|
|
161
|
+
lines.push(...unsupportedRawHandlerBody(indent));
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
lines.push(...indentHandler(code, indent));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
case 'respond': {
|
|
170
|
+
const status = typeof p.status === 'number' ? p.status : 200;
|
|
171
|
+
const json = p.json ? extractExprCode(p.json) : undefined;
|
|
172
|
+
const text = p.text ? extractExprCode(p.text) : undefined;
|
|
173
|
+
const redirect = p.redirect ? extractExprCode(p.redirect) : undefined;
|
|
174
|
+
const error = p.error ? extractExprCode(p.error) : undefined;
|
|
175
|
+
if (redirect) {
|
|
176
|
+
const rewritten = rewriteExprPure(redirect, indent);
|
|
177
|
+
lines.push(...rewritten.hoists, `${indent}return ${status || 302}, None, {"Location": ${rewritten.expr}}`);
|
|
178
|
+
}
|
|
179
|
+
else if (error) {
|
|
180
|
+
const rewritten = rewriteExprPure(error, indent);
|
|
181
|
+
lines.push(...rewritten.hoists, `${indent}return ${status || 500}, {"detail": ${rewritten.expr}}`);
|
|
182
|
+
}
|
|
183
|
+
else if (json) {
|
|
184
|
+
const rewritten = rewriteExprPure(json, indent);
|
|
185
|
+
lines.push(...rewritten.hoists, `${indent}return ${status}, ${rewritten.expr}`);
|
|
186
|
+
}
|
|
187
|
+
else if (text) {
|
|
188
|
+
const rewritten = rewriteExprPure(text, indent);
|
|
189
|
+
lines.push(...rewritten.hoists, `${indent}return ${status}, ${rewritten.expr}`);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
lines.push(`${indent}return ${status}, None`);
|
|
193
|
+
}
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
case 'branch': {
|
|
197
|
+
const onSource = extractCodeOrString(p.on);
|
|
198
|
+
const on = onSource.trim() === '' || onSource.trim() === 'null' || onSource.trim() === 'undefined'
|
|
199
|
+
? { expr: 'None', hoists: [] }
|
|
200
|
+
: rewriteExprPure(onSource.trim(), indent);
|
|
201
|
+
lines.push(...on.hoists);
|
|
202
|
+
const paths = getChildren(child, 'path');
|
|
203
|
+
for (let i = 0; i < paths.length; i++) {
|
|
204
|
+
const pathNode = paths[i];
|
|
205
|
+
const pp = getProps(pathNode);
|
|
206
|
+
const value = String(pp.value || '');
|
|
207
|
+
const keyword = i === 0 ? 'if' : 'elif';
|
|
208
|
+
lines.push(`${indent}${keyword} ${on.expr} == "${escapePyStr(value)}":`);
|
|
209
|
+
const bodyStart = lines.length;
|
|
210
|
+
for (const pathChild of pathNode.children || []) {
|
|
211
|
+
lines.push(...generatePurePythonStmt(pathChild, `${indent} `, pathParams, bodyFields, authUser, imports, hoistCtx));
|
|
212
|
+
}
|
|
213
|
+
if (lines.length === bodyStart)
|
|
214
|
+
lines.push(`${indent} pass`);
|
|
215
|
+
}
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
case 'let': {
|
|
219
|
+
const name = String(p.name || '');
|
|
220
|
+
if (!name)
|
|
221
|
+
break;
|
|
222
|
+
const valueCode = extractExprCode(p.value) || extractExprCode(p.expr);
|
|
223
|
+
if (valueCode) {
|
|
224
|
+
const rewritten = rewriteExprPure(valueCode, indent);
|
|
225
|
+
lines.push(...rewritten.hoists, `${indent}${name} = ${rewritten.expr}`);
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
case 'each': {
|
|
230
|
+
const name = String(p.name || 'item');
|
|
231
|
+
const collection = rewriteExprPure(extractExprCode(p.in) || String(p.in || ''), indent);
|
|
232
|
+
lines.push(...collection.hoists);
|
|
233
|
+
const index = p.index ? String(p.index) : undefined;
|
|
234
|
+
if (index) {
|
|
235
|
+
lines.push(`${indent}for ${index}, ${name} in enumerate(${collection.expr}):`);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
lines.push(`${indent}for ${name} in ${collection.expr}:`);
|
|
239
|
+
}
|
|
240
|
+
const bodyStart = lines.length;
|
|
241
|
+
for (const eachChild of child.children || []) {
|
|
242
|
+
lines.push(...generatePurePythonStmt(eachChild, `${indent} `, pathParams, bodyFields, authUser, imports, hoistCtx));
|
|
243
|
+
}
|
|
244
|
+
if (lines.length === bodyStart)
|
|
245
|
+
lines.push(`${indent} pass`);
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
case 'collect': {
|
|
249
|
+
const rawName = toSnakeCase(String(p.name || ''));
|
|
250
|
+
const PY_BUILTINS = new Set([
|
|
251
|
+
'sorted',
|
|
252
|
+
'list',
|
|
253
|
+
'dict',
|
|
254
|
+
'set',
|
|
255
|
+
'map',
|
|
256
|
+
'filter',
|
|
257
|
+
'type',
|
|
258
|
+
'id',
|
|
259
|
+
'input',
|
|
260
|
+
'print',
|
|
261
|
+
'range',
|
|
262
|
+
'len',
|
|
263
|
+
'min',
|
|
264
|
+
'max',
|
|
265
|
+
'sum',
|
|
266
|
+
'any',
|
|
267
|
+
'all',
|
|
268
|
+
]);
|
|
269
|
+
const collectName = PY_BUILTINS.has(rawName) ? `${rawName}_result` : rawName;
|
|
270
|
+
const from = rewriteExprPure(extractCodeOrString(p.from).trim(), indent);
|
|
271
|
+
lines.push(...from.hoists);
|
|
272
|
+
const where = p.where ? extractExprCode(p.where) : undefined;
|
|
273
|
+
const limit = p.limit !== undefined && p.limit !== null && p.limit !== ''
|
|
274
|
+
? rewriteExprPure(extractCodeOrString(p.limit).trim(), indent)
|
|
275
|
+
: undefined;
|
|
276
|
+
const orderSourceTrimmed = extractCodeOrString(p.order).trim();
|
|
277
|
+
const order = orderSourceTrimmed === '' || orderSourceTrimmed === 'null' || orderSourceTrimmed === 'undefined'
|
|
278
|
+
? undefined
|
|
279
|
+
: rewriteExprPure(orderSourceTrimmed, indent);
|
|
280
|
+
if (limit)
|
|
281
|
+
lines.push(...limit.hoists);
|
|
282
|
+
if (order)
|
|
283
|
+
lines.push(...order.hoists);
|
|
284
|
+
if (where && !order && !limit) {
|
|
285
|
+
const whereExpr = rewriteExprPure(where, indent);
|
|
286
|
+
lines.push(...whereExpr.hoists);
|
|
287
|
+
lines.push(`${indent}${collectName} = [item for item in ${from.expr} if ${whereExpr.expr}]`);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
lines.push(`${indent}${collectName} = ${from.expr}`);
|
|
291
|
+
if (where) {
|
|
292
|
+
const whereExpr = rewriteExprPure(where, indent);
|
|
293
|
+
lines.push(...whereExpr.hoists, `${indent}${collectName} = [item for item in ${collectName} if ${whereExpr.expr}]`);
|
|
294
|
+
}
|
|
295
|
+
if (order) {
|
|
296
|
+
imports.add('import functools');
|
|
297
|
+
lines.push(`${indent}${collectName} = sorted(${collectName}, key=functools.cmp_to_key(lambda a, b: ${order.expr}))`);
|
|
298
|
+
}
|
|
299
|
+
if (limit)
|
|
300
|
+
lines.push(`${indent}${collectName} = ${collectName}[:${limit.expr}]`);
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
case 'effect': {
|
|
305
|
+
const effectName = toSnakeCase(String(p.name || 'effect'));
|
|
306
|
+
const triggerNode = getFirstChild(child, 'trigger');
|
|
307
|
+
const recoverNode = getFirstChild(child, 'recover');
|
|
308
|
+
const triggerProps = triggerNode ? getProps(triggerNode) : {};
|
|
309
|
+
const exprCode = extractExprCode(triggerProps.expr);
|
|
310
|
+
const queryCode = extractCodeOrString(triggerProps.query);
|
|
311
|
+
const urlCode = extractCodeOrString(triggerProps.url);
|
|
312
|
+
const callCode = extractCodeOrString(triggerProps.call);
|
|
313
|
+
let triggerExpr = '';
|
|
314
|
+
if (exprCode) {
|
|
315
|
+
triggerExpr = exprCode;
|
|
316
|
+
}
|
|
317
|
+
else if (queryCode) {
|
|
318
|
+
triggerExpr = queryCode;
|
|
319
|
+
}
|
|
320
|
+
else if (triggerProps.url !== undefined && triggerProps.url !== null) {
|
|
321
|
+
triggerExpr = `"${escapePyStr(urlCode)}"`;
|
|
322
|
+
}
|
|
323
|
+
else if (callCode) {
|
|
324
|
+
triggerExpr = callCode;
|
|
325
|
+
}
|
|
326
|
+
const retryCount = recoverNode ? parseInt(String(getProps(recoverNode).retry || '0'), 10) : 0;
|
|
327
|
+
const pyFallback = rewriteExprPure(extractCodeOrString(recoverNode ? getProps(recoverNode).fallback : undefined).trim() || 'None', indent);
|
|
328
|
+
const trigger = triggerExpr ? rewriteExprPure(triggerExpr, indent) : { expr: 'None', hoists: [] };
|
|
329
|
+
lines.push(...pyFallback.hoists, ...trigger.hoists);
|
|
330
|
+
if (retryCount > 0) {
|
|
331
|
+
lines.push(`${indent}${effectName} = ${pyFallback.expr}`);
|
|
332
|
+
lines.push(`${indent}for _attempt in range(${retryCount}):`);
|
|
333
|
+
lines.push(`${indent} try:`);
|
|
334
|
+
lines.push(`${indent} ${effectName} = ${trigger.expr}`);
|
|
335
|
+
lines.push(`${indent} break`);
|
|
336
|
+
lines.push(`${indent} except Exception:`);
|
|
337
|
+
lines.push(`${indent} if _attempt == ${retryCount - 1}:`);
|
|
338
|
+
lines.push(`${indent} ${effectName} = ${pyFallback.expr}`);
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
lines.push(`${indent}try:`);
|
|
342
|
+
lines.push(`${indent} ${effectName} = ${trigger.expr}`);
|
|
343
|
+
lines.push(`${indent}except Exception:`);
|
|
344
|
+
lines.push(`${indent} ${effectName} = ${pyFallback.expr}`);
|
|
345
|
+
}
|
|
346
|
+
break;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
return lines;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Phase 2 implements: scan the IR's server children, lower each route
|
|
353
|
+
* to a `PurePythonHandler`.
|
|
354
|
+
*/
|
|
355
|
+
export function emitPureHandlers(serverNode, imports, root) {
|
|
356
|
+
const routeNodes = getChildren(serverNode, 'route');
|
|
357
|
+
const handlers = [];
|
|
358
|
+
const rootNode = root || serverNode;
|
|
359
|
+
for (const routeNode of routeNodes) {
|
|
360
|
+
const props = getProps(routeNode);
|
|
361
|
+
const method = String(props.method || 'get').toUpperCase();
|
|
362
|
+
const path = String(props.path || '/');
|
|
363
|
+
const fnName = `handle_${slugify(`${method}_${path.replace(/:([a-zA-Z0-9_]+)/g, 'by_$1')}`)}`;
|
|
364
|
+
const pathParams = derivePathParams(path);
|
|
365
|
+
const pathParamTypes = {};
|
|
366
|
+
for (const p of pathParams) {
|
|
367
|
+
pathParamTypes[p] = 'str';
|
|
368
|
+
}
|
|
369
|
+
const paramsNodes = getChildren(routeNode, 'params');
|
|
370
|
+
const queryParams = [];
|
|
371
|
+
for (const paramNode of paramsNodes) {
|
|
372
|
+
const paramItems = getProps(paramNode).items;
|
|
373
|
+
if (paramItems)
|
|
374
|
+
queryParams.push(...paramItems);
|
|
375
|
+
}
|
|
376
|
+
const queryParamTypes = {};
|
|
377
|
+
for (const qp of queryParams) {
|
|
378
|
+
let pyType = 'str';
|
|
379
|
+
if (qp.type === 'number')
|
|
380
|
+
pyType = 'float';
|
|
381
|
+
else if (qp.type === 'integer')
|
|
382
|
+
pyType = 'int';
|
|
383
|
+
else if (qp.type === 'boolean')
|
|
384
|
+
pyType = 'bool';
|
|
385
|
+
queryParamTypes[qp.name] = pyType;
|
|
386
|
+
}
|
|
387
|
+
const validateNode = getFirstChild(routeNode, 'validate');
|
|
388
|
+
const validateSchema = validateNode ? String(getProps(validateNode).schema || '') : undefined;
|
|
389
|
+
const validatesSchema = validateSchema || undefined;
|
|
390
|
+
const bodyFields = new Set();
|
|
391
|
+
if (validatesSchema) {
|
|
392
|
+
const resolvedFields = findFieldsForSchema(rootNode, validatesSchema);
|
|
393
|
+
for (const f of resolvedFields)
|
|
394
|
+
bodyFields.add(f);
|
|
395
|
+
}
|
|
396
|
+
const authNode = getFirstChild(routeNode, 'auth');
|
|
397
|
+
const authUser = !!authNode;
|
|
398
|
+
const handlerImports = new Set();
|
|
399
|
+
const hoistCtx = { seq: { n: 0 } };
|
|
400
|
+
const bodyLines = [];
|
|
401
|
+
bodyLines.push(' request = __DotDict(request)');
|
|
402
|
+
bodyLines.push(' body = __DotDict(request.get("body") or {})');
|
|
403
|
+
if (pathParams.length > 0) {
|
|
404
|
+
bodyLines.push(' # Path parameters');
|
|
405
|
+
for (const p of pathParams) {
|
|
406
|
+
bodyLines.push(` ${p} = request.path_params.get("${p}")`);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
if (queryParams.length > 0) {
|
|
410
|
+
bodyLines.push(' # Query parameters');
|
|
411
|
+
for (const qp of queryParams) {
|
|
412
|
+
const snakeName = toSnakeCase(qp.name);
|
|
413
|
+
bodyLines.push(` ${snakeName} = request.query.get("${qp.name}")`);
|
|
414
|
+
if (qp.default !== undefined) {
|
|
415
|
+
bodyLines.push(` if ${snakeName} is None:`);
|
|
416
|
+
bodyLines.push(` ${snakeName} = ${mapJsDefaultToPython(qp.default)}`);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
if (authUser) {
|
|
421
|
+
bodyLines.push(' # Auth user');
|
|
422
|
+
bodyLines.push(' user = request.get("user")');
|
|
423
|
+
}
|
|
424
|
+
const children = routeNode.children || [];
|
|
425
|
+
const PORTABLE_TYPES = new Set([
|
|
426
|
+
'derive',
|
|
427
|
+
'guard',
|
|
428
|
+
'handler',
|
|
429
|
+
'respond',
|
|
430
|
+
'branch',
|
|
431
|
+
'each',
|
|
432
|
+
'collect',
|
|
433
|
+
'effect',
|
|
434
|
+
'assign',
|
|
435
|
+
'do',
|
|
436
|
+
]);
|
|
437
|
+
for (const child of children) {
|
|
438
|
+
if (PORTABLE_TYPES.has(child.type)) {
|
|
439
|
+
const stmtLines = generatePurePythonStmt(child, ' ', pathParams, bodyFields, authUser, handlerImports, hoistCtx);
|
|
440
|
+
bodyLines.push(...stmtLines);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
for (const imp of handlerImports) {
|
|
444
|
+
imports.add(imp);
|
|
445
|
+
}
|
|
446
|
+
const signature = `def ${fnName}(request: dict) -> tuple:`;
|
|
447
|
+
handlers.push({
|
|
448
|
+
method,
|
|
449
|
+
path,
|
|
450
|
+
fnName,
|
|
451
|
+
signature,
|
|
452
|
+
bodyLines,
|
|
453
|
+
imports: handlerImports,
|
|
454
|
+
pathParamTypes,
|
|
455
|
+
queryParamTypes,
|
|
456
|
+
validatesSchema,
|
|
457
|
+
responseHeaders: {},
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
return handlers;
|
|
461
|
+
}
|
|
462
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/handlers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-mapper.js","sourceRoot":"","sources":["../../src/core/type-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -29,7 +29,12 @@ export interface FastAPIStreamCtx {
|
|
|
29
29
|
n: number;
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
interface FastAPIClosureHoistCtx {
|
|
33
|
+
seq: {
|
|
34
|
+
n: number;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export declare function generatePortableChildFastAPI(child: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean, streamCtx?: FastAPIStreamCtx, closureHoistCtx?: FastAPIClosureHoistCtx): string[];
|
|
33
38
|
export declare function generatePortableHandlerFastAPI(routeNode: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean): string[];
|
|
34
39
|
export declare function hasPortableStreamBodyFastAPI(streamNode: IRNode): boolean;
|
|
35
40
|
/**
|
|
@@ -40,3 +45,4 @@ export declare function hasPortableStreamBodyFastAPI(streamNode: IRNode): boolea
|
|
|
40
45
|
* in a `StreamingResponse`.
|
|
41
46
|
*/
|
|
42
47
|
export declare function generatePortableStreamFastAPI(streamNode: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean): string[];
|
|
48
|
+
export {};
|