@danielfgray/pg-sourcerer 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/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +104 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +133 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +47 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +129 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +41 -0
- package/dist/errors.js.map +1 -0
- package/dist/generate.d.ts +75 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +183 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +4 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +229 -0
- package/dist/init.js.map +1 -0
- package/dist/ir/index.d.ts +7 -0
- package/dist/ir/index.d.ts.map +1 -0
- package/dist/ir/index.js +7 -0
- package/dist/ir/index.js.map +1 -0
- package/dist/ir/relation-graph.d.ts +113 -0
- package/dist/ir/relation-graph.d.ts.map +1 -0
- package/dist/ir/relation-graph.js +232 -0
- package/dist/ir/relation-graph.js.map +1 -0
- package/dist/ir/semantic-ir.d.ts +448 -0
- package/dist/ir/semantic-ir.d.ts.map +1 -0
- package/dist/ir/semantic-ir.js +138 -0
- package/dist/ir/semantic-ir.js.map +1 -0
- package/dist/ir/smart-tags.d.ts +24 -0
- package/dist/ir/smart-tags.d.ts.map +1 -0
- package/dist/ir/smart-tags.js +30 -0
- package/dist/ir/smart-tags.js.map +1 -0
- package/dist/lib/conjure.d.ts +431 -0
- package/dist/lib/conjure.d.ts.map +1 -0
- package/dist/lib/conjure.js +697 -0
- package/dist/lib/conjure.js.map +1 -0
- package/dist/lib/field-utils.d.ts +61 -0
- package/dist/lib/field-utils.d.ts.map +1 -0
- package/dist/lib/field-utils.js +132 -0
- package/dist/lib/field-utils.js.map +1 -0
- package/dist/lib/hex.d.ts +117 -0
- package/dist/lib/hex.d.ts.map +1 -0
- package/dist/lib/hex.js +185 -0
- package/dist/lib/hex.js.map +1 -0
- package/dist/plugins/arktype.d.ts +11 -0
- package/dist/plugins/arktype.d.ts.map +1 -0
- package/dist/plugins/arktype.js +207 -0
- package/dist/plugins/arktype.js.map +1 -0
- package/dist/plugins/effect-model.d.ts +10 -0
- package/dist/plugins/effect-model.d.ts.map +1 -0
- package/dist/plugins/effect-model.js +261 -0
- package/dist/plugins/effect-model.js.map +1 -0
- package/dist/plugins/kysely-queries.d.ts +7 -0
- package/dist/plugins/kysely-queries.d.ts.map +1 -0
- package/dist/plugins/kysely-queries.js +380 -0
- package/dist/plugins/kysely-queries.js.map +1 -0
- package/dist/plugins/sql-queries.d.ts +6 -0
- package/dist/plugins/sql-queries.d.ts.map +1 -0
- package/dist/plugins/sql-queries.js +249 -0
- package/dist/plugins/sql-queries.js.map +1 -0
- package/dist/plugins/types.d.ts +18 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +263 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/plugins/zod.d.ts +11 -0
- package/dist/plugins/zod.d.ts.map +1 -0
- package/dist/plugins/zod.js +180 -0
- package/dist/plugins/zod.js.map +1 -0
- package/dist/services/artifact-store.d.ts +55 -0
- package/dist/services/artifact-store.d.ts.map +1 -0
- package/dist/services/artifact-store.js +51 -0
- package/dist/services/artifact-store.js.map +1 -0
- package/dist/services/config-loader.d.ts +45 -0
- package/dist/services/config-loader.d.ts.map +1 -0
- package/dist/services/config-loader.js +113 -0
- package/dist/services/config-loader.js.map +1 -0
- package/dist/services/emissions.d.ts +89 -0
- package/dist/services/emissions.d.ts.map +1 -0
- package/dist/services/emissions.js +194 -0
- package/dist/services/emissions.js.map +1 -0
- package/dist/services/file-builder.d.ts +81 -0
- package/dist/services/file-builder.d.ts.map +1 -0
- package/dist/services/file-builder.js +112 -0
- package/dist/services/file-builder.js.map +1 -0
- package/dist/services/file-writer.d.ts +57 -0
- package/dist/services/file-writer.d.ts.map +1 -0
- package/dist/services/file-writer.js +76 -0
- package/dist/services/file-writer.js.map +1 -0
- package/dist/services/inflection.d.ts +227 -0
- package/dist/services/inflection.d.ts.map +1 -0
- package/dist/services/inflection.js +350 -0
- package/dist/services/inflection.js.map +1 -0
- package/dist/services/introspection.d.ts +46 -0
- package/dist/services/introspection.d.ts.map +1 -0
- package/dist/services/introspection.js +99 -0
- package/dist/services/introspection.js.map +1 -0
- package/dist/services/ir-builder.d.ts +46 -0
- package/dist/services/ir-builder.d.ts.map +1 -0
- package/dist/services/ir-builder.js +923 -0
- package/dist/services/ir-builder.js.map +1 -0
- package/dist/services/ir.d.ts +28 -0
- package/dist/services/ir.d.ts.map +1 -0
- package/dist/services/ir.js +25 -0
- package/dist/services/ir.js.map +1 -0
- package/dist/services/pg-types.d.ts +197 -0
- package/dist/services/pg-types.d.ts.map +1 -0
- package/dist/services/pg-types.js +274 -0
- package/dist/services/pg-types.js.map +1 -0
- package/dist/services/plugin-meta.d.ts +33 -0
- package/dist/services/plugin-meta.d.ts.map +1 -0
- package/dist/services/plugin-meta.js +24 -0
- package/dist/services/plugin-meta.js.map +1 -0
- package/dist/services/plugin-runner.d.ts +52 -0
- package/dist/services/plugin-runner.d.ts.map +1 -0
- package/dist/services/plugin-runner.js +182 -0
- package/dist/services/plugin-runner.js.map +1 -0
- package/dist/services/plugin.d.ts +286 -0
- package/dist/services/plugin.d.ts.map +1 -0
- package/dist/services/plugin.js +132 -0
- package/dist/services/plugin.js.map +1 -0
- package/dist/services/smart-tags-parser.d.ts +37 -0
- package/dist/services/smart-tags-parser.d.ts.map +1 -0
- package/dist/services/smart-tags-parser.js +79 -0
- package/dist/services/smart-tags-parser.js.map +1 -0
- package/dist/services/symbols.d.ts +85 -0
- package/dist/services/symbols.d.ts.map +1 -0
- package/dist/services/symbols.js +128 -0
- package/dist/services/symbols.js.map +1 -0
- package/dist/services/type-hints.d.ts +62 -0
- package/dist/services/type-hints.d.ts.map +1 -0
- package/dist/services/type-hints.js +117 -0
- package/dist/services/type-hints.js.map +1 -0
- package/dist/testing.d.ts +77 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +84 -0
- package/dist/testing.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conjure.js","sourceRoot":"","sources":["../../src/lib/conjure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { namedTypes as n } from "ast-types";
|
|
2
|
+
import type { Field, EnumEntity, ExtensionInfo } from "../ir/semantic-ir.js";
|
|
3
|
+
import { TsType } from "../services/pg-types.js";
|
|
4
|
+
import type { EnumLookupResult } from "../services/pg-types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Get the PostgreSQL type OID from a field's pg attribute
|
|
7
|
+
*/
|
|
8
|
+
export declare function getTypeOid(field: Field): number | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Check if a field's type is an enum
|
|
11
|
+
*/
|
|
12
|
+
export declare function isEnumType(field: Field): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Get the PostgreSQL type name from a field.
|
|
15
|
+
* For arrays, returns the element type name (not the array type like _int4).
|
|
16
|
+
*/
|
|
17
|
+
export declare function getPgTypeName(field: Field): string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Check if this field is a UUID type
|
|
20
|
+
*/
|
|
21
|
+
export declare function isUuidType(field: Field): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Check if this field is a date/timestamp type
|
|
24
|
+
*/
|
|
25
|
+
export declare function isDateType(field: Field): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Check if this field is a bigint type (int8)
|
|
28
|
+
*/
|
|
29
|
+
export declare function isBigIntType(field: Field): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Convert TsType enum to AST type node.
|
|
32
|
+
* Shared by plugins that generate TypeScript types.
|
|
33
|
+
*/
|
|
34
|
+
export declare function tsTypeToAst(tsType: TsType): n.TSType;
|
|
35
|
+
/**
|
|
36
|
+
* Result of resolving a field's type
|
|
37
|
+
*/
|
|
38
|
+
export interface ResolvedType {
|
|
39
|
+
/** The resolved TypeScript type */
|
|
40
|
+
tsType: TsType;
|
|
41
|
+
/** If resolved to an enum, the enum lookup result */
|
|
42
|
+
enumDef?: EnumLookupResult;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Resolve a field to its TypeScript type.
|
|
46
|
+
*
|
|
47
|
+
* Resolution order:
|
|
48
|
+
* 1. Enum type
|
|
49
|
+
* 2. OID-based mapping (built-in PostgreSQL types)
|
|
50
|
+
* 3. Domain base type mapping
|
|
51
|
+
* 4. Extension type mapping (e.g., citext, ltree)
|
|
52
|
+
* 5. Array element type mapping
|
|
53
|
+
* 6. Fallback to unknown
|
|
54
|
+
*
|
|
55
|
+
* Note: This returns the base type. Callers handle:
|
|
56
|
+
* - Array wrapping (field.isArray)
|
|
57
|
+
* - Nullability (field.nullable)
|
|
58
|
+
* - Optionality (field.optional)
|
|
59
|
+
*/
|
|
60
|
+
export declare function resolveFieldType(field: Field, enums: Iterable<EnumEntity>, extensions: readonly ExtensionInfo[]): ResolvedType;
|
|
61
|
+
//# sourceMappingURL=field-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-utils.d.ts","sourceRoot":"","sources":["../../src/lib/field-utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAIL,MAAM,EAEP,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAS/D;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAI3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGhD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAK9D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGlD;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAkBpD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC3B,UAAU,EAAE,SAAS,aAAa,EAAE,GACnC,YAAY,CAiFd"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field Utilities - Shared helpers for inspecting Field types
|
|
3
|
+
*
|
|
4
|
+
* These utilities extract type information from Field objects for use
|
|
5
|
+
* by code generation plugins. Each plugin transforms the resolved types
|
|
6
|
+
* into their specific output format (TypeScript types, Zod schemas, etc.)
|
|
7
|
+
*/
|
|
8
|
+
import { Option, pipe } from "effect";
|
|
9
|
+
import { defaultPgToTs, findEnumByPgName, getExtensionTypeMapping, TsType, PgTypeOid, } from "../services/pg-types.js";
|
|
10
|
+
import { conjure } from "./conjure.js";
|
|
11
|
+
const { ts } = conjure;
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Field Inspection - Basic type checks
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Get the PostgreSQL type OID from a field's pg attribute
|
|
17
|
+
*/
|
|
18
|
+
export function getTypeOid(field) {
|
|
19
|
+
const pgType = field.pgAttribute.getType();
|
|
20
|
+
if (!pgType?._id)
|
|
21
|
+
return undefined;
|
|
22
|
+
return Number(pgType._id);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Check if a field's type is an enum
|
|
26
|
+
*/
|
|
27
|
+
export function isEnumType(field) {
|
|
28
|
+
const pgType = field.pgAttribute.getType();
|
|
29
|
+
return pgType?.typtype === "e";
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the PostgreSQL type name from a field.
|
|
33
|
+
* For arrays, returns the element type name (not the array type like _int4).
|
|
34
|
+
*/
|
|
35
|
+
export function getPgTypeName(field) {
|
|
36
|
+
if (field.isArray && field.elementTypeName) {
|
|
37
|
+
return field.elementTypeName;
|
|
38
|
+
}
|
|
39
|
+
return field.pgAttribute.getType()?.typname;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Check if this field is a UUID type
|
|
43
|
+
*/
|
|
44
|
+
export function isUuidType(field) {
|
|
45
|
+
const oid = getTypeOid(field);
|
|
46
|
+
return oid === PgTypeOid.Uuid;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Check if this field is a date/timestamp type
|
|
50
|
+
*/
|
|
51
|
+
export function isDateType(field) {
|
|
52
|
+
const oid = getTypeOid(field);
|
|
53
|
+
return oid === PgTypeOid.Date || oid === PgTypeOid.Timestamp || oid === PgTypeOid.TimestampTz;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if this field is a bigint type (int8)
|
|
57
|
+
*/
|
|
58
|
+
export function isBigIntType(field) {
|
|
59
|
+
const oid = getTypeOid(field);
|
|
60
|
+
return oid === PgTypeOid.Int8;
|
|
61
|
+
}
|
|
62
|
+
// =============================================================================
|
|
63
|
+
// Type Resolution - Determine the TypeScript type for a field
|
|
64
|
+
// =============================================================================
|
|
65
|
+
/**
|
|
66
|
+
* Convert TsType enum to AST type node.
|
|
67
|
+
* Shared by plugins that generate TypeScript types.
|
|
68
|
+
*/
|
|
69
|
+
export function tsTypeToAst(tsType) {
|
|
70
|
+
switch (tsType) {
|
|
71
|
+
case TsType.String:
|
|
72
|
+
return ts.string();
|
|
73
|
+
case TsType.Number:
|
|
74
|
+
return ts.number();
|
|
75
|
+
case TsType.Boolean:
|
|
76
|
+
return ts.boolean();
|
|
77
|
+
case TsType.BigInt:
|
|
78
|
+
return ts.bigint();
|
|
79
|
+
case TsType.Date:
|
|
80
|
+
return ts.ref("Date");
|
|
81
|
+
case TsType.Buffer:
|
|
82
|
+
return ts.ref("Buffer");
|
|
83
|
+
case TsType.Unknown:
|
|
84
|
+
default:
|
|
85
|
+
return ts.unknown();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Resolve a field to its TypeScript type.
|
|
90
|
+
*
|
|
91
|
+
* Resolution order:
|
|
92
|
+
* 1. Enum type
|
|
93
|
+
* 2. OID-based mapping (built-in PostgreSQL types)
|
|
94
|
+
* 3. Domain base type mapping
|
|
95
|
+
* 4. Extension type mapping (e.g., citext, ltree)
|
|
96
|
+
* 5. Array element type mapping
|
|
97
|
+
* 6. Fallback to unknown
|
|
98
|
+
*
|
|
99
|
+
* Note: This returns the base type. Callers handle:
|
|
100
|
+
* - Array wrapping (field.isArray)
|
|
101
|
+
* - Nullability (field.nullable)
|
|
102
|
+
* - Optionality (field.optional)
|
|
103
|
+
*/
|
|
104
|
+
export function resolveFieldType(field, enums, extensions) {
|
|
105
|
+
const pgType = field.pgAttribute.getType();
|
|
106
|
+
// Helper to wrap TsType in ResolvedType
|
|
107
|
+
const fromTsType = (tsType) => ({ tsType });
|
|
108
|
+
// Try each resolution strategy in order, return first Some
|
|
109
|
+
return pipe(
|
|
110
|
+
// 1. Check for enum
|
|
111
|
+
Option.liftPredicate(field, isEnumType), Option.flatMap(() => Option.fromNullable(getPgTypeName(field))), Option.flatMap((pgTypeName) => findEnumByPgName(enums, pgTypeName)), Option.map((enumDef) => ({ tsType: TsType.Unknown, enumDef })),
|
|
112
|
+
// 2. Try OID-based mapping (built-in PostgreSQL types)
|
|
113
|
+
Option.orElse(() => pipe(Option.fromNullable(getTypeOid(field)), Option.flatMap(defaultPgToTs), Option.map(fromTsType))),
|
|
114
|
+
// 3. Try domain base type mapping
|
|
115
|
+
Option.orElse(() => pipe(Option.fromNullable(field.domainBaseType), Option.flatMap((d) => defaultPgToTs(d.typeOid)), Option.map(fromTsType))),
|
|
116
|
+
// 4. Try extension-based mapping for the direct type
|
|
117
|
+
Option.orElse(() => pipe(Option.fromNullable(pgType), Option.flatMap((t) => getExtensionTypeMapping(t.typname, String(t.typnamespace), extensions)), Option.map(fromTsType))),
|
|
118
|
+
// 4b. Try extension-based mapping for domain base types
|
|
119
|
+
Option.orElse(() => pipe(Option.fromNullable(field.domainBaseType), Option.flatMap((d) => getExtensionTypeMapping(d.typeName, d.namespaceOid, extensions)), Option.map(fromTsType))),
|
|
120
|
+
// 5. For arrays, try to resolve element type (enum first, then extension)
|
|
121
|
+
Option.orElse(() => pipe(Option.liftPredicate(field, (f) => f.isArray && !!f.elementTypeName), Option.flatMap((f) => {
|
|
122
|
+
// Check if element is an enum
|
|
123
|
+
const enumOpt = pipe(findEnumByPgName(enums, f.elementTypeName), Option.map((enumDef) => ({ tsType: TsType.Unknown, enumDef })));
|
|
124
|
+
if (Option.isSome(enumOpt))
|
|
125
|
+
return enumOpt;
|
|
126
|
+
// Try extension-based mapping for array element type
|
|
127
|
+
return pipe(Option.fromNullable(pgType?.typnamespace), Option.flatMap((ns) => getExtensionTypeMapping(f.elementTypeName, String(ns), extensions)), Option.map(fromTsType));
|
|
128
|
+
}))),
|
|
129
|
+
// 6. Fallback to unknown
|
|
130
|
+
Option.getOrElse(() => ({ tsType: TsType.Unknown })));
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=field-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-utils.js","sourceRoot":"","sources":["../../src/lib/field-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hex - SQL Query Building Primitives
|
|
3
|
+
*
|
|
4
|
+
* Provides AST builders for generating SQL query code in two styles:
|
|
5
|
+
* - "tag": Tagged template literals (postgres.js, @effect/sql style)
|
|
6
|
+
* - "string": Parameterized queries (node-postgres, mysql2 style)
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { hex } from "../lib/hex.js"
|
|
11
|
+
*
|
|
12
|
+
* // Tag style: sql<User[]>`select * from users where id = ${id}`
|
|
13
|
+
* const query = hex.query("tag", {
|
|
14
|
+
* templateParts: ["select * from users where id = ", ""],
|
|
15
|
+
* params: [b.identifier("id")],
|
|
16
|
+
* }, ts.array(ts.ref("User")))
|
|
17
|
+
*
|
|
18
|
+
* // String style: pool.query<User[]>("select * from users where id = $1", [id])
|
|
19
|
+
* const query = hex.query("string", { ... })
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import type { namedTypes as n } from "ast-types";
|
|
23
|
+
/**
|
|
24
|
+
* SQL query style:
|
|
25
|
+
* - "tag": Tagged template literals (e.g., postgres.js, @effect/sql)
|
|
26
|
+
* Generates: sql<Type[]>`select * from users where id = ${id}`
|
|
27
|
+
* - "string": Parameterized query strings (e.g., pg, mysql2, better-sqlite3)
|
|
28
|
+
* Generates: pool.query<Type[]>("select * from users where id = $1", [id])
|
|
29
|
+
*/
|
|
30
|
+
export type SqlStyle = "tag" | "string";
|
|
31
|
+
/**
|
|
32
|
+
* Query template parts and parameters.
|
|
33
|
+
*/
|
|
34
|
+
export interface QueryParts {
|
|
35
|
+
/** SQL template parts (for tag) or joined with $N placeholders (for string) */
|
|
36
|
+
readonly templateParts: readonly string[];
|
|
37
|
+
/** Parameter expressions to interpolate */
|
|
38
|
+
readonly params: readonly n.Expression[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Build a template literal AST node from parts and expressions.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* buildTemplateLiteral(["select * from users where id = ", ""], [idExpr])
|
|
45
|
+
* // `select * from users where id = ${id}`
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildTemplateLiteral(parts: readonly string[], exprs: readonly n.Expression[]): n.TemplateLiteral;
|
|
48
|
+
/**
|
|
49
|
+
* Build await expression for sql tagged template with optional type parameter.
|
|
50
|
+
*
|
|
51
|
+
* Generates: await sql<Type[]>`select * from users`
|
|
52
|
+
*/
|
|
53
|
+
export declare function buildAwaitSqlTag(sqlTemplate: n.TemplateLiteral, typeParam?: n.TSType): n.AwaitExpression;
|
|
54
|
+
/**
|
|
55
|
+
* Build await expression for pool.query() with parameterized query.
|
|
56
|
+
*
|
|
57
|
+
* Generates: await pool.query<Type>("SELECT ... WHERE id = $1", [id])
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildAwaitSqlString(sqlText: string, params: readonly n.Expression[], typeParam?: n.TSType): n.AwaitExpression;
|
|
60
|
+
/**
|
|
61
|
+
* Build a SQL query expression for the given style.
|
|
62
|
+
*
|
|
63
|
+
* For tag style: uses template literals with interpolated values
|
|
64
|
+
* For string style: uses parameterized queries with $1, $2, ... placeholders
|
|
65
|
+
*/
|
|
66
|
+
export declare function buildQuery(sqlStyle: SqlStyle, parts: QueryParts, typeParam?: n.TSType): n.AwaitExpression;
|
|
67
|
+
/**
|
|
68
|
+
* Build a variable declaration that extracts the first row from query result.
|
|
69
|
+
*
|
|
70
|
+
* tag style: const [result] = await sql<Type[]>`...`
|
|
71
|
+
* string style: const { rows: [result] } = await pool.query<Type>(...)
|
|
72
|
+
*/
|
|
73
|
+
export declare function buildFirstRowDecl(sqlStyle: SqlStyle, varName: string, queryExpr: n.AwaitExpression): n.VariableDeclaration;
|
|
74
|
+
/**
|
|
75
|
+
* Build a variable declaration that gets all rows from query result.
|
|
76
|
+
*
|
|
77
|
+
* tag style: const result = await sql<Type[]>`...` (returns array directly)
|
|
78
|
+
* string style: const { rows: result } = await pool.query<Type>(...)
|
|
79
|
+
*/
|
|
80
|
+
export declare function buildAllRowsDecl(sqlStyle: SqlStyle, varName: string, queryExpr: n.AwaitExpression): n.VariableDeclaration;
|
|
81
|
+
/**
|
|
82
|
+
* Build a return statement that returns query results.
|
|
83
|
+
*
|
|
84
|
+
* tag style: return await sql<Type[]>`...` (returns array directly)
|
|
85
|
+
* string style: extracts .rows and returns
|
|
86
|
+
*/
|
|
87
|
+
export declare function buildReturnQuery(sqlStyle: SqlStyle, parts: QueryParts, typeParam: n.TSType): n.Statement[];
|
|
88
|
+
/**
|
|
89
|
+
* Create an async function declaration with inferred return type.
|
|
90
|
+
*/
|
|
91
|
+
export declare function asyncFn(name: string, params: (n.Identifier | n.ObjectPattern)[], body: n.Statement[]): n.FunctionDeclaration;
|
|
92
|
+
/**
|
|
93
|
+
* Export a function declaration.
|
|
94
|
+
*/
|
|
95
|
+
export declare function exportFn(fn: n.FunctionDeclaration): n.Statement;
|
|
96
|
+
/**
|
|
97
|
+
* Hex - SQL Query Building Primitives
|
|
98
|
+
*
|
|
99
|
+
* A collection of AST builders for generating SQL query code.
|
|
100
|
+
*/
|
|
101
|
+
export declare const hex: {
|
|
102
|
+
readonly query: typeof buildQuery;
|
|
103
|
+
readonly templateLiteral: typeof buildTemplateLiteral;
|
|
104
|
+
readonly tag: {
|
|
105
|
+
readonly awaitSql: typeof buildAwaitSqlTag;
|
|
106
|
+
};
|
|
107
|
+
readonly string: {
|
|
108
|
+
readonly awaitSql: typeof buildAwaitSqlString;
|
|
109
|
+
};
|
|
110
|
+
readonly firstRowDecl: typeof buildFirstRowDecl;
|
|
111
|
+
readonly allRowsDecl: typeof buildAllRowsDecl;
|
|
112
|
+
readonly returnQuery: typeof buildReturnQuery;
|
|
113
|
+
readonly asyncFn: typeof asyncFn;
|
|
114
|
+
readonly exportFn: typeof exportFn;
|
|
115
|
+
};
|
|
116
|
+
export default hex;
|
|
117
|
+
//# sourceMappingURL=hex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../src/lib/hex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAA;AAUhD;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEvC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,CAAA;CACzC;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,GAC7B,CAAC,CAAC,eAAe,CAOnB;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,CAAC,CAAC,eAAe,EAC9B,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,GACnB,CAAC,CAAC,eAAe,CAUnB;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,EAC/B,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,GACnB,CAAC,CAAC,eAAe,CAkBnB;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,EACjB,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,GACnB,CAAC,CAAC,eAAe,CAWnB;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,CAAC,eAAe,GAC3B,CAAC,CAAC,mBAAmB,CAgBvB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,CAAC,eAAe,GAC3B,CAAC,CAAC,mBAAmB,CAcvB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,CAAC,CAAC,MAAM,GAClB,CAAC,CAAC,SAAS,EAAE,CAWf;AAMD;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,EAC1C,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,GAClB,CAAC,CAAC,mBAAmB,CAQvB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,SAAS,CAE/D;AAMD;;;;GAIG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;CAqBN,CAAA;AAEV,eAAe,GAAG,CAAA"}
|
package/dist/lib/hex.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { conjure, cast } from "./conjure.js";
|
|
2
|
+
const { ts, b } = conjure;
|
|
3
|
+
const { toExpr, toTSType } = cast;
|
|
4
|
+
// =============================================================================
|
|
5
|
+
// Template Literal Builders
|
|
6
|
+
// =============================================================================
|
|
7
|
+
/**
|
|
8
|
+
* Build a template literal AST node from parts and expressions.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* buildTemplateLiteral(["select * from users where id = ", ""], [idExpr])
|
|
12
|
+
* // `select * from users where id = ${id}`
|
|
13
|
+
*/
|
|
14
|
+
export function buildTemplateLiteral(parts, exprs) {
|
|
15
|
+
return b.templateLiteral(parts.map((raw, i) => b.templateElement({ raw, cooked: raw }, i === parts.length - 1)), exprs.map(toExpr));
|
|
16
|
+
}
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Tag Style (sql`...`)
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Build await expression for sql tagged template with optional type parameter.
|
|
22
|
+
*
|
|
23
|
+
* Generates: await sql<Type[]>`select * from users`
|
|
24
|
+
*/
|
|
25
|
+
export function buildAwaitSqlTag(sqlTemplate, typeParam) {
|
|
26
|
+
const sqlId = b.identifier("sql");
|
|
27
|
+
// If type parameter provided, wrap in TSInstantiationExpression: sql<Type>
|
|
28
|
+
const tag = typeParam
|
|
29
|
+
? b.tsInstantiationExpression(sqlId, b.tsTypeParameterInstantiation([toTSType(typeParam)]))
|
|
30
|
+
: sqlId;
|
|
31
|
+
return b.awaitExpression(b.taggedTemplateExpression(tag, sqlTemplate));
|
|
32
|
+
}
|
|
33
|
+
// =============================================================================
|
|
34
|
+
// String Style (pool.query(...))
|
|
35
|
+
// =============================================================================
|
|
36
|
+
/**
|
|
37
|
+
* Build await expression for pool.query() with parameterized query.
|
|
38
|
+
*
|
|
39
|
+
* Generates: await pool.query<Type>("SELECT ... WHERE id = $1", [id])
|
|
40
|
+
*/
|
|
41
|
+
export function buildAwaitSqlString(sqlText, params, typeParam) {
|
|
42
|
+
const poolQuery = b.memberExpression(b.identifier("pool"), b.identifier("query"));
|
|
43
|
+
// Add type parameter if provided: pool.query<Type>
|
|
44
|
+
const callee = typeParam
|
|
45
|
+
? b.tsInstantiationExpression(poolQuery, b.tsTypeParameterInstantiation([toTSType(typeParam)]))
|
|
46
|
+
: poolQuery;
|
|
47
|
+
// Build arguments: ('sql text', [param1, param2])
|
|
48
|
+
const args = [b.stringLiteral(sqlText)];
|
|
49
|
+
if (params.length > 0) {
|
|
50
|
+
args.push(b.arrayExpression(params.map(toExpr)));
|
|
51
|
+
}
|
|
52
|
+
return b.awaitExpression(b.callExpression(callee, args.map(toExpr)));
|
|
53
|
+
}
|
|
54
|
+
// =============================================================================
|
|
55
|
+
// Unified Query Builder
|
|
56
|
+
// =============================================================================
|
|
57
|
+
/**
|
|
58
|
+
* Build a SQL query expression for the given style.
|
|
59
|
+
*
|
|
60
|
+
* For tag style: uses template literals with interpolated values
|
|
61
|
+
* For string style: uses parameterized queries with $1, $2, ... placeholders
|
|
62
|
+
*/
|
|
63
|
+
export function buildQuery(sqlStyle, parts, typeParam) {
|
|
64
|
+
if (sqlStyle === "tag") {
|
|
65
|
+
const template = buildTemplateLiteral(parts.templateParts, parts.params);
|
|
66
|
+
return buildAwaitSqlTag(template, typeParam);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// For string style, join template parts with $1, $2, ... placeholders
|
|
70
|
+
const sqlText = parts.templateParts
|
|
71
|
+
.map((part, i) => (i === 0 ? part : `$${i}${part}`))
|
|
72
|
+
.join("");
|
|
73
|
+
return buildAwaitSqlString(sqlText, parts.params, typeParam);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// =============================================================================
|
|
77
|
+
// Result Extraction
|
|
78
|
+
// =============================================================================
|
|
79
|
+
/**
|
|
80
|
+
* Build a variable declaration that extracts the first row from query result.
|
|
81
|
+
*
|
|
82
|
+
* tag style: const [result] = await sql<Type[]>`...`
|
|
83
|
+
* string style: const { rows: [result] } = await pool.query<Type>(...)
|
|
84
|
+
*/
|
|
85
|
+
export function buildFirstRowDecl(sqlStyle, varName, queryExpr) {
|
|
86
|
+
if (sqlStyle === "tag") {
|
|
87
|
+
// const [result] = await sql`...`
|
|
88
|
+
return b.variableDeclaration("const", [
|
|
89
|
+
b.variableDeclarator(b.arrayPattern([b.identifier(varName)]), queryExpr),
|
|
90
|
+
]);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// const { rows: [result] } = await pool.query(...)
|
|
94
|
+
const rowsProp = b.objectProperty(b.identifier("rows"), b.arrayPattern([b.identifier(varName)]));
|
|
95
|
+
return b.variableDeclaration("const", [
|
|
96
|
+
b.variableDeclarator(b.objectPattern([rowsProp]), queryExpr),
|
|
97
|
+
]);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Build a variable declaration that gets all rows from query result.
|
|
102
|
+
*
|
|
103
|
+
* tag style: const result = await sql<Type[]>`...` (returns array directly)
|
|
104
|
+
* string style: const { rows: result } = await pool.query<Type>(...)
|
|
105
|
+
*/
|
|
106
|
+
export function buildAllRowsDecl(sqlStyle, varName, queryExpr) {
|
|
107
|
+
if (sqlStyle === "tag") {
|
|
108
|
+
// tag style returns array directly
|
|
109
|
+
return b.variableDeclaration("const", [
|
|
110
|
+
b.variableDeclarator(b.identifier(varName), queryExpr),
|
|
111
|
+
]);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// string style: const { rows } = await pool.query(...)
|
|
115
|
+
const rowsProp = b.objectProperty(b.identifier("rows"), b.identifier(varName));
|
|
116
|
+
rowsProp.shorthand = varName === "rows";
|
|
117
|
+
return b.variableDeclaration("const", [
|
|
118
|
+
b.variableDeclarator(b.objectPattern([rowsProp]), queryExpr),
|
|
119
|
+
]);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Build a return statement that returns query results.
|
|
124
|
+
*
|
|
125
|
+
* tag style: return await sql<Type[]>`...` (returns array directly)
|
|
126
|
+
* string style: extracts .rows and returns
|
|
127
|
+
*/
|
|
128
|
+
export function buildReturnQuery(sqlStyle, parts, typeParam) {
|
|
129
|
+
const queryExpr = buildQuery(sqlStyle, parts, typeParam);
|
|
130
|
+
if (sqlStyle === "tag") {
|
|
131
|
+
// tag style returns array directly
|
|
132
|
+
return [b.returnStatement(queryExpr)];
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// string style: const { rows } = await pool.query(...); return rows
|
|
136
|
+
const decl = buildAllRowsDecl(sqlStyle, "rows", queryExpr);
|
|
137
|
+
return [decl, b.returnStatement(b.identifier("rows"))];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// =============================================================================
|
|
141
|
+
// Function Builders
|
|
142
|
+
// =============================================================================
|
|
143
|
+
/**
|
|
144
|
+
* Create an async function declaration with inferred return type.
|
|
145
|
+
*/
|
|
146
|
+
export function asyncFn(name, params, body) {
|
|
147
|
+
const fn = b.functionDeclaration(b.identifier(name), params, b.blockStatement(body.map(cast.toStmt)));
|
|
148
|
+
fn.async = true;
|
|
149
|
+
return fn;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Export a function declaration.
|
|
153
|
+
*/
|
|
154
|
+
export function exportFn(fn) {
|
|
155
|
+
return b.exportNamedDeclaration(fn, []);
|
|
156
|
+
}
|
|
157
|
+
// =============================================================================
|
|
158
|
+
// Main API
|
|
159
|
+
// =============================================================================
|
|
160
|
+
/**
|
|
161
|
+
* Hex - SQL Query Building Primitives
|
|
162
|
+
*
|
|
163
|
+
* A collection of AST builders for generating SQL query code.
|
|
164
|
+
*/
|
|
165
|
+
export const hex = {
|
|
166
|
+
// Query building
|
|
167
|
+
query: buildQuery,
|
|
168
|
+
templateLiteral: buildTemplateLiteral,
|
|
169
|
+
// Style-specific
|
|
170
|
+
tag: {
|
|
171
|
+
awaitSql: buildAwaitSqlTag,
|
|
172
|
+
},
|
|
173
|
+
string: {
|
|
174
|
+
awaitSql: buildAwaitSqlString,
|
|
175
|
+
},
|
|
176
|
+
// Result extraction
|
|
177
|
+
firstRowDecl: buildFirstRowDecl,
|
|
178
|
+
allRowsDecl: buildAllRowsDecl,
|
|
179
|
+
returnQuery: buildReturnQuery,
|
|
180
|
+
// Function builders
|
|
181
|
+
asyncFn,
|
|
182
|
+
exportFn,
|
|
183
|
+
};
|
|
184
|
+
export default hex;
|
|
185
|
+
//# sourceMappingURL=hex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hex.js","sourceRoot":"","sources":["../../src/lib/hex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ArkType Plugin
|
|
3
|
+
*
|
|
4
|
+
* Generates ArkType schemas for each entity's shapes (base, Insert, Update)
|
|
5
|
+
* with inferred TypeScript types.
|
|
6
|
+
*/
|
|
7
|
+
export declare const arktypePlugin: import("../index.js").PluginFactory<{
|
|
8
|
+
readonly outputDir: string;
|
|
9
|
+
readonly exportTypes: boolean;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=arktype.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arktype.d.ts","sourceRoot":"","sources":["../../src/plugins/arktype.ts"],"names":[],"mappings":"AA8OA;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;EAoCxB,CAAC"}
|