@danielfgray/pg-sourcerer 0.2.0 → 0.2.2
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/cli.js +25 -19
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +14 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -1
- package/dist/generate.d.ts +31 -21
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +53 -43
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +20 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -13
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +0 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +90 -35
- package/dist/init.js.map +1 -1
- package/dist/ir/extensions/queries.d.ts +264 -0
- package/dist/ir/extensions/queries.d.ts.map +1 -0
- package/dist/ir/extensions/queries.js +153 -0
- package/dist/ir/extensions/queries.js.map +1 -0
- package/dist/ir/extensions/schema-builder.d.ts +61 -0
- package/dist/ir/extensions/schema-builder.d.ts.map +1 -0
- package/dist/ir/extensions/schema-builder.js +5 -0
- package/dist/ir/extensions/schema-builder.js.map +1 -0
- package/dist/lib/conjure.d.ts +101 -0
- package/dist/lib/conjure.d.ts.map +1 -1
- package/dist/lib/conjure.js +204 -26
- package/dist/lib/conjure.js.map +1 -1
- package/dist/lib/hex.d.ts +10 -8
- package/dist/lib/hex.d.ts.map +1 -1
- package/dist/lib/hex.js +18 -15
- package/dist/lib/hex.js.map +1 -1
- package/dist/plugins/arktype.d.ts +27 -14
- package/dist/plugins/arktype.d.ts.map +1 -1
- package/dist/plugins/arktype.js +166 -130
- package/dist/plugins/arktype.js.map +1 -1
- package/dist/plugins/effect.d.ts +53 -0
- package/dist/plugins/effect.d.ts.map +1 -0
- package/dist/plugins/effect.js +1074 -0
- package/dist/plugins/effect.js.map +1 -0
- package/dist/plugins/http-elysia.d.ts +32 -0
- package/dist/plugins/http-elysia.d.ts.map +1 -0
- package/dist/plugins/http-elysia.js +613 -0
- package/dist/plugins/http-elysia.js.map +1 -0
- package/dist/plugins/http-express.d.ts +36 -0
- package/dist/plugins/http-express.d.ts.map +1 -0
- package/dist/plugins/http-express.js +388 -0
- package/dist/plugins/http-express.js.map +1 -0
- package/dist/plugins/http-hono.d.ts +36 -0
- package/dist/plugins/http-hono.d.ts.map +1 -0
- package/dist/plugins/http-hono.js +453 -0
- package/dist/plugins/http-hono.js.map +1 -0
- package/dist/plugins/http-orpc.d.ts +55 -0
- package/dist/plugins/http-orpc.d.ts.map +1 -0
- package/dist/plugins/http-orpc.js +370 -0
- package/dist/plugins/http-orpc.js.map +1 -0
- package/dist/plugins/http-trpc.d.ts +59 -0
- package/dist/plugins/http-trpc.d.ts.map +1 -0
- package/dist/plugins/http-trpc.js +392 -0
- package/dist/plugins/http-trpc.js.map +1 -0
- package/dist/plugins/kysely/queries.d.ts +92 -0
- package/dist/plugins/kysely/queries.d.ts.map +1 -0
- package/dist/plugins/kysely/queries.js +1169 -0
- package/dist/plugins/kysely/queries.js.map +1 -0
- package/dist/plugins/kysely/shared.d.ts +59 -0
- package/dist/plugins/kysely/shared.d.ts.map +1 -0
- package/dist/plugins/kysely/shared.js +247 -0
- package/dist/plugins/kysely/shared.js.map +1 -0
- package/dist/plugins/kysely/types.d.ts +22 -0
- package/dist/plugins/kysely/types.d.ts.map +1 -0
- package/dist/plugins/kysely/types.js +428 -0
- package/dist/plugins/kysely/types.js.map +1 -0
- package/dist/plugins/kysely.d.ts +72 -0
- package/dist/plugins/kysely.d.ts.map +1 -0
- package/dist/plugins/kysely.js +906 -0
- package/dist/plugins/kysely.js.map +1 -0
- package/dist/plugins/sql-queries.d.ts +55 -7
- package/dist/plugins/sql-queries.d.ts.map +1 -1
- package/dist/plugins/sql-queries.js +747 -121
- package/dist/plugins/sql-queries.js.map +1 -1
- package/dist/plugins/types.d.ts +20 -14
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/plugins/types.js +90 -112
- package/dist/plugins/types.js.map +1 -1
- package/dist/plugins/valibot.d.ts +45 -0
- package/dist/plugins/valibot.d.ts.map +1 -0
- package/dist/plugins/valibot.js +422 -0
- package/dist/plugins/valibot.js.map +1 -0
- package/dist/plugins/zod.d.ts +27 -14
- package/dist/plugins/zod.d.ts.map +1 -1
- package/dist/plugins/zod.js +231 -166
- package/dist/plugins/zod.js.map +1 -1
- package/dist/services/artifact-store.d.ts +11 -1
- package/dist/services/artifact-store.d.ts.map +1 -1
- package/dist/services/artifact-store.js +9 -0
- package/dist/services/artifact-store.js.map +1 -1
- package/dist/services/config-loader.d.ts +4 -0
- package/dist/services/config-loader.d.ts.map +1 -1
- package/dist/services/config-loader.js +1 -1
- package/dist/services/config-loader.js.map +1 -1
- package/dist/services/config.d.ts +57 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +66 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/core-providers.d.ts +15 -0
- package/dist/services/core-providers.d.ts.map +1 -0
- package/dist/services/core-providers.js +23 -0
- package/dist/services/core-providers.js.map +1 -0
- package/dist/services/emissions.d.ts +14 -0
- package/dist/services/emissions.d.ts.map +1 -1
- package/dist/services/emissions.js +86 -47
- package/dist/services/emissions.js.map +1 -1
- package/dist/services/execution.d.ts +35 -0
- package/dist/services/execution.d.ts.map +1 -0
- package/dist/services/execution.js +86 -0
- package/dist/services/execution.js.map +1 -0
- package/dist/services/file-builder.d.ts +4 -0
- package/dist/services/file-builder.d.ts.map +1 -1
- package/dist/services/file-builder.js.map +1 -1
- package/dist/services/inflection.d.ts +2 -2
- package/dist/services/inflection.d.ts.map +1 -1
- package/dist/services/inflection.js +4 -4
- package/dist/services/inflection.js.map +1 -1
- package/dist/services/ir-builder.d.ts.map +1 -1
- package/dist/services/ir-builder.js +10 -3
- package/dist/services/ir-builder.js.map +1 -1
- package/dist/services/pg-types.d.ts +31 -0
- package/dist/services/pg-types.d.ts.map +1 -1
- package/dist/services/pg-types.js +24 -0
- package/dist/services/pg-types.js.map +1 -1
- package/dist/services/plugin-runner.d.ts +27 -37
- package/dist/services/plugin-runner.d.ts.map +1 -1
- package/dist/services/plugin-runner.js +73 -171
- package/dist/services/plugin-runner.js.map +1 -1
- package/dist/services/plugin.d.ts +350 -215
- package/dist/services/plugin.d.ts.map +1 -1
- package/dist/services/plugin.js +182 -130
- package/dist/services/plugin.js.map +1 -1
- package/dist/services/resolution.d.ts +38 -0
- package/dist/services/resolution.d.ts.map +1 -0
- package/dist/services/resolution.js +242 -0
- package/dist/services/resolution.js.map +1 -0
- package/dist/services/service-registry.d.ts +74 -0
- package/dist/services/service-registry.d.ts.map +1 -0
- package/dist/services/service-registry.js +61 -0
- package/dist/services/service-registry.js.map +1 -0
- package/dist/services/symbols.d.ts +59 -0
- package/dist/services/symbols.d.ts.map +1 -1
- package/dist/services/symbols.js +16 -0
- package/dist/services/symbols.js.map +1 -1
- package/dist/testing.d.ts +4 -25
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +2 -23
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
- package/dist/plugins/effect-model.d.ts +0 -17
- package/dist/plugins/effect-model.d.ts.map +0 -1
- package/dist/plugins/effect-model.js +0 -409
- package/dist/plugins/effect-model.js.map +0 -1
- package/dist/plugins/kysely-queries.d.ts +0 -66
- package/dist/plugins/kysely-queries.d.ts.map +0 -1
- package/dist/plugins/kysely-queries.js +0 -960
- package/dist/plugins/kysely-queries.js.map +0 -1
- package/dist/plugins/kysely-types.d.ts +0 -35
- package/dist/plugins/kysely-types.d.ts.map +0 -1
- package/dist/plugins/kysely-types.js +0 -601
- package/dist/plugins/kysely-types.js.map +0 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Extension Schema
|
|
3
|
+
*
|
|
4
|
+
* Defines the abstract contract between query providers and consumers.
|
|
5
|
+
* Core understands that "queries" exist as a concept without knowing
|
|
6
|
+
* how they're implemented (SQL tags, Kysely, Drizzle, etc.).
|
|
7
|
+
*
|
|
8
|
+
* Query providers (sql-queries, kysely-queries) register method symbols.
|
|
9
|
+
* HTTP providers (http-elysia, http-trpc) consume them to generate routes.
|
|
10
|
+
*
|
|
11
|
+
* Communication happens through the SymbolRegistry:
|
|
12
|
+
* - Query providers call ctx.symbols.registerEntityMethods(...)
|
|
13
|
+
* - HTTP providers call ctx.symbols.getEntityMethods(...)
|
|
14
|
+
*/
|
|
15
|
+
import { Schema as S } from "effect";
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Parameter Source
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Where a parameter value comes from in the HTTP request.
|
|
21
|
+
* Used by HTTP providers to map query params to request parts.
|
|
22
|
+
*/
|
|
23
|
+
export const ParamSource = S.Union(S.Literal("pk"), // Primary key - typically from URL path
|
|
24
|
+
S.Literal("fk"), // Foreign key - from URL path or query string
|
|
25
|
+
S.Literal("lookup"), // Lookup field - from query string
|
|
26
|
+
S.Literal("body"), // Request body (for create/update)
|
|
27
|
+
S.Literal("pagination"));
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// Query Method
|
|
30
|
+
// ============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* The kind of operation a query method performs.
|
|
33
|
+
* Used by HTTP providers to determine HTTP method and route structure.
|
|
34
|
+
*/
|
|
35
|
+
export const QueryMethodKind = S.Union(S.Literal("read"), // GET single resource by ID
|
|
36
|
+
S.Literal("list"), // GET collection with pagination
|
|
37
|
+
S.Literal("create"), // POST to create new resource
|
|
38
|
+
S.Literal("update"), // PUT/PATCH to modify existing
|
|
39
|
+
S.Literal("delete"), // DELETE resource by ID
|
|
40
|
+
S.Literal("lookup"), // GET by non-PK field (unique or list)
|
|
41
|
+
S.Literal("function"));
|
|
42
|
+
/**
|
|
43
|
+
* A parameter to a query method.
|
|
44
|
+
*/
|
|
45
|
+
export const QueryMethodParam = S.Struct({
|
|
46
|
+
/** Parameter name in the generated function */
|
|
47
|
+
name: S.String,
|
|
48
|
+
/** TypeScript type as string (e.g., "string", "number", "User") */
|
|
49
|
+
type: S.String,
|
|
50
|
+
/** Whether the parameter is required */
|
|
51
|
+
required: S.Boolean,
|
|
52
|
+
/** Original column name (if applicable) */
|
|
53
|
+
columnName: S.optional(S.String),
|
|
54
|
+
/** Where this param should come from in HTTP request */
|
|
55
|
+
source: S.optional(ParamSource),
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Return type information for a query method.
|
|
59
|
+
*/
|
|
60
|
+
export const QueryMethodReturn = S.Struct({
|
|
61
|
+
/** TypeScript type as string */
|
|
62
|
+
type: S.String,
|
|
63
|
+
/** Whether the result can be null/undefined */
|
|
64
|
+
nullable: S.Boolean,
|
|
65
|
+
/** Whether the result is an array */
|
|
66
|
+
isArray: S.Boolean,
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* How to call a query function.
|
|
70
|
+
* Used by HTTP providers to generate correct function invocations.
|
|
71
|
+
*/
|
|
72
|
+
export const CallSignature = S.Struct({
|
|
73
|
+
/** "named" = fn({ a, b }), "positional" = fn(a, b) */
|
|
74
|
+
style: S.Union(S.Literal("named"), S.Literal("positional")),
|
|
75
|
+
/** For named + body: "property" = { data: body }, "spread" = { field1, field2 } */
|
|
76
|
+
bodyStyle: S.optional(S.Union(S.Literal("property"), S.Literal("spread"))),
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* A query method for an entity.
|
|
80
|
+
*
|
|
81
|
+
* This is the core abstraction that HTTP providers consume.
|
|
82
|
+
* It describes what the method does without revealing implementation.
|
|
83
|
+
*/
|
|
84
|
+
export const QueryMethod = S.Struct({
|
|
85
|
+
/** Export name in the generated file (e.g., "findUserById") */
|
|
86
|
+
name: S.String,
|
|
87
|
+
/** What kind of operation this performs */
|
|
88
|
+
kind: QueryMethodKind,
|
|
89
|
+
/** Parameters the method accepts */
|
|
90
|
+
params: S.Array(QueryMethodParam),
|
|
91
|
+
/** Return type information */
|
|
92
|
+
returns: QueryMethodReturn,
|
|
93
|
+
/** For lookup methods: the field being looked up */
|
|
94
|
+
lookupField: S.optional(S.String),
|
|
95
|
+
/** For lookup methods: whether it returns a single result or array */
|
|
96
|
+
isUniqueLookup: S.optional(S.Boolean),
|
|
97
|
+
/** How to invoke this method */
|
|
98
|
+
callSignature: S.optional(CallSignature),
|
|
99
|
+
});
|
|
100
|
+
// ============================================================================
|
|
101
|
+
// Entity Queries Extension
|
|
102
|
+
// ============================================================================
|
|
103
|
+
/**
|
|
104
|
+
* Query extension data for an entity.
|
|
105
|
+
*
|
|
106
|
+
* This is the shape registered via ctx.symbols.registerEntityMethods().
|
|
107
|
+
* HTTP providers read via ctx.symbols.getEntityMethods(entityName).
|
|
108
|
+
*/
|
|
109
|
+
export const EntityQueriesExtension = S.Struct({
|
|
110
|
+
/** Available query methods for this entity */
|
|
111
|
+
methods: S.Array(QueryMethod),
|
|
112
|
+
/** Import path for the generated query file (relative to output root) */
|
|
113
|
+
importPath: S.String,
|
|
114
|
+
/** Primary key type (for routing) */
|
|
115
|
+
pkType: S.optional(S.String),
|
|
116
|
+
/** Whether entity has composite primary key */
|
|
117
|
+
hasCompositePk: S.optional(S.Boolean),
|
|
118
|
+
});
|
|
119
|
+
// ============================================================================
|
|
120
|
+
// Standalone Functions Extension
|
|
121
|
+
// ============================================================================
|
|
122
|
+
/**
|
|
123
|
+
* A standalone database function (not tied to an entity).
|
|
124
|
+
*/
|
|
125
|
+
export const StandaloneFunction = S.Struct({
|
|
126
|
+
/** PostgreSQL function name */
|
|
127
|
+
functionName: S.String,
|
|
128
|
+
/** Export name in generated code */
|
|
129
|
+
exportName: S.String,
|
|
130
|
+
/** Schema name */
|
|
131
|
+
schemaName: S.String,
|
|
132
|
+
/** Function volatility */
|
|
133
|
+
volatility: S.Union(S.Literal("immutable"), S.Literal("stable"), S.Literal("volatile")),
|
|
134
|
+
/** Parameters */
|
|
135
|
+
params: S.Array(QueryMethodParam),
|
|
136
|
+
/** Return type */
|
|
137
|
+
returns: QueryMethodReturn,
|
|
138
|
+
/** How to invoke */
|
|
139
|
+
callSignature: S.optional(CallSignature),
|
|
140
|
+
/** Import path */
|
|
141
|
+
importPath: S.String,
|
|
142
|
+
});
|
|
143
|
+
/**
|
|
144
|
+
* Global functions extension.
|
|
145
|
+
*
|
|
146
|
+
* For standalone database functions not tied to entities.
|
|
147
|
+
* Can be registered via ctx.symbols with a special entity key.
|
|
148
|
+
*/
|
|
149
|
+
export const FunctionsExtension = S.Struct({
|
|
150
|
+
/** Standalone functions not tied to entities */
|
|
151
|
+
functions: S.Array(StandaloneFunction),
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/ir/extensions/queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Builder Contract
|
|
3
|
+
*
|
|
4
|
+
* Defines the interface for schema plugins to provide inline schema generation
|
|
5
|
+
* capabilities to HTTP plugins. This enables http-elysia to generate param/query
|
|
6
|
+
* schemas using whatever schema library (Zod, ArkType, Valibot) is configured.
|
|
7
|
+
*
|
|
8
|
+
* Schema plugins register this service via ctx.registerHandler("schema-builder", ...).
|
|
9
|
+
* HTTP plugins consume via ctx.request("schema-builder", params).
|
|
10
|
+
*/
|
|
11
|
+
import type { namedTypes as n } from "ast-types";
|
|
12
|
+
import type { QueryMethodParam } from "./queries.js";
|
|
13
|
+
/**
|
|
14
|
+
* Import specification for the schema library.
|
|
15
|
+
*/
|
|
16
|
+
export interface SchemaImportSpec {
|
|
17
|
+
/** Named imports, e.g., ["z"] for Zod */
|
|
18
|
+
readonly names?: readonly string[];
|
|
19
|
+
/** Namespace import, e.g., "v" for Valibot */
|
|
20
|
+
readonly namespace?: string;
|
|
21
|
+
/** Package name, e.g., "zod" */
|
|
22
|
+
readonly from: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Request params for schema-builder service.
|
|
26
|
+
*/
|
|
27
|
+
export interface SchemaBuilderRequest {
|
|
28
|
+
/** What kind of schema to build */
|
|
29
|
+
readonly variant: "params" | "query";
|
|
30
|
+
/** The parameters to generate schema for */
|
|
31
|
+
readonly params: readonly QueryMethodParam[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Result from schema-builder service.
|
|
35
|
+
*/
|
|
36
|
+
export interface SchemaBuilderResult {
|
|
37
|
+
/** The AST expression for the schema (e.g., z.object({ id: z.string() })) */
|
|
38
|
+
readonly ast: n.Expression;
|
|
39
|
+
/** Import needed for the schema library */
|
|
40
|
+
readonly importSpec: SchemaImportSpec;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Schema builder service interface.
|
|
44
|
+
*
|
|
45
|
+
* Implemented by schema plugins (zod, arktype, valibot).
|
|
46
|
+
* Consumed by HTTP plugins (http-elysia, http-hono).
|
|
47
|
+
*/
|
|
48
|
+
export interface SchemaBuilder {
|
|
49
|
+
/**
|
|
50
|
+
* Build a schema for path/query parameters.
|
|
51
|
+
*
|
|
52
|
+
* @param request - What to build and from what params
|
|
53
|
+
* @returns AST expression and import spec, or undefined if cannot build
|
|
54
|
+
*/
|
|
55
|
+
readonly build: (request: SchemaBuilderRequest) => SchemaBuilderResult | undefined;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Service kind for schema-builder.
|
|
59
|
+
*/
|
|
60
|
+
export declare const SCHEMA_BUILDER_KIND: "schema-builder";
|
|
61
|
+
//# sourceMappingURL=schema-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.d.ts","sourceRoot":"","sources":["../../../src/ir/extensions/schema-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAA;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAA;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,mBAAmB,GAAG,SAAS,CAAA;CACnF;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.js","sourceRoot":"","sources":["../../../src/ir/extensions/schema-builder.ts"],"names":[],"mappings":"AA6DA;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAyB,CAAA"}
|
package/dist/lib/conjure.d.ts
CHANGED
|
@@ -224,6 +224,16 @@ export declare const exp: {
|
|
|
224
224
|
* Useful for exporting the inferred type alongside a schema constant.
|
|
225
225
|
*/
|
|
226
226
|
readonly type: (name: string, ctx: SymbolContext, type: n.TSType) => SymbolStatement;
|
|
227
|
+
/**
|
|
228
|
+
* Export TypeScript enum declaration: `export enum Name { A = 'a', B = 'b' }`
|
|
229
|
+
*
|
|
230
|
+
* Member names are normalized: uppercase with non-alphanumeric chars replaced by underscore.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* exp.tsEnum("Status", { capability: "types", entity: "Status" }, ["active", "pending"])
|
|
234
|
+
* // export enum Status { ACTIVE = "active", PENDING = "pending" }
|
|
235
|
+
*/
|
|
236
|
+
readonly tsEnum: (name: string, ctx: SymbolContext, values: readonly string[]) => SymbolStatement;
|
|
227
237
|
};
|
|
228
238
|
/**
|
|
229
239
|
* Create a SymbolProgram from statements, extracting symbol metadata.
|
|
@@ -240,6 +250,20 @@ export declare const conjure: {
|
|
|
240
250
|
readonly id: (name: string) => ChainBuilder;
|
|
241
251
|
/** Start a chain from any expression */
|
|
242
252
|
readonly chain: (expr: n.Expression) => ChainBuilder;
|
|
253
|
+
/**
|
|
254
|
+
* Quick method call: `callee.method(args)`
|
|
255
|
+
*
|
|
256
|
+
* More concise than `conjure.chain(callee).method(name, args).build()` for one-shot calls.
|
|
257
|
+
*
|
|
258
|
+
* @param callee - The object to call the method on (string or expression)
|
|
259
|
+
* @param method - The method name
|
|
260
|
+
* @param args - Optional arguments to pass
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* conjure.call("db", "selectFrom", [conjure.str("users")])
|
|
264
|
+
* // db.selectFrom("users")
|
|
265
|
+
*/
|
|
266
|
+
readonly call: (callee: n.Expression | string, method: string, args?: n.Expression[]) => n.Expression;
|
|
243
267
|
/** Start an object literal builder */
|
|
244
268
|
readonly obj: () => ObjBuilder;
|
|
245
269
|
/** Start an array literal builder */
|
|
@@ -303,7 +327,46 @@ export declare const conjure: {
|
|
|
303
327
|
readonly forOf: (varKind: "const" | "let", varName: string, iterable: n.Expression, body: n.Statement[]) => recast.types.namedTypes.ForOfStatement;
|
|
304
328
|
/** Block statement */
|
|
305
329
|
readonly block: (...statements: n.Statement[]) => recast.types.namedTypes.BlockStatement;
|
|
330
|
+
/** Async function declaration */
|
|
331
|
+
readonly asyncFn: (name: string, params: (n.Identifier | n.ObjectPattern)[], body: n.Statement[]) => n.FunctionDeclaration;
|
|
306
332
|
};
|
|
333
|
+
readonly export: {
|
|
334
|
+
/**
|
|
335
|
+
* Export const declaration: `export const name = init`
|
|
336
|
+
*/
|
|
337
|
+
readonly const: (name: string, init: n.Expression, type?: n.TSType) => n.ExportNamedDeclaration;
|
|
338
|
+
/**
|
|
339
|
+
* Export function declaration: `export function name(...) { ... }`
|
|
340
|
+
*/
|
|
341
|
+
readonly fn: (fn: n.FunctionDeclaration) => n.ExportNamedDeclaration;
|
|
342
|
+
/**
|
|
343
|
+
* Export default: `export default expr`
|
|
344
|
+
*/
|
|
345
|
+
readonly default: (expr: n.Expression) => n.ExportDefaultDeclaration;
|
|
346
|
+
/**
|
|
347
|
+
* Export named bindings: `export { a, b, c }`
|
|
348
|
+
* Also supports renaming: `export { a as b }`
|
|
349
|
+
*/
|
|
350
|
+
readonly named: (...names: (string | {
|
|
351
|
+
local: string;
|
|
352
|
+
exported: string;
|
|
353
|
+
})[]) => n.ExportNamedDeclaration;
|
|
354
|
+
/**
|
|
355
|
+
* Export type alias: `export type Name = Type`
|
|
356
|
+
*/
|
|
357
|
+
readonly type: (name: string, type: n.TSType) => n.ExportNamedDeclaration;
|
|
358
|
+
/**
|
|
359
|
+
* Export interface: `export interface Name { ... }`
|
|
360
|
+
*/
|
|
361
|
+
readonly interface: (name: string, properties: {
|
|
362
|
+
name: string;
|
|
363
|
+
type: n.TSType;
|
|
364
|
+
optional?: boolean;
|
|
365
|
+
readonly?: boolean;
|
|
366
|
+
}[]) => n.ExportNamedDeclaration;
|
|
367
|
+
};
|
|
368
|
+
/** Async function declaration */
|
|
369
|
+
readonly asyncFn: (name: string, params: (n.Identifier | n.ObjectPattern)[], body: n.Statement[]) => n.FunctionDeclaration;
|
|
307
370
|
readonly ts: {
|
|
308
371
|
readonly string: () => recast.types.namedTypes.TSStringKeyword;
|
|
309
372
|
readonly number: () => recast.types.namedTypes.TSNumberKeyword;
|
|
@@ -370,6 +433,34 @@ export declare const conjure: {
|
|
|
370
433
|
}[]) => recast.types.namedTypes.TSTypeLiteral;
|
|
371
434
|
/** Indexed access type: `T["key"]` or `T[K]` */
|
|
372
435
|
readonly indexedAccess: (objectType: n.TSType, indexType: n.TSType) => recast.types.namedTypes.TSIndexedAccessType;
|
|
436
|
+
/** Make type nullable: `T | null` */
|
|
437
|
+
readonly nullable: (type: n.TSType) => n.TSType;
|
|
438
|
+
/** Wrap type in array: `T[]` */
|
|
439
|
+
readonly asArray: (type: n.TSType) => n.TSType;
|
|
440
|
+
/**
|
|
441
|
+
* Apply modifiers to a type.
|
|
442
|
+
* Order: array first, then nullable (so `T[] | null`, not `(T | null)[]`)
|
|
443
|
+
*/
|
|
444
|
+
readonly withModifiers: (type: n.TSType, opts: {
|
|
445
|
+
nullable?: boolean;
|
|
446
|
+
array?: boolean;
|
|
447
|
+
}) => n.TSType;
|
|
448
|
+
/**
|
|
449
|
+
* Parse a type string into a TSType AST node.
|
|
450
|
+
*
|
|
451
|
+
* Handles:
|
|
452
|
+
* - Primitives: "string", "number", "boolean", "bigint", "unknown", "void", "null"
|
|
453
|
+
* - Built-ins: "Date", "Buffer"
|
|
454
|
+
* - Array suffix: "string[]", "MyType[]"
|
|
455
|
+
* - References: anything else becomes `ts.ref(typeName)`
|
|
456
|
+
*
|
|
457
|
+
* @example
|
|
458
|
+
* ts.fromString("string") // TSStringKeyword
|
|
459
|
+
* ts.fromString("Date") // TSTypeReference to "Date"
|
|
460
|
+
* ts.fromString("string[]") // TSArrayType(TSStringKeyword)
|
|
461
|
+
* ts.fromString("User") // TSTypeReference to "User"
|
|
462
|
+
*/
|
|
463
|
+
readonly fromString: (typeName: string) => n.TSType;
|
|
373
464
|
};
|
|
374
465
|
readonly param: {
|
|
375
466
|
/**
|
|
@@ -422,6 +513,16 @@ export declare const conjure: {
|
|
|
422
513
|
* Useful for exporting the inferred type alongside a schema constant.
|
|
423
514
|
*/
|
|
424
515
|
readonly type: (name: string, ctx: SymbolContext, type: n.TSType) => SymbolStatement;
|
|
516
|
+
/**
|
|
517
|
+
* Export TypeScript enum declaration: `export enum Name { A = 'a', B = 'b' }`
|
|
518
|
+
*
|
|
519
|
+
* Member names are normalized: uppercase with non-alphanumeric chars replaced by underscore.
|
|
520
|
+
*
|
|
521
|
+
* @example
|
|
522
|
+
* exp.tsEnum("Status", { capability: "types", entity: "Status" }, ["active", "pending"])
|
|
523
|
+
* // export enum Status { ACTIVE = "active", PENDING = "pending" }
|
|
524
|
+
*/
|
|
525
|
+
readonly tsEnum: (name: string, ctx: SymbolContext, values: readonly string[]) => SymbolStatement;
|
|
425
526
|
};
|
|
426
527
|
/** Await expression */
|
|
427
528
|
readonly await: (expr: n.Expression) => recast.types.namedTypes.AwaitExpression;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conjure.d.ts","sourceRoot":"","sources":["../../src/lib/conjure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,MAAM,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"conjure.d.ts","sourceRoot":"","sources":["../../src/lib/conjure.ts"],"names":[],"mappings":"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"}
|