@ir-kit/openapi-kotlin 0.1.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.
- package/LICENSE.md +21 -0
- package/README.md +259 -0
- package/dist/generate.d.ts +41 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +64 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/constants.d.ts +6 -0
- package/dist/ir/constants.d.ts.map +1 -0
- package/dist/ir/constants.js +6 -0
- package/dist/ir/constants.js.map +1 -0
- package/dist/ir/identifiers.d.ts +23 -0
- package/dist/ir/identifiers.d.ts.map +1 -0
- package/dist/ir/identifiers.js +71 -0
- package/dist/ir/identifiers.js.map +1 -0
- package/dist/ir/impl/body.d.ts +30 -0
- package/dist/ir/impl/body.d.ts.map +1 -0
- package/dist/ir/impl/body.js +116 -0
- package/dist/ir/impl/body.js.map +1 -0
- package/dist/ir/impl/decode.d.ts +14 -0
- package/dist/ir/impl/decode.d.ts.map +1 -0
- package/dist/ir/impl/decode.js +110 -0
- package/dist/ir/impl/decode.js.map +1 -0
- package/dist/ir/impl/headers.d.ts +8 -0
- package/dist/ir/impl/headers.d.ts.map +1 -0
- package/dist/ir/impl/headers.js +22 -0
- package/dist/ir/impl/headers.js.map +1 -0
- package/dist/ir/impl/index.d.ts +23 -0
- package/dist/ir/impl/index.d.ts.map +1 -0
- package/dist/ir/impl/index.js +141 -0
- package/dist/ir/impl/index.js.map +1 -0
- package/dist/ir/impl/request.d.ts +14 -0
- package/dist/ir/impl/request.d.ts.map +1 -0
- package/dist/ir/impl/request.js +25 -0
- package/dist/ir/impl/request.js.map +1 -0
- package/dist/ir/impl/serializer.d.ts +20 -0
- package/dist/ir/impl/serializer.d.ts.map +1 -0
- package/dist/ir/impl/serializer.js +62 -0
- package/dist/ir/impl/serializer.js.map +1 -0
- package/dist/ir/impl/url.d.ts +16 -0
- package/dist/ir/impl/url.d.ts.map +1 -0
- package/dist/ir/impl/url.js +77 -0
- package/dist/ir/impl/url.js.map +1 -0
- package/dist/ir/index.d.ts +4 -0
- package/dist/ir/index.d.ts.map +1 -0
- package/dist/ir/index.js +3 -0
- package/dist/ir/index.js.map +1 -0
- package/dist/ir/operation/body.d.ts +18 -0
- package/dist/ir/operation/body.d.ts.map +1 -0
- package/dist/ir/operation/body.js +51 -0
- package/dist/ir/operation/body.js.map +1 -0
- package/dist/ir/operation/index.d.ts +7 -0
- package/dist/ir/operation/index.d.ts.map +1 -0
- package/dist/ir/operation/index.js +5 -0
- package/dist/ir/operation/index.js.map +1 -0
- package/dist/ir/operation/params.d.ts +16 -0
- package/dist/ir/operation/params.d.ts.map +1 -0
- package/dist/ir/operation/params.js +28 -0
- package/dist/ir/operation/params.js.map +1 -0
- package/dist/ir/operation/response.d.ts +26 -0
- package/dist/ir/operation/response.d.ts.map +1 -0
- package/dist/ir/operation/response.js +58 -0
- package/dist/ir/operation/response.js.map +1 -0
- package/dist/ir/operation/signature.d.ts +32 -0
- package/dist/ir/operation/signature.d.ts.map +1 -0
- package/dist/ir/operation/signature.js +53 -0
- package/dist/ir/operation/signature.js.map +1 -0
- package/dist/ir/operations.d.ts +43 -0
- package/dist/ir/operations.d.ts.map +1 -0
- package/dist/ir/operations.js +124 -0
- package/dist/ir/operations.js.map +1 -0
- package/dist/ir/runtime/index.d.ts +3 -0
- package/dist/ir/runtime/index.d.ts.map +1 -0
- package/dist/ir/runtime/index.js +2 -0
- package/dist/ir/runtime/index.js.map +1 -0
- package/dist/ir/runtime/templates.d.ts +31 -0
- package/dist/ir/runtime/templates.d.ts.map +1 -0
- package/dist/ir/runtime/templates.js +431 -0
- package/dist/ir/runtime/templates.js.map +1 -0
- package/dist/ir/schema.d.ts +11 -0
- package/dist/ir/schema.d.ts.map +1 -0
- package/dist/ir/schema.js +51 -0
- package/dist/ir/schema.js.map +1 -0
- package/dist/ir/type/context.d.ts +4 -0
- package/dist/ir/type/context.d.ts.map +1 -0
- package/dist/ir/type/context.js +2 -0
- package/dist/ir/type/context.js.map +1 -0
- package/dist/ir/type/index.d.ts +27 -0
- package/dist/ir/type/index.d.ts.map +1 -0
- package/dist/ir/type/index.js +35 -0
- package/dist/ir/type/index.js.map +1 -0
- package/dist/ir/type/primitive.d.ts +9 -0
- package/dist/ir/type/primitive.d.ts.map +1 -0
- package/dist/ir/type/primitive.js +50 -0
- package/dist/ir/type/primitive.js.map +1 -0
- package/dist/ir/type/property-naming.d.ts +26 -0
- package/dist/ir/type/property-naming.d.ts.map +1 -0
- package/dist/ir/type/property-naming.js +27 -0
- package/dist/ir/type/property-naming.js.map +1 -0
- package/dist/ir/type-ops.d.ts +13 -0
- package/dist/ir/type-ops.d.ts.map +1 -0
- package/dist/ir/type-ops.js +80 -0
- package/dist/ir/type-ops.js.map +1 -0
- package/dist/kt-compiler/decl/class.d.ts +6 -0
- package/dist/kt-compiler/decl/class.d.ts.map +1 -0
- package/dist/kt-compiler/decl/class.js +38 -0
- package/dist/kt-compiler/decl/class.js.map +1 -0
- package/dist/kt-compiler/decl/dataClass.d.ts +3 -0
- package/dist/kt-compiler/decl/dataClass.d.ts.map +1 -0
- package/dist/kt-compiler/decl/dataClass.js +18 -0
- package/dist/kt-compiler/decl/dataClass.js.map +1 -0
- package/dist/kt-compiler/decl/enum.d.ts +3 -0
- package/dist/kt-compiler/decl/enum.d.ts.map +1 -0
- package/dist/kt-compiler/decl/enum.js +32 -0
- package/dist/kt-compiler/decl/enum.js.map +1 -0
- package/dist/kt-compiler/decl/fun.d.ts +11 -0
- package/dist/kt-compiler/decl/fun.d.ts.map +1 -0
- package/dist/kt-compiler/decl/fun.js +69 -0
- package/dist/kt-compiler/decl/fun.js.map +1 -0
- package/dist/kt-compiler/decl/index.d.ts +13 -0
- package/dist/kt-compiler/decl/index.d.ts.map +1 -0
- package/dist/kt-compiler/decl/index.js +39 -0
- package/dist/kt-compiler/decl/index.js.map +1 -0
- package/dist/kt-compiler/decl/interface.d.ts +3 -0
- package/dist/kt-compiler/decl/interface.d.ts.map +1 -0
- package/dist/kt-compiler/decl/interface.js +15 -0
- package/dist/kt-compiler/decl/interface.js.map +1 -0
- package/dist/kt-compiler/decl/object.d.ts +3 -0
- package/dist/kt-compiler/decl/object.d.ts.map +1 -0
- package/dist/kt-compiler/decl/object.js +19 -0
- package/dist/kt-compiler/decl/object.js.map +1 -0
- package/dist/kt-compiler/decl/prop.d.ts +20 -0
- package/dist/kt-compiler/decl/prop.d.ts.map +1 -0
- package/dist/kt-compiler/decl/prop.js +42 -0
- package/dist/kt-compiler/decl/prop.js.map +1 -0
- package/dist/kt-compiler/decl/sealedClass.d.ts +3 -0
- package/dist/kt-compiler/decl/sealedClass.d.ts.map +1 -0
- package/dist/kt-compiler/decl/sealedClass.js +32 -0
- package/dist/kt-compiler/decl/sealedClass.js.map +1 -0
- package/dist/kt-compiler/decl/topLevel.d.ts +3 -0
- package/dist/kt-compiler/decl/topLevel.d.ts.map +1 -0
- package/dist/kt-compiler/decl/topLevel.js +5 -0
- package/dist/kt-compiler/decl/topLevel.js.map +1 -0
- package/dist/kt-compiler/decl/typeAlias.d.ts +3 -0
- package/dist/kt-compiler/decl/typeAlias.d.ts.map +1 -0
- package/dist/kt-compiler/decl/typeAlias.js +6 -0
- package/dist/kt-compiler/decl/typeAlias.js.map +1 -0
- package/dist/kt-compiler/expr.d.ts +4 -0
- package/dist/kt-compiler/expr.d.ts.map +1 -0
- package/dist/kt-compiler/expr.js +123 -0
- package/dist/kt-compiler/expr.js.map +1 -0
- package/dist/kt-compiler/format.d.ts +20 -0
- package/dist/kt-compiler/format.d.ts.map +1 -0
- package/dist/kt-compiler/format.js +27 -0
- package/dist/kt-compiler/format.js.map +1 -0
- package/dist/kt-compiler/index.d.ts +7 -0
- package/dist/kt-compiler/index.d.ts.map +1 -0
- package/dist/kt-compiler/index.js +24 -0
- package/dist/kt-compiler/index.js.map +1 -0
- package/dist/kt-compiler/stmt.d.ts +4 -0
- package/dist/kt-compiler/stmt.d.ts.map +1 -0
- package/dist/kt-compiler/stmt.js +72 -0
- package/dist/kt-compiler/stmt.js.map +1 -0
- package/dist/kt-compiler/type.d.ts +3 -0
- package/dist/kt-compiler/type.d.ts.map +1 -0
- package/dist/kt-compiler/type.js +28 -0
- package/dist/kt-compiler/type.js.map +1 -0
- package/dist/kt-dsl/decl/class.d.ts +50 -0
- package/dist/kt-dsl/decl/class.d.ts.map +1 -0
- package/dist/kt-dsl/decl/class.js +33 -0
- package/dist/kt-dsl/decl/class.js.map +1 -0
- package/dist/kt-dsl/decl/dataClass.d.ts +36 -0
- package/dist/kt-dsl/decl/dataClass.d.ts.map +1 -0
- package/dist/kt-dsl/decl/dataClass.js +25 -0
- package/dist/kt-dsl/decl/dataClass.js.map +1 -0
- package/dist/kt-dsl/decl/enum.d.ts +60 -0
- package/dist/kt-dsl/decl/enum.d.ts.map +1 -0
- package/dist/kt-dsl/decl/enum.js +38 -0
- package/dist/kt-dsl/decl/enum.js.map +1 -0
- package/dist/kt-dsl/decl/index.d.ts +11 -0
- package/dist/kt-dsl/decl/index.d.ts.map +1 -0
- package/dist/kt-dsl/decl/index.js +11 -0
- package/dist/kt-dsl/decl/index.js.map +1 -0
- package/dist/kt-dsl/decl/interface.d.ts +33 -0
- package/dist/kt-dsl/decl/interface.d.ts.map +1 -0
- package/dist/kt-dsl/decl/interface.js +24 -0
- package/dist/kt-dsl/decl/interface.js.map +1 -0
- package/dist/kt-dsl/decl/object.d.ts +34 -0
- package/dist/kt-dsl/decl/object.d.ts.map +1 -0
- package/dist/kt-dsl/decl/object.js +24 -0
- package/dist/kt-dsl/decl/object.js.map +1 -0
- package/dist/kt-dsl/decl/prop.d.ts +47 -0
- package/dist/kt-dsl/decl/prop.d.ts.map +1 -0
- package/dist/kt-dsl/decl/prop.js +28 -0
- package/dist/kt-dsl/decl/prop.js.map +1 -0
- package/dist/kt-dsl/decl/sealedClass.d.ts +68 -0
- package/dist/kt-dsl/decl/sealedClass.d.ts.map +1 -0
- package/dist/kt-dsl/decl/sealedClass.js +52 -0
- package/dist/kt-dsl/decl/sealedClass.js.map +1 -0
- package/dist/kt-dsl/decl/topLevel.d.ts +19 -0
- package/dist/kt-dsl/decl/topLevel.d.ts.map +1 -0
- package/dist/kt-dsl/decl/topLevel.js +17 -0
- package/dist/kt-dsl/decl/topLevel.js.map +1 -0
- package/dist/kt-dsl/decl/typeAlias.d.ts +23 -0
- package/dist/kt-dsl/decl/typeAlias.d.ts.map +1 -0
- package/dist/kt-dsl/decl/typeAlias.js +18 -0
- package/dist/kt-dsl/decl/typeAlias.js.map +1 -0
- package/dist/kt-dsl/decl/types.d.ts +10 -0
- package/dist/kt-dsl/decl/types.d.ts.map +1 -0
- package/dist/kt-dsl/decl/types.js +2 -0
- package/dist/kt-dsl/decl/types.js.map +1 -0
- package/dist/kt-dsl/expr/access.d.ts +48 -0
- package/dist/kt-dsl/expr/access.d.ts.map +1 -0
- package/dist/kt-dsl/expr/access.js +59 -0
- package/dist/kt-dsl/expr/access.js.map +1 -0
- package/dist/kt-dsl/expr/call.d.ts +38 -0
- package/dist/kt-dsl/expr/call.d.ts.map +1 -0
- package/dist/kt-dsl/expr/call.js +38 -0
- package/dist/kt-dsl/expr/call.js.map +1 -0
- package/dist/kt-dsl/expr/index.d.ts +7 -0
- package/dist/kt-dsl/expr/index.d.ts.map +1 -0
- package/dist/kt-dsl/expr/index.js +7 -0
- package/dist/kt-dsl/expr/index.js.map +1 -0
- package/dist/kt-dsl/expr/literal.d.ts +100 -0
- package/dist/kt-dsl/expr/literal.d.ts.map +1 -0
- package/dist/kt-dsl/expr/literal.js +108 -0
- package/dist/kt-dsl/expr/literal.js.map +1 -0
- package/dist/kt-dsl/expr/misc.d.ts +45 -0
- package/dist/kt-dsl/expr/misc.d.ts.map +1 -0
- package/dist/kt-dsl/expr/misc.js +63 -0
- package/dist/kt-dsl/expr/misc.js.map +1 -0
- package/dist/kt-dsl/expr/op.d.ts +25 -0
- package/dist/kt-dsl/expr/op.d.ts.map +1 -0
- package/dist/kt-dsl/expr/op.js +24 -0
- package/dist/kt-dsl/expr/op.js.map +1 -0
- package/dist/kt-dsl/expr/types.d.ts +93 -0
- package/dist/kt-dsl/expr/types.d.ts.map +1 -0
- package/dist/kt-dsl/expr/types.js +2 -0
- package/dist/kt-dsl/expr/types.js.map +1 -0
- package/dist/kt-dsl/file.d.ts +14 -0
- package/dist/kt-dsl/file.d.ts.map +1 -0
- package/dist/kt-dsl/file.js +9 -0
- package/dist/kt-dsl/file.js.map +1 -0
- package/dist/kt-dsl/fun.d.ts +73 -0
- package/dist/kt-dsl/fun.d.ts.map +1 -0
- package/dist/kt-dsl/fun.js +50 -0
- package/dist/kt-dsl/fun.js.map +1 -0
- package/dist/kt-dsl/index.d.ts +8 -0
- package/dist/kt-dsl/index.d.ts.map +1 -0
- package/dist/kt-dsl/index.js +8 -0
- package/dist/kt-dsl/index.js.map +1 -0
- package/dist/kt-dsl/stmt/binding.d.ts +56 -0
- package/dist/kt-dsl/stmt/binding.d.ts.map +1 -0
- package/dist/kt-dsl/stmt/binding.js +70 -0
- package/dist/kt-dsl/stmt/binding.js.map +1 -0
- package/dist/kt-dsl/stmt/control.d.ts +80 -0
- package/dist/kt-dsl/stmt/control.d.ts.map +1 -0
- package/dist/kt-dsl/stmt/control.js +77 -0
- package/dist/kt-dsl/stmt/control.js.map +1 -0
- package/dist/kt-dsl/stmt/index.d.ts +4 -0
- package/dist/kt-dsl/stmt/index.d.ts.map +1 -0
- package/dist/kt-dsl/stmt/index.js +4 -0
- package/dist/kt-dsl/stmt/index.js.map +1 -0
- package/dist/kt-dsl/stmt/types.d.ts +62 -0
- package/dist/kt-dsl/stmt/types.d.ts.map +1 -0
- package/dist/kt-dsl/stmt/types.js +2 -0
- package/dist/kt-dsl/stmt/types.js.map +1 -0
- package/dist/kt-dsl/type/builders.d.ts +75 -0
- package/dist/kt-dsl/type/builders.d.ts.map +1 -0
- package/dist/kt-dsl/type/builders.js +83 -0
- package/dist/kt-dsl/type/builders.js.map +1 -0
- package/dist/kt-dsl/type/index.d.ts +3 -0
- package/dist/kt-dsl/type/index.d.ts.map +1 -0
- package/dist/kt-dsl/type/index.js +3 -0
- package/dist/kt-dsl/type/index.js.map +1 -0
- package/dist/kt-dsl/type/types.d.ts +25 -0
- package/dist/kt-dsl/type/types.d.ts.map +1 -0
- package/dist/kt-dsl/type/types.js +2 -0
- package/dist/kt-dsl/type/types.js.map +1 -0
- package/dist/kt-dsl/visibility.d.ts +2 -0
- package/dist/kt-dsl/visibility.d.ts.map +1 -0
- package/dist/kt-dsl/visibility.js +2 -0
- package/dist/kt-dsl/visibility.js.map +1 -0
- package/dist/project/build.d.ts +33 -0
- package/dist/project/build.d.ts.map +1 -0
- package/dist/project/build.js +73 -0
- package/dist/project/build.js.map +1 -0
- package/dist/project/gradle.d.ts +48 -0
- package/dist/project/gradle.d.ts.map +1 -0
- package/dist/project/gradle.js +46 -0
- package/dist/project/gradle.js.map +1 -0
- package/dist/project/imports.d.ts +21 -0
- package/dist/project/imports.d.ts.map +1 -0
- package/dist/project/imports.js +162 -0
- package/dist/project/imports.js.map +1 -0
- package/dist/project/index.d.ts +6 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +3 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/layout.d.ts +30 -0
- package/dist/project/layout.d.ts.map +1 -0
- package/dist/project/layout.js +57 -0
- package/dist/project/layout.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable binding (`val`).
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```kotlin
|
|
6
|
+
* // ktVal("status", ktIntLit(200))
|
|
7
|
+
* // → val status = 200
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export const ktVal = (name, expr, type) => ({
|
|
11
|
+
kind: "val",
|
|
12
|
+
name,
|
|
13
|
+
expr,
|
|
14
|
+
type,
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Mutable binding (`var`).
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```kotlin
|
|
21
|
+
* // ktVar("builder", ktCall(ktIdent("Request.Builder")))
|
|
22
|
+
* // → var builder = Request.Builder()
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export const ktVar = (name, expr, type) => ({
|
|
26
|
+
kind: "var",
|
|
27
|
+
name,
|
|
28
|
+
expr,
|
|
29
|
+
type,
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Assignment to an existing l-value.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```kotlin
|
|
36
|
+
* // ktAssign(ktMember(ktIdent("req"), "method"), ktStr("GET"))
|
|
37
|
+
* // → req.method = "GET"
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export const ktAssign = (target, value) => ({
|
|
41
|
+
kind: "assign",
|
|
42
|
+
target,
|
|
43
|
+
value,
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* Bare expression statement (the value is discarded).
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```kotlin
|
|
50
|
+
* // ktExprStmt(ktCall(ktMember(ktIdent("req"), "build"), []))
|
|
51
|
+
* // → req.build()
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export const ktExprStmt = (expr) => ({ kind: "expr", expr });
|
|
55
|
+
/**
|
|
56
|
+
* Single-expression body marker — e.g. for property getters or
|
|
57
|
+
* single-expression functions. The printer renders this as `= expr`
|
|
58
|
+
* instead of a braced block when it's the only statement in a body.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```kotlin
|
|
62
|
+
* // ktReturnExpr(ktMember(ktIdent("foo"), "bar"))
|
|
63
|
+
* // → = foo.bar
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export const ktReturnExpr = (expr) => ({
|
|
67
|
+
kind: "returnExpr",
|
|
68
|
+
expr,
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../../src/kt-dsl/stmt/binding.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,IAAa,EAAU,EAAE,CAAC,CAAC;IAC3E,IAAI,EAAE,KAAK;IACX,IAAI;IACJ,IAAI;IACJ,IAAI;CACL,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,IAAa,EAAU,EAAE,CAAC,CAAC;IAC3E,IAAI,EAAE,KAAK;IACX,IAAI;IACJ,IAAI;IACJ,IAAI;CACL,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,KAAa,EAAU,EAAE,CAAC,CAAC;IAClE,IAAI,EAAE,QAAQ;IACd,MAAM;IACN,KAAK;CACN,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE,YAAY;IAClB,IAAI;CACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { KtExpr } from "../expr/types.js";
|
|
2
|
+
import type { KtType } from "../type/types.js";
|
|
3
|
+
import type { KtCatchClause, KtStmt, KtWhenCase } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* `return` (with or without an expression).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```kotlin
|
|
9
|
+
* // ktReturn() → return
|
|
10
|
+
* // ktReturn(ktIdent("data")) → return data
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare const ktReturn: (expr?: KtExpr) => KtStmt;
|
|
14
|
+
/**
|
|
15
|
+
* `throw expr`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```kotlin
|
|
19
|
+
* // ktThrow(ktCall(ktIdent("ApiError.Decoding"), [ktArg(ktIdent("e"))]))
|
|
20
|
+
* // → throw ApiError.Decoding(e)
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare const ktThrow: (expr: KtExpr) => KtStmt;
|
|
24
|
+
/**
|
|
25
|
+
* `if (cond) { then } [else { else_ }]`.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```kotlin
|
|
29
|
+
* // ktIf(ktEq(ktIdent("status"), ktIntLit(200)),
|
|
30
|
+
* // [ktReturn(ktIdent("data"))])
|
|
31
|
+
* // → if (status == 200) { return data }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare const ktIf: (cond: KtExpr, then: ReadonlyArray<KtStmt>, else_?: ReadonlyArray<KtStmt>) => KtStmt;
|
|
35
|
+
/**
|
|
36
|
+
* `when (on) { … }` — multi-arm dispatch. Pass no `on` for the
|
|
37
|
+
* boolean-arm form (`when { cond -> … }`).
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```kotlin
|
|
41
|
+
* // ktWhen(ktIdent("location"), [
|
|
42
|
+
* // ktWhenCase([ktIdent("Header")], [ktExprStmt(…)]),
|
|
43
|
+
* // ], [ktExprStmt(…)])
|
|
44
|
+
* // → when (location) { Header -> { … } else -> { … } }
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare const ktWhen: (on: KtExpr | undefined, cases: ReadonlyArray<KtWhenCase>, default_?: ReadonlyArray<KtStmt>) => KtStmt;
|
|
48
|
+
/**
|
|
49
|
+
* One arm of a `when` — a list of patterns paired with a body. The
|
|
50
|
+
* printer joins multiple patterns with `, ` and wraps the body in `{ }`
|
|
51
|
+
* unless it's a single statement.
|
|
52
|
+
*/
|
|
53
|
+
export declare const ktWhenCase: (patterns: ReadonlyArray<KtExpr>, body: ReadonlyArray<KtStmt>) => KtWhenCase;
|
|
54
|
+
/**
|
|
55
|
+
* `for (name in source) { body }`.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```kotlin
|
|
59
|
+
* // ktForIn("interceptor", ktIdent("interceptors"), [
|
|
60
|
+
* // ktAssign(ktIdent("req"), ktCall(ktIdent("interceptor"), [ktArg(ktIdent("req"))])),
|
|
61
|
+
* // ])
|
|
62
|
+
* // → for (interceptor in interceptors) { req = interceptor(req) }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare const ktForIn: (name: string, source: KtExpr, body: ReadonlyArray<KtStmt>) => KtStmt;
|
|
66
|
+
/**
|
|
67
|
+
* `try { body } catch (e: T) { … }`.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```kotlin
|
|
71
|
+
* // ktTryCatch([ktReturn(…)], [ktCatch("e", ktRef("Throwable"), [ktThrow(…)])])
|
|
72
|
+
* // → try { … } catch (e: Throwable) { … }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare const ktTryCatch: (body: ReadonlyArray<KtStmt>, catches: ReadonlyArray<KtCatchClause>) => KtStmt;
|
|
76
|
+
/**
|
|
77
|
+
* One `catch` clause for `ktTryCatch`.
|
|
78
|
+
*/
|
|
79
|
+
export declare const ktCatch: (name: string, type: KtType, body: ReadonlyArray<KtStmt>) => KtCatchClause;
|
|
80
|
+
//# sourceMappingURL=control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../src/kt-dsl/stmt/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,KAAG,MAAoC,CAAC;AAE9E;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,KAAG,MAAmC,CAAC;AAE3E;;;;;;;;;GASG;AACH,eAAO,MAAM,IAAI,GACf,MAAM,MAAM,EACZ,MAAM,aAAa,CAAC,MAAM,CAAC,EAC3B,QAAQ,aAAa,CAAC,MAAM,CAAC,KAC5B,MAA6C,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,GACjB,IAAI,MAAM,GAAG,SAAS,EACtB,OAAO,aAAa,CAAC,UAAU,CAAC,EAChC,WAAW,aAAa,CAAC,MAAM,CAAC,KAC/B,MAAiD,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,UAAU,aAAa,CAAC,MAAM,CAAC,EAC/B,MAAM,aAAa,CAAC,MAAM,CAAC,KAC1B,UAAkC,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,GAClB,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,MAAM,aAAa,CAAC,MAAM,CAAC,KAC1B,MAAiD,CAAC;AAErD;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,aAAa,CAAC,MAAM,CAAC,EAC3B,SAAS,aAAa,CAAC,aAAa,CAAC,KACpC,MAA+C,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,OAAO,GAClB,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,MAAM,aAAa,CAAC,MAAM,CAAC,KAC1B,aAAuC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `return` (with or without an expression).
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```kotlin
|
|
6
|
+
* // ktReturn() → return
|
|
7
|
+
* // ktReturn(ktIdent("data")) → return data
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export const ktReturn = (expr) => ({ kind: "return", expr });
|
|
11
|
+
/**
|
|
12
|
+
* `throw expr`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```kotlin
|
|
16
|
+
* // ktThrow(ktCall(ktIdent("ApiError.Decoding"), [ktArg(ktIdent("e"))]))
|
|
17
|
+
* // → throw ApiError.Decoding(e)
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export const ktThrow = (expr) => ({ kind: "throw", expr });
|
|
21
|
+
/**
|
|
22
|
+
* `if (cond) { then } [else { else_ }]`.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```kotlin
|
|
26
|
+
* // ktIf(ktEq(ktIdent("status"), ktIntLit(200)),
|
|
27
|
+
* // [ktReturn(ktIdent("data"))])
|
|
28
|
+
* // → if (status == 200) { return data }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export const ktIf = (cond, then, else_) => ({ kind: "if", cond, then, else_ });
|
|
32
|
+
/**
|
|
33
|
+
* `when (on) { … }` — multi-arm dispatch. Pass no `on` for the
|
|
34
|
+
* boolean-arm form (`when { cond -> … }`).
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```kotlin
|
|
38
|
+
* // ktWhen(ktIdent("location"), [
|
|
39
|
+
* // ktWhenCase([ktIdent("Header")], [ktExprStmt(…)]),
|
|
40
|
+
* // ], [ktExprStmt(…)])
|
|
41
|
+
* // → when (location) { Header -> { … } else -> { … } }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export const ktWhen = (on, cases, default_) => ({ kind: "when", on, cases, default_ });
|
|
45
|
+
/**
|
|
46
|
+
* One arm of a `when` — a list of patterns paired with a body. The
|
|
47
|
+
* printer joins multiple patterns with `, ` and wraps the body in `{ }`
|
|
48
|
+
* unless it's a single statement.
|
|
49
|
+
*/
|
|
50
|
+
export const ktWhenCase = (patterns, body) => ({ patterns, body });
|
|
51
|
+
/**
|
|
52
|
+
* `for (name in source) { body }`.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```kotlin
|
|
56
|
+
* // ktForIn("interceptor", ktIdent("interceptors"), [
|
|
57
|
+
* // ktAssign(ktIdent("req"), ktCall(ktIdent("interceptor"), [ktArg(ktIdent("req"))])),
|
|
58
|
+
* // ])
|
|
59
|
+
* // → for (interceptor in interceptors) { req = interceptor(req) }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export const ktForIn = (name, source, body) => ({ kind: "forIn", name, source, body });
|
|
63
|
+
/**
|
|
64
|
+
* `try { body } catch (e: T) { … }`.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```kotlin
|
|
68
|
+
* // ktTryCatch([ktReturn(…)], [ktCatch("e", ktRef("Throwable"), [ktThrow(…)])])
|
|
69
|
+
* // → try { … } catch (e: Throwable) { … }
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export const ktTryCatch = (body, catches) => ({ kind: "tryCatch", body, catches });
|
|
73
|
+
/**
|
|
74
|
+
* One `catch` clause for `ktTryCatch`.
|
|
75
|
+
*/
|
|
76
|
+
export const ktCatch = (name, type, body) => ({ name, type, body });
|
|
77
|
+
//# sourceMappingURL=control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/kt-dsl/stmt/control.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,IAAY,EACZ,IAA2B,EAC3B,KAA6B,EACrB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,EAAsB,EACtB,KAAgC,EAChC,QAAgC,EACxB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,QAA+B,EAC/B,IAA2B,EACf,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,IAAY,EACZ,MAAc,EACd,IAA2B,EACnB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,IAA2B,EAC3B,OAAqC,EAC7B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,IAAY,EACZ,IAAY,EACZ,IAA2B,EACZ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kt-dsl/stmt/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kt-dsl/stmt/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { KtExpr } from "../expr/types.js";
|
|
2
|
+
import type { KtType } from "../type/types.js";
|
|
3
|
+
export type KtStmt = KtBindingStmt | KtControlStmt | {
|
|
4
|
+
kind: "assign";
|
|
5
|
+
target: KtExpr;
|
|
6
|
+
value: KtExpr;
|
|
7
|
+
} | {
|
|
8
|
+
kind: "expr";
|
|
9
|
+
expr: KtExpr;
|
|
10
|
+
} | {
|
|
11
|
+
kind: "returnExpr";
|
|
12
|
+
expr: KtExpr;
|
|
13
|
+
} | {
|
|
14
|
+
kind: "tryCatch";
|
|
15
|
+
body: ReadonlyArray<KtStmt>;
|
|
16
|
+
catches: ReadonlyArray<KtCatchClause>;
|
|
17
|
+
};
|
|
18
|
+
export interface KtCatchClause {
|
|
19
|
+
/** The exception variable name; defaults to `e`. */
|
|
20
|
+
name: string;
|
|
21
|
+
/** Exception type (e.g. `Throwable`, `IOException`). */
|
|
22
|
+
type: KtType;
|
|
23
|
+
body: ReadonlyArray<KtStmt>;
|
|
24
|
+
}
|
|
25
|
+
export type KtBindingStmt = {
|
|
26
|
+
kind: "val";
|
|
27
|
+
name: string;
|
|
28
|
+
expr: KtExpr;
|
|
29
|
+
type?: KtType;
|
|
30
|
+
} | {
|
|
31
|
+
kind: "var";
|
|
32
|
+
name: string;
|
|
33
|
+
expr: KtExpr;
|
|
34
|
+
type?: KtType;
|
|
35
|
+
};
|
|
36
|
+
export type KtControlStmt = {
|
|
37
|
+
kind: "return";
|
|
38
|
+
expr?: KtExpr;
|
|
39
|
+
} | {
|
|
40
|
+
kind: "throw";
|
|
41
|
+
expr: KtExpr;
|
|
42
|
+
} | {
|
|
43
|
+
kind: "if";
|
|
44
|
+
cond: KtExpr;
|
|
45
|
+
then: ReadonlyArray<KtStmt>;
|
|
46
|
+
else_?: ReadonlyArray<KtStmt>;
|
|
47
|
+
} | {
|
|
48
|
+
kind: "when";
|
|
49
|
+
on?: KtExpr;
|
|
50
|
+
cases: ReadonlyArray<KtWhenCase>;
|
|
51
|
+
default_?: ReadonlyArray<KtStmt>;
|
|
52
|
+
} | {
|
|
53
|
+
kind: "forIn";
|
|
54
|
+
name: string;
|
|
55
|
+
source: KtExpr;
|
|
56
|
+
body: ReadonlyArray<KtStmt>;
|
|
57
|
+
};
|
|
58
|
+
export interface KtWhenCase {
|
|
59
|
+
patterns: ReadonlyArray<KtExpr>;
|
|
60
|
+
body: ReadonlyArray<KtStmt>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/kt-dsl/stmt/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,MAAM,MAAM,GACd,aAAa,GACb,aAAa,GACb;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CACvC,CAAC;AAEN,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IACE,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClC,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/kt-dsl/stmt/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { KtType } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Common Kotlin primitive shortcuts. Each renders to its bare type
|
|
4
|
+
* name in source.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```kotlin
|
|
8
|
+
* // ktString → String
|
|
9
|
+
* // ktLong → Long
|
|
10
|
+
* // ktUnit → Unit
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare const ktString: KtType;
|
|
14
|
+
export declare const ktInt: KtType;
|
|
15
|
+
export declare const ktLong: KtType;
|
|
16
|
+
export declare const ktShort: KtType;
|
|
17
|
+
export declare const ktByte: KtType;
|
|
18
|
+
export declare const ktDouble: KtType;
|
|
19
|
+
export declare const ktFloat: KtType;
|
|
20
|
+
export declare const ktBoolean: KtType;
|
|
21
|
+
export declare const ktUnit: KtType;
|
|
22
|
+
export declare const ktAny: KtType;
|
|
23
|
+
export declare const ktNothing: KtType;
|
|
24
|
+
export declare const ktByteArray: KtType;
|
|
25
|
+
/**
|
|
26
|
+
* Nullable wrapper — renders as `Inner?`. Idempotent: wrapping an
|
|
27
|
+
* already-nullable type is a no-op so callers don't have to track
|
|
28
|
+
* nullability state.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```kotlin
|
|
32
|
+
* // ktNullable(ktString) → String?
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const ktNullable: (inner: KtType) => KtType;
|
|
36
|
+
/**
|
|
37
|
+
* `List<Element>`.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```kotlin
|
|
41
|
+
* // ktList(ktString) → List<String>
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare const ktList: (element: KtType) => KtType;
|
|
45
|
+
/**
|
|
46
|
+
* `Map<Key, Value>`.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```kotlin
|
|
50
|
+
* // ktMap(ktString, ktInt) → Map<String, Int>
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare const ktMap: (key: KtType, value: KtType) => KtType;
|
|
54
|
+
/**
|
|
55
|
+
* Named type reference, optionally parameterized.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```kotlin
|
|
59
|
+
* // ktRef("Request") → Request
|
|
60
|
+
* // ktRef("Pair", [ktString, ktInt]) → Pair<String, Int>
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare const ktRef: (name: string, args?: ReadonlyArray<KtType>) => KtType;
|
|
64
|
+
/**
|
|
65
|
+
* Function type — renders as `(Params...) -> Return` or
|
|
66
|
+
* `suspend (Params...) -> Return`.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```kotlin
|
|
70
|
+
* // ktFunc([ktRef("Request")], ktRef("Request"), true)
|
|
71
|
+
* // → suspend (Request) -> Request
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare const ktFunc: (params: ReadonlyArray<KtType>, returnType: KtType, suspend?: boolean) => KtType;
|
|
75
|
+
//# sourceMappingURL=builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/kt-dsl/type/builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,YAAY,CAAC;AAItD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,QAAiB,CAAC;AACvC,eAAO,MAAM,KAAK,QAAc,CAAC;AACjC,eAAO,MAAM,MAAM,QAAe,CAAC;AACnC,eAAO,MAAM,OAAO,QAAgB,CAAC;AACrC,eAAO,MAAM,MAAM,QAAe,CAAC;AACnC,eAAO,MAAM,QAAQ,QAAiB,CAAC;AACvC,eAAO,MAAM,OAAO,QAAgB,CAAC;AACrC,eAAO,MAAM,SAAS,QAAkB,CAAC;AACzC,eAAO,MAAM,MAAM,QAAe,CAAC;AACnC,eAAO,MAAM,KAAK,QAAc,CAAC;AACjC,eAAO,MAAM,SAAS,QAAkB,CAAC;AACzC,eAAO,MAAM,WAAW,QAAoB,CAAC;AAE7C;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MACsB,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,GAAI,SAAS,MAAM,KAAG,MAAqC,CAAC;AAE/E;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,MAIjD,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,CAAC,KAAG,MAIjE,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,GACjB,QAAQ,aAAa,CAAC,MAAM,CAAC,EAC7B,YAAY,MAAM,EAClB,iBAAe,KACd,MAAyD,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
const prim = (name) => ({ kind: "primitive", name });
|
|
2
|
+
/**
|
|
3
|
+
* Common Kotlin primitive shortcuts. Each renders to its bare type
|
|
4
|
+
* name in source.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```kotlin
|
|
8
|
+
* // ktString → String
|
|
9
|
+
* // ktLong → Long
|
|
10
|
+
* // ktUnit → Unit
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export const ktString = prim("String");
|
|
14
|
+
export const ktInt = prim("Int");
|
|
15
|
+
export const ktLong = prim("Long");
|
|
16
|
+
export const ktShort = prim("Short");
|
|
17
|
+
export const ktByte = prim("Byte");
|
|
18
|
+
export const ktDouble = prim("Double");
|
|
19
|
+
export const ktFloat = prim("Float");
|
|
20
|
+
export const ktBoolean = prim("Boolean");
|
|
21
|
+
export const ktUnit = prim("Unit");
|
|
22
|
+
export const ktAny = prim("Any");
|
|
23
|
+
export const ktNothing = prim("Nothing");
|
|
24
|
+
export const ktByteArray = prim("ByteArray");
|
|
25
|
+
/**
|
|
26
|
+
* Nullable wrapper — renders as `Inner?`. Idempotent: wrapping an
|
|
27
|
+
* already-nullable type is a no-op so callers don't have to track
|
|
28
|
+
* nullability state.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```kotlin
|
|
32
|
+
* // ktNullable(ktString) → String?
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export const ktNullable = (inner) => inner.kind === "nullable" ? inner : { kind: "nullable", inner };
|
|
36
|
+
/**
|
|
37
|
+
* `List<Element>`.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```kotlin
|
|
41
|
+
* // ktList(ktString) → List<String>
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export const ktList = (element) => ({ kind: "list", element });
|
|
45
|
+
/**
|
|
46
|
+
* `Map<Key, Value>`.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```kotlin
|
|
50
|
+
* // ktMap(ktString, ktInt) → Map<String, Int>
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export const ktMap = (key, value) => ({
|
|
54
|
+
kind: "map",
|
|
55
|
+
key,
|
|
56
|
+
value,
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Named type reference, optionally parameterized.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```kotlin
|
|
63
|
+
* // ktRef("Request") → Request
|
|
64
|
+
* // ktRef("Pair", [ktString, ktInt]) → Pair<String, Int>
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export const ktRef = (name, args) => ({
|
|
68
|
+
kind: "ref",
|
|
69
|
+
name,
|
|
70
|
+
args,
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* Function type — renders as `(Params...) -> Return` or
|
|
74
|
+
* `suspend (Params...) -> Return`.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```kotlin
|
|
78
|
+
* // ktFunc([ktRef("Request")], ktRef("Request"), true)
|
|
79
|
+
* // → suspend (Request) -> Request
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export const ktFunc = (params, returnType, suspend = false) => ({ kind: "func", params, returnType, suspend });
|
|
83
|
+
//# sourceMappingURL=builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/kt-dsl/type/builders.ts"],"names":[],"mappings":"AAEA,MAAM,IAAI,GAAG,CAAC,IAAiB,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAE7C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAClD,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,KAAa,EAAU,EAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,KAAK;IACX,GAAG;IACH,KAAK;CACN,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAA4B,EAAU,EAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,KAAK;IACX,IAAI;IACJ,IAAI;CACL,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,MAA6B,EAC7B,UAAkB,EAClB,OAAO,GAAG,KAAK,EACP,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kt-dsl/type/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kt-dsl/type/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type KtPrimitive = "String" | "Int" | "Long" | "Short" | "Byte" | "Double" | "Float" | "Boolean" | "Unit" | "Any" | "Nothing" | "ByteArray";
|
|
2
|
+
export type KtType = {
|
|
3
|
+
kind: "primitive";
|
|
4
|
+
name: KtPrimitive;
|
|
5
|
+
} | {
|
|
6
|
+
kind: "list";
|
|
7
|
+
element: KtType;
|
|
8
|
+
} | {
|
|
9
|
+
kind: "map";
|
|
10
|
+
key: KtType;
|
|
11
|
+
value: KtType;
|
|
12
|
+
} | {
|
|
13
|
+
kind: "ref";
|
|
14
|
+
name: string;
|
|
15
|
+
args?: ReadonlyArray<KtType>;
|
|
16
|
+
} | {
|
|
17
|
+
kind: "nullable";
|
|
18
|
+
inner: KtType;
|
|
19
|
+
} | {
|
|
20
|
+
kind: "func";
|
|
21
|
+
params: ReadonlyArray<KtType>;
|
|
22
|
+
returnType: KtType;
|
|
23
|
+
suspend: boolean;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/kt-dsl/type/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,KAAK,GACL,MAAM,GACN,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,GACT,MAAM,GACN,KAAK,GACL,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/kt-dsl/type/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../src/kt-dsl/visibility.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../src/kt-dsl/visibility.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type KtDecl } from "../kt-dsl/index.js";
|
|
2
|
+
import { type PlacementOptions } from "./layout.js";
|
|
3
|
+
export interface BuildOptions extends PlacementOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Kotlin package every generated file lives in (e.g. `"com.example.petstore"`).
|
|
6
|
+
* Default: `"com.example.api"`. Pass an explicit value to match the
|
|
7
|
+
* consumer's app structure.
|
|
8
|
+
*/
|
|
9
|
+
packageName?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface BuiltFile {
|
|
12
|
+
/** Output path relative to the SDK root, using POSIX separators. */
|
|
13
|
+
path: string;
|
|
14
|
+
content: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Project assembler: places each decl in a file, picks imports, prints
|
|
18
|
+
* one Kotlin source per group. Decls that share an output path
|
|
19
|
+
* (currently the per-receiver extension-fun bundle) collapse into one
|
|
20
|
+
* file; everything else lives in its own.
|
|
21
|
+
*
|
|
22
|
+
* The package directory layout (`com/example/petstore/...`) is built
|
|
23
|
+
* into `path` so the result drops directly into a `src/main/kotlin/`
|
|
24
|
+
* tree.
|
|
25
|
+
*/
|
|
26
|
+
export declare function buildKotlinProject(decls: ReadonlyArray<KtDecl>, opts?: BuildOptions): BuiltFile[];
|
|
27
|
+
/**
|
|
28
|
+
* Wrap a runtime-helper file (raw kotlin source) in a `BuiltFile`. The
|
|
29
|
+
* runtime templates already carry their own `package` directive, so we
|
|
30
|
+
* just route them through the layout.
|
|
31
|
+
*/
|
|
32
|
+
export declare function runtimeFileToBuilt(pkg: string, pkgDir: string, fileName: string, content: string): BuiltFile;
|
|
33
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/project/build.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAgB,KAAK,gBAAgB,EAAa,MAAM,aAAa,CAAC;AAE7E,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAC5B,IAAI,GAAE,YAAiB,GACtB,SAAS,EAAE,CAgCb;AAcD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,SAAS,CAMX"}
|