@danielfgray/pg-sourcerer 0.1.8 → 0.1.10
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 +30 -105
- package/dist/cli.js.map +1 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +4 -8
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +4 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +207 -86
- package/dist/init.js.map +1 -1
- package/dist/lib/conjure.d.ts +15 -2
- package/dist/lib/conjure.d.ts.map +1 -1
- package/dist/lib/conjure.js +44 -3
- package/dist/lib/conjure.js.map +1 -1
- package/dist/lib/field-utils.js +5 -8
- package/dist/lib/field-utils.js.map +1 -1
- package/dist/plugins/arktype.d.ts +7 -0
- package/dist/plugins/arktype.d.ts.map +1 -1
- package/dist/plugins/arktype.js +219 -40
- package/dist/plugins/arktype.js.map +1 -1
- package/dist/plugins/effect-model.d.ts +8 -1
- package/dist/plugins/effect-model.d.ts.map +1 -1
- package/dist/plugins/effect-model.js +163 -15
- package/dist/plugins/effect-model.js.map +1 -1
- package/dist/plugins/kysely-queries.d.ts +60 -1
- package/dist/plugins/kysely-queries.d.ts.map +1 -1
- package/dist/plugins/kysely-queries.js +703 -123
- package/dist/plugins/kysely-queries.js.map +1 -1
- package/dist/plugins/kysely-types.d.ts +35 -0
- package/dist/plugins/kysely-types.d.ts.map +1 -0
- package/dist/plugins/kysely-types.js +601 -0
- package/dist/plugins/kysely-types.js.map +1 -0
- package/dist/plugins/sql-queries.d.ts +3 -1
- package/dist/plugins/sql-queries.d.ts.map +1 -1
- package/dist/plugins/sql-queries.js +82 -20
- package/dist/plugins/sql-queries.js.map +1 -1
- package/dist/plugins/types.d.ts +2 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/plugins/types.js +1 -1
- package/dist/plugins/types.js.map +1 -1
- package/dist/plugins/zod.d.ts +7 -0
- package/dist/plugins/zod.d.ts.map +1 -1
- package/dist/plugins/zod.js +169 -13
- package/dist/plugins/zod.js.map +1 -1
- package/dist/services/artifact-store.d.ts.map +1 -1
- package/dist/services/artifact-store.js +2 -5
- package/dist/services/artifact-store.js.map +1 -1
- package/dist/services/emissions.d.ts.map +1 -1
- package/dist/services/emissions.js +31 -23
- package/dist/services/emissions.js.map +1 -1
- package/dist/services/file-writer.d.ts +0 -4
- package/dist/services/file-writer.d.ts.map +1 -1
- package/dist/services/file-writer.js +3 -12
- package/dist/services/file-writer.js.map +1 -1
- package/dist/services/inflection.d.ts +51 -30
- package/dist/services/inflection.d.ts.map +1 -1
- package/dist/services/inflection.js +86 -93
- package/dist/services/inflection.js.map +1 -1
- package/dist/services/plugin.d.ts +10 -10
- package/dist/services/plugin.d.ts.map +1 -1
- package/dist/services/plugin.js +16 -3
- package/dist/services/plugin.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emissions.d.ts","sourceRoot":"","sources":["../../src/services/emissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"emissions.d.ts","sourceRoot":"","sources":["../../src/services/emissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,OAAO,EACP,MAAM,EACN,KAAK,EAKN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAC;AAOjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvE;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,KAC3B,IAAI,CAAC;IAEV;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7E;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,SAAS,gBAAgB,EAAE,CAAC;IAE5D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAEhG;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,cAAqD;CAAG;AAmKvF;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CA+HrD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,sCAAsD,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Supports both string content and AST nodes (serialized by the plugin runner).
|
|
6
6
|
* AST emissions to the same file are merged automatically.
|
|
7
7
|
*/
|
|
8
|
-
import { Array as Arr, Context, Effect, Layer, MutableHashMap, MutableHashSet, Option, pipe } from "effect";
|
|
8
|
+
import { Array as Arr, Context, Effect, Layer, MutableHashMap, MutableHashSet, Option, pipe, } from "effect";
|
|
9
9
|
import { EmitConflict } from "../errors.js";
|
|
10
10
|
/**
|
|
11
11
|
* EmissionBuffer service tag
|
|
@@ -28,8 +28,8 @@ function prependImports(ast, imports, forFile, symbols) {
|
|
|
28
28
|
return map;
|
|
29
29
|
const { source, named, types, defaultImport } = resolved;
|
|
30
30
|
const existing = map.get(source) ?? { named: new Set(), types: new Set() };
|
|
31
|
-
named.forEach(
|
|
32
|
-
types.forEach(
|
|
31
|
+
named.forEach(n => existing.named.add(n));
|
|
32
|
+
types.forEach(t => existing.types.add(t));
|
|
33
33
|
if (defaultImport)
|
|
34
34
|
existing.default = defaultImport;
|
|
35
35
|
map.set(source, existing);
|
|
@@ -40,14 +40,14 @@ function prependImports(ast, imports, forFile, symbols) {
|
|
|
40
40
|
// Value imports (default + named)
|
|
41
41
|
const valueSpecifiers = [
|
|
42
42
|
...(defaultImport ? [b.importDefaultSpecifier(b.identifier(defaultImport))] : []),
|
|
43
|
-
...pipe([...named], Arr.map(
|
|
43
|
+
...pipe([...named], Arr.map(name => b.importSpecifier(b.identifier(name), b.identifier(name)))),
|
|
44
44
|
];
|
|
45
45
|
if (valueSpecifiers.length > 0) {
|
|
46
46
|
result.push(b.importDeclaration(valueSpecifiers, b.stringLiteral(source)));
|
|
47
47
|
}
|
|
48
48
|
// Type imports as a separate type-only import declaration
|
|
49
49
|
if (types.size > 0) {
|
|
50
|
-
const typeSpecifiers = pipe([...types], Arr.map(
|
|
50
|
+
const typeSpecifiers = pipe([...types], Arr.map(name => b.importSpecifier(b.identifier(name), b.identifier(name))));
|
|
51
51
|
const typeImport = b.importDeclaration(typeSpecifiers, b.stringLiteral(source));
|
|
52
52
|
typeImport.importKind = "type";
|
|
53
53
|
result.push(typeImport);
|
|
@@ -86,9 +86,7 @@ function resolveImportRef(ref, forFile, symbols) {
|
|
|
86
86
|
named: ref.names ? [...ref.names] : [],
|
|
87
87
|
types: ref.types ? [...ref.types] : [],
|
|
88
88
|
};
|
|
89
|
-
return ref.default !== undefined
|
|
90
|
-
? { ...base, defaultImport: ref.default }
|
|
91
|
-
: base;
|
|
89
|
+
return ref.default !== undefined ? { ...base, defaultImport: ref.default } : base;
|
|
92
90
|
}
|
|
93
91
|
}
|
|
94
92
|
}
|
|
@@ -96,11 +94,14 @@ function resolveImportRef(ref, forFile, symbols) {
|
|
|
96
94
|
// AST Emission Merging (Pure Functions)
|
|
97
95
|
// =============================================================================
|
|
98
96
|
/** Merge two import arrays */
|
|
99
|
-
const mergeImports = (a, b) => [
|
|
97
|
+
const mergeImports = (a, b) => [
|
|
98
|
+
...(a ?? []),
|
|
99
|
+
...(b ?? []),
|
|
100
|
+
];
|
|
100
101
|
/** Merge two plugin attribution strings */
|
|
101
102
|
const mergePluginAttribution = (a, b) => `${a}, ${b}`;
|
|
102
103
|
/** Create an AST entry, only including optional fields when defined */
|
|
103
|
-
const makeAstEntry = (path, ast, plugin, header, imports) => pipe({ path, ast, plugin },
|
|
104
|
+
const makeAstEntry = (path, ast, plugin, header, imports) => pipe({ path, ast, plugin }, entry => (header !== undefined ? { ...entry, header } : entry), entry => (imports && imports.length > 0 ? { ...entry, imports } : entry));
|
|
104
105
|
/** Merge a new emission into an existing one (keeps first header) */
|
|
105
106
|
const mergeAstEntries = (existing, ast, plugin, _header, imports) => makeAstEntry(existing.path, b.program([...existing.ast.body, ...ast.body]), mergePluginAttribution(existing.plugin, plugin), existing.header, mergeImports(existing.imports, imports));
|
|
106
107
|
// =============================================================================
|
|
@@ -119,14 +120,14 @@ export function createEmissionBuffer() {
|
|
|
119
120
|
// Track plugin for conflict detection
|
|
120
121
|
MutableHashMap.modifyAt(stringEmitPlugins, path, Option.match({
|
|
121
122
|
onNone: () => Option.some(MutableHashSet.make(plugin)),
|
|
122
|
-
onSome:
|
|
123
|
+
onSome: set => Option.some(MutableHashSet.add(set, plugin)),
|
|
123
124
|
}));
|
|
124
125
|
MutableHashMap.set(emissions, path, { path, content, plugin });
|
|
125
126
|
},
|
|
126
127
|
emitAst: (path, ast, plugin, header, imports) => {
|
|
127
128
|
MutableHashMap.modifyAt(astEmissions, path, Option.match({
|
|
128
129
|
onNone: () => Option.some(makeAstEntry(path, ast, plugin, header, imports)),
|
|
129
|
-
onSome:
|
|
130
|
+
onSome: existing => Option.some(mergeAstEntries(existing, ast, plugin, header, imports)),
|
|
130
131
|
}));
|
|
131
132
|
},
|
|
132
133
|
appendEmit: (path, content, plugin) => {
|
|
@@ -134,11 +135,11 @@ export function createEmissionBuffer() {
|
|
|
134
135
|
onNone: () => {
|
|
135
136
|
MutableHashMap.modifyAt(stringEmitPlugins, path, Option.match({
|
|
136
137
|
onNone: () => Option.some(MutableHashSet.make(plugin)),
|
|
137
|
-
onSome:
|
|
138
|
+
onSome: set => Option.some(MutableHashSet.add(set, plugin)),
|
|
138
139
|
}));
|
|
139
140
|
MutableHashMap.set(emissions, path, { path, content, plugin });
|
|
140
141
|
},
|
|
141
|
-
onSome:
|
|
142
|
+
onSome: existing => {
|
|
142
143
|
if (existing.plugin === plugin) {
|
|
143
144
|
MutableHashMap.set(emissions, path, {
|
|
144
145
|
path,
|
|
@@ -150,22 +151,29 @@ export function createEmissionBuffer() {
|
|
|
150
151
|
// Track conflict for validation
|
|
151
152
|
MutableHashMap.modifyAt(stringEmitPlugins, path, Option.match({
|
|
152
153
|
onNone: () => Option.some(MutableHashSet.make(plugin)),
|
|
153
|
-
onSome:
|
|
154
|
+
onSome: set => Option.some(MutableHashSet.add(set, plugin)),
|
|
154
155
|
}));
|
|
155
156
|
}
|
|
156
|
-
}
|
|
157
|
+
},
|
|
157
158
|
}));
|
|
158
159
|
},
|
|
159
160
|
getAll: () => MutableHashMap.values(emissions),
|
|
160
161
|
getAstEmissions: () => MutableHashMap.values(astEmissions),
|
|
161
162
|
serializeAst: (serialize, symbols) => {
|
|
162
163
|
for (const entry of MutableHashMap.values(astEmissions)) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
164
|
+
// Generate import statements as code first
|
|
165
|
+
const importCode = entry.imports && entry.imports.length > 0
|
|
166
|
+
? serialize(prependImports(recast.types.builders.program([]), entry.imports, entry.path, symbols)) + "\n\n"
|
|
167
|
+
: "";
|
|
168
|
+
// Serialize the main AST body
|
|
169
|
+
const bodyCode = serialize(entry.ast);
|
|
170
|
+
// Order: imports → header → body
|
|
171
|
+
const content = importCode + (entry.header ? entry.header + bodyCode : bodyCode);
|
|
172
|
+
MutableHashMap.set(emissions, entry.path, {
|
|
173
|
+
path: entry.path,
|
|
174
|
+
content,
|
|
175
|
+
plugin: entry.plugin,
|
|
176
|
+
});
|
|
169
177
|
}
|
|
170
178
|
MutableHashMap.clear(astEmissions);
|
|
171
179
|
},
|
|
@@ -178,7 +186,7 @@ export function createEmissionBuffer() {
|
|
|
178
186
|
path,
|
|
179
187
|
plugins: [...plugins],
|
|
180
188
|
}));
|
|
181
|
-
}
|
|
189
|
+
},
|
|
182
190
|
})),
|
|
183
191
|
clear: () => {
|
|
184
192
|
MutableHashMap.clear(emissions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emissions.js","sourceRoot":"","sources":["../../src/services/emissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"emissions.js","sourceRoot":"","sources":["../../src/services/emissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,10 +41,6 @@ declare const FileWriterSvc_base: Context.TagClass<FileWriterSvc, "FileWriter",
|
|
|
41
41
|
*/
|
|
42
42
|
export declare class FileWriterSvc extends FileWriterSvc_base {
|
|
43
43
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Default generated file header
|
|
46
|
-
*/
|
|
47
|
-
export declare const defaultHeader: (timestamp?: Date) => string;
|
|
48
44
|
/**
|
|
49
45
|
* Create a file writer
|
|
50
46
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-writer.d.ts","sourceRoot":"","sources":["../../src/services/file-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAsB,MAAM,QAAQ,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CACjB,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,OAAO,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;CAC1F;;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;
|
|
1
|
+
{"version":3,"file":"file-writer.d.ts","sourceRoot":"","sources":["../../src/services/file-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAsB,MAAM,QAAQ,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CACjB,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,OAAO,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;CAC1F;;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AAYN;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAiE7C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,0CAAmD,CAAA"}
|
|
@@ -11,15 +11,6 @@ import { WriteError } from "../errors.js";
|
|
|
11
11
|
*/
|
|
12
12
|
export class FileWriterSvc extends Context.Tag("FileWriter")() {
|
|
13
13
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Default generated file header
|
|
16
|
-
*/
|
|
17
|
-
export const defaultHeader = (timestamp = new Date()) => `/**
|
|
18
|
-
* AUTO-GENERATED FILE - DO NOT EDIT
|
|
19
|
-
* Generated by pg-sourcerer at ${timestamp.toISOString()}
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
`;
|
|
23
14
|
/**
|
|
24
15
|
* Map a PlatformError to a WriteError
|
|
25
16
|
*/
|
|
@@ -36,7 +27,6 @@ export function createFileWriter() {
|
|
|
36
27
|
writeAll: (emissions, options) => Effect.gen(function* () {
|
|
37
28
|
const fs = yield* FileSystem.FileSystem;
|
|
38
29
|
const pathSvc = yield* Path.Path;
|
|
39
|
-
const header = options.header ?? defaultHeader();
|
|
40
30
|
const outputDir = options.outputDir;
|
|
41
31
|
// Collect unique directories that need to be created
|
|
42
32
|
const directories = pipe(emissions, Arr.map((e) => pathSvc.dirname(pathSvc.join(outputDir, e.path))), Arr.dedupe);
|
|
@@ -58,8 +48,9 @@ export function createFileWriter() {
|
|
|
58
48
|
// Write files
|
|
59
49
|
const results = yield* Effect.forEach(emissions, (entry) => {
|
|
60
50
|
const fullPath = pathSvc.join(outputDir, entry.path);
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
// Plugins control their own headers via .header() - no global header
|
|
52
|
+
const content = entry.content;
|
|
53
|
+
return fs.writeFileString(fullPath, content).pipe(Effect.map(() => ({
|
|
63
54
|
path: fullPath,
|
|
64
55
|
written: true,
|
|
65
56
|
})), Effect.catchAll((err) => Effect.fail(toWriteError(fullPath)(err))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-writer.js","sourceRoot":"","sources":["../../src/services/file-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,QAAQ,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAoCzC;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAGzD;CAAG;AAEN;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"file-writer.js","sourceRoot":"","sources":["../../src/services/file-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,9 +95,19 @@ export type TransformFn = (input: string) => string;
|
|
|
95
95
|
* ```
|
|
96
96
|
*/
|
|
97
97
|
export interface InflectionConfig {
|
|
98
|
+
/**
|
|
99
|
+
* Singularize a word (users → user).
|
|
100
|
+
* Default: pluralize-esm library
|
|
101
|
+
*/
|
|
102
|
+
readonly singularize?: TransformFn;
|
|
103
|
+
/**
|
|
104
|
+
* Pluralize a word (user → users).
|
|
105
|
+
* Default: pluralize-esm library
|
|
106
|
+
*/
|
|
107
|
+
readonly pluralize?: TransformFn;
|
|
98
108
|
/**
|
|
99
109
|
* Transform table/view name → entity name.
|
|
100
|
-
* Default:
|
|
110
|
+
* Default: singularize + PascalCase
|
|
101
111
|
*/
|
|
102
112
|
readonly entityName?: TransformFn;
|
|
103
113
|
/**
|
|
@@ -107,7 +117,7 @@ export interface InflectionConfig {
|
|
|
107
117
|
readonly fieldName?: TransformFn;
|
|
108
118
|
/**
|
|
109
119
|
* Transform PostgreSQL enum type name → TypeScript enum name.
|
|
110
|
-
* Default:
|
|
120
|
+
* Default: PascalCase
|
|
111
121
|
*/
|
|
112
122
|
readonly enumName?: TransformFn;
|
|
113
123
|
/**
|
|
@@ -117,12 +127,12 @@ export interface InflectionConfig {
|
|
|
117
127
|
readonly enumValue?: TransformFn;
|
|
118
128
|
/**
|
|
119
129
|
* Transform shape kind suffix.
|
|
120
|
-
* Default:
|
|
130
|
+
* Default: capitalize ("row", "insert", etc.)
|
|
121
131
|
*/
|
|
122
132
|
readonly shapeSuffix?: TransformFn;
|
|
123
133
|
/**
|
|
124
134
|
* Transform relation names.
|
|
125
|
-
* Default:
|
|
135
|
+
* Default: camelCase
|
|
126
136
|
*/
|
|
127
137
|
readonly relationName?: TransformFn;
|
|
128
138
|
/**
|
|
@@ -132,63 +142,74 @@ export interface InflectionConfig {
|
|
|
132
142
|
readonly functionName?: TransformFn;
|
|
133
143
|
}
|
|
134
144
|
/**
|
|
135
|
-
* Default inflection
|
|
136
|
-
*
|
|
145
|
+
* Default inflection transforms - applies common JS/TS naming conventions:
|
|
146
|
+
* - Entity names: singularize + PascalCase (users → User)
|
|
147
|
+
* - Field names: identity (preserved as snake_case to match DB)
|
|
148
|
+
* - Enum names: PascalCase (user_status → UserStatus)
|
|
149
|
+
* - Shape suffixes: capitalize (row → Row)
|
|
150
|
+
* - Relation names: camelCase
|
|
151
|
+
*
|
|
152
|
+
* Note: Field names are NOT transformed to camelCase by default because
|
|
153
|
+
* the generated types would not match what the database actually returns.
|
|
154
|
+
* If you use a Kysely plugin that transforms column names, you can override
|
|
155
|
+
* fieldName in your config.
|
|
156
|
+
*/
|
|
157
|
+
export declare const defaultTransforms: InflectionConfig;
|
|
158
|
+
/**
|
|
159
|
+
* Default inflection implementation using standard JS/TS naming conventions.
|
|
137
160
|
*/
|
|
138
161
|
export declare const defaultInflection: CoreInflection;
|
|
139
162
|
/**
|
|
140
|
-
* Create a CoreInflection instance with optional configuration.
|
|
163
|
+
* Create a CoreInflection instance with optional configuration overrides.
|
|
141
164
|
*
|
|
165
|
+
* By default, applies standard JS/TS naming conventions (PascalCase entities,
|
|
166
|
+
* camelCase relations, etc.). User config is merged on top of defaults.
|
|
142
167
|
* Smart tags (@name) always take precedence over configured transforms.
|
|
143
168
|
*
|
|
144
169
|
* @example
|
|
145
170
|
* ```typescript
|
|
146
171
|
* import { inflect } from "pg-sourcerer"
|
|
147
172
|
*
|
|
148
|
-
* // Use defaults (
|
|
173
|
+
* // Use defaults (standard JS/TS conventions)
|
|
149
174
|
* const inflection = createInflection()
|
|
150
175
|
*
|
|
151
|
-
* //
|
|
176
|
+
* // Override specific transforms
|
|
152
177
|
* const inflection = createInflection({
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
178
|
+
* fieldName: inflect.camelCase, // Also camelCase fields
|
|
179
|
+
* })
|
|
180
|
+
*
|
|
181
|
+
* // Use identity (raw DB names) for everything
|
|
182
|
+
* const inflection = createInflection({
|
|
183
|
+
* entityName: (name) => name,
|
|
184
|
+
* fieldName: (name) => name,
|
|
185
|
+
* enumName: (name) => name,
|
|
186
|
+
* shapeSuffix: (name) => name,
|
|
187
|
+
* relationName: (name) => name,
|
|
157
188
|
* })
|
|
158
189
|
* ```
|
|
159
190
|
*/
|
|
160
191
|
export declare function createInflection(config?: InflectionConfig): CoreInflection;
|
|
161
192
|
/**
|
|
162
|
-
* Create an Effect Layer that provides inflection with optional configuration.
|
|
193
|
+
* Create an Effect Layer that provides inflection with optional configuration overrides.
|
|
194
|
+
*
|
|
195
|
+
* By default, applies standard JS/TS naming conventions. User config is merged on top.
|
|
163
196
|
*
|
|
164
197
|
* @example
|
|
165
198
|
* ```typescript
|
|
166
199
|
* import { inflect } from "pg-sourcerer"
|
|
167
200
|
*
|
|
168
|
-
* // Default layer (
|
|
201
|
+
* // Default layer (standard JS/TS conventions)
|
|
169
202
|
* const layer = makeInflectionLayer()
|
|
170
203
|
*
|
|
171
|
-
* //
|
|
204
|
+
* // Override specific transforms
|
|
172
205
|
* const layer = makeInflectionLayer({
|
|
173
|
-
*
|
|
174
|
-
* fieldName: inflect.camelCase,
|
|
206
|
+
* fieldName: inflect.camelCase, // Also camelCase fields
|
|
175
207
|
* })
|
|
176
208
|
* ```
|
|
177
209
|
*/
|
|
178
210
|
export declare function makeInflectionLayer(config?: InflectionConfig): Layer.Layer<Inflection>;
|
|
179
|
-
/** Default inflection layer (
|
|
211
|
+
/** Default inflection layer (standard JS/TS naming conventions) */
|
|
180
212
|
export declare const InflectionLive: Layer.Layer<Inflection, never, never>;
|
|
181
|
-
/**
|
|
182
|
-
* Classic inflection config - matches the "opinionated" defaults of many ORMs:
|
|
183
|
-
* - Entity names: singularize + PascalCase (users → User)
|
|
184
|
-
* - Field names: camelCase (created_at → createdAt)
|
|
185
|
-
* - Enum names: PascalCase (user_status → UserStatus)
|
|
186
|
-
* - Shape suffixes: capitalize (row → Row)
|
|
187
|
-
* - Relation names: camelCase
|
|
188
|
-
*/
|
|
189
|
-
export declare const classicInflectionConfig: InflectionConfig;
|
|
190
|
-
/** Classic inflection layer - applies traditional ORM naming conventions */
|
|
191
|
-
export declare const ClassicInflectionLive: Layer.Layer<Inflection, never, never>;
|
|
192
213
|
/**
|
|
193
214
|
* Compose plugin inflection defaults with user-configured inflection.
|
|
194
215
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inflection.d.ts","sourceRoot":"","sources":["../../src/services/inflection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAiB,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"inflection.d.ts","sourceRoot":"","sources":["../../src/services/inflection.ts"],"names":[],"mappings":"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"}
|