@danielfgray/pg-sourcerer 0.1.7 → 0.1.9
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 +33 -62
- 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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- 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 +7 -0
- package/dist/plugins/kysely-queries.d.ts.map +1 -1
- package/dist/plugins/kysely-queries.js +175 -74
- package/dist/plugins/kysely-queries.js.map +1 -1
- package/dist/plugins/sql-queries.d.ts +4 -0
- package/dist/plugins/sql-queries.d.ts.map +1 -1
- package/dist/plugins/sql-queries.js +81 -16
- 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/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 +4 -3
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Users configure with simple string→string functions that compose naturally.
|
|
6
6
|
*/
|
|
7
7
|
import { Context, Layer, String as Str } from "effect";
|
|
8
|
+
import pluralize from "pluralize-esm";
|
|
8
9
|
// ============================================================================
|
|
9
10
|
// Reserved Words
|
|
10
11
|
// ============================================================================
|
|
@@ -23,42 +24,6 @@ const RESERVED_WORDS = new Set([
|
|
|
23
24
|
// ============================================================================
|
|
24
25
|
// Inflection Helper Functions
|
|
25
26
|
// ============================================================================
|
|
26
|
-
/**
|
|
27
|
-
* Simple pluralization (naive, covers common cases)
|
|
28
|
-
*/
|
|
29
|
-
const pluralize = (word) => {
|
|
30
|
-
if (word.endsWith("s") ||
|
|
31
|
-
word.endsWith("x") ||
|
|
32
|
-
word.endsWith("z") ||
|
|
33
|
-
word.endsWith("ch") ||
|
|
34
|
-
word.endsWith("sh")) {
|
|
35
|
-
return word + "es";
|
|
36
|
-
}
|
|
37
|
-
if (word.endsWith("y") && !/[aeiou]y$/i.test(word)) {
|
|
38
|
-
return word.slice(0, -1) + "ies";
|
|
39
|
-
}
|
|
40
|
-
return word + "s";
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Simple singularization (naive, covers common cases)
|
|
44
|
-
*/
|
|
45
|
-
const singularize = (word) => {
|
|
46
|
-
if (word.endsWith("ies") && word.length > 3) {
|
|
47
|
-
return word.slice(0, -3) + "y";
|
|
48
|
-
}
|
|
49
|
-
if (word.endsWith("es") &&
|
|
50
|
-
(word.endsWith("sses") ||
|
|
51
|
-
word.endsWith("xes") ||
|
|
52
|
-
word.endsWith("zes") ||
|
|
53
|
-
word.endsWith("ches") ||
|
|
54
|
-
word.endsWith("shes"))) {
|
|
55
|
-
return word.slice(0, -2);
|
|
56
|
-
}
|
|
57
|
-
if (word.endsWith("s") && !word.endsWith("ss") && word.length > 1) {
|
|
58
|
-
return word.slice(0, -1);
|
|
59
|
-
}
|
|
60
|
-
return word;
|
|
61
|
-
};
|
|
62
27
|
/**
|
|
63
28
|
* Inflection helper functions for use in configuration.
|
|
64
29
|
*
|
|
@@ -83,9 +48,9 @@ export const inflect = {
|
|
|
83
48
|
/** Convert camelCase to snake_case */
|
|
84
49
|
snakeCase: Str.camelToSnake,
|
|
85
50
|
/** Singularize a word (users → user) */
|
|
86
|
-
singularize,
|
|
51
|
+
singularize: pluralize.singular,
|
|
87
52
|
/** Pluralize a word (user → users) */
|
|
88
|
-
pluralize,
|
|
53
|
+
pluralize: pluralize.plural,
|
|
89
54
|
/** Capitalize first letter */
|
|
90
55
|
capitalize: Str.capitalize,
|
|
91
56
|
/** Uncapitalize first letter */
|
|
@@ -99,11 +64,30 @@ export const inflect = {
|
|
|
99
64
|
export class Inflection extends Context.Tag("Inflection")() {
|
|
100
65
|
}
|
|
101
66
|
// ============================================================================
|
|
102
|
-
// Default Inflection
|
|
67
|
+
// Default Inflection Transforms
|
|
103
68
|
// ============================================================================
|
|
104
69
|
/**
|
|
105
|
-
* Default inflection
|
|
106
|
-
*
|
|
70
|
+
* Default inflection transforms - applies common JS/TS naming conventions:
|
|
71
|
+
* - Entity names: singularize + PascalCase (users → User)
|
|
72
|
+
* - Field names: identity (preserved as snake_case to match DB)
|
|
73
|
+
* - Enum names: PascalCase (user_status → UserStatus)
|
|
74
|
+
* - Shape suffixes: capitalize (row → Row)
|
|
75
|
+
* - Relation names: camelCase
|
|
76
|
+
*
|
|
77
|
+
* Note: Field names are NOT transformed to camelCase by default because
|
|
78
|
+
* the generated types would not match what the database actually returns.
|
|
79
|
+
* If you use a Kysely plugin that transforms column names, you can override
|
|
80
|
+
* fieldName in your config.
|
|
81
|
+
*/
|
|
82
|
+
export const defaultTransforms = {
|
|
83
|
+
entityName: (name) => inflect.pascalCase(inflect.singularize(name)),
|
|
84
|
+
// fieldName: identity (default) - preserves snake_case from database
|
|
85
|
+
enumName: inflect.pascalCase,
|
|
86
|
+
shapeSuffix: inflect.capitalize,
|
|
87
|
+
relationName: inflect.camelCase,
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Default inflection implementation using standard JS/TS naming conventions.
|
|
107
91
|
*/
|
|
108
92
|
export const defaultInflection = {
|
|
109
93
|
// Primitive transforms (always available)
|
|
@@ -112,14 +96,14 @@ export const defaultInflection = {
|
|
|
112
96
|
pluralize: inflect.pluralize,
|
|
113
97
|
singularize: inflect.singularize,
|
|
114
98
|
safeIdentifier: (text) => (RESERVED_WORDS.has(text) ? text + "_" : text),
|
|
115
|
-
// Configurable transforms (default to
|
|
116
|
-
entityName: (pgClass, tags) => tags.name ?? pgClass.relname,
|
|
117
|
-
shapeName: (entityName, kind) => kind === "row" ? entityName : entityName + kind,
|
|
118
|
-
fieldName: (pgAttribute, tags) => tags.name ?? pgAttribute.attname,
|
|
119
|
-
enumName: (pgType, tags) => tags.name ?? pgType.typname,
|
|
120
|
-
enumValueName: (value) => value,
|
|
121
|
-
relationName: (name) => name,
|
|
122
|
-
functionName: (pgProc, tags) => tags.name ?? `${pgProc.proname}_${pgProc.pronargs}
|
|
99
|
+
// Configurable transforms (default to JS/TS conventions)
|
|
100
|
+
entityName: (pgClass, tags) => tags.name ?? (defaultTransforms.entityName ?? identity)(pgClass.relname),
|
|
101
|
+
shapeName: (entityName, kind) => kind === "row" ? entityName : entityName + (defaultTransforms.shapeSuffix ?? identity)(kind),
|
|
102
|
+
fieldName: (pgAttribute, tags) => tags.name ?? (defaultTransforms.fieldName ?? identity)(pgAttribute.attname),
|
|
103
|
+
enumName: (pgType, tags) => tags.name ?? (defaultTransforms.enumName ?? identity)(pgType.typname),
|
|
104
|
+
enumValueName: (value) => (defaultTransforms.enumValue ?? identity)(value),
|
|
105
|
+
relationName: (name) => (defaultTransforms.relationName ?? identity)(name),
|
|
106
|
+
functionName: (pgProc, tags) => tags.name ?? (defaultTransforms.functionName ?? identity)(`${pgProc.proname}_${pgProc.pronargs}`),
|
|
123
107
|
};
|
|
124
108
|
// ============================================================================
|
|
125
109
|
// Factory Functions
|
|
@@ -127,42 +111,56 @@ export const defaultInflection = {
|
|
|
127
111
|
/** Identity function - returns input unchanged */
|
|
128
112
|
const identity = (s) => s;
|
|
129
113
|
/**
|
|
130
|
-
* Create a CoreInflection instance with optional configuration.
|
|
114
|
+
* Create a CoreInflection instance with optional configuration overrides.
|
|
131
115
|
*
|
|
116
|
+
* By default, applies standard JS/TS naming conventions (PascalCase entities,
|
|
117
|
+
* camelCase relations, etc.). User config is merged on top of defaults.
|
|
132
118
|
* Smart tags (@name) always take precedence over configured transforms.
|
|
133
119
|
*
|
|
134
120
|
* @example
|
|
135
121
|
* ```typescript
|
|
136
122
|
* import { inflect } from "pg-sourcerer"
|
|
137
123
|
*
|
|
138
|
-
* // Use defaults (
|
|
124
|
+
* // Use defaults (standard JS/TS conventions)
|
|
139
125
|
* const inflection = createInflection()
|
|
140
126
|
*
|
|
141
|
-
* //
|
|
127
|
+
* // Override specific transforms
|
|
128
|
+
* const inflection = createInflection({
|
|
129
|
+
* fieldName: inflect.camelCase, // Also camelCase fields
|
|
130
|
+
* })
|
|
131
|
+
*
|
|
132
|
+
* // Use identity (raw DB names) for everything
|
|
142
133
|
* const inflection = createInflection({
|
|
143
|
-
* entityName: (name) =>
|
|
144
|
-
* fieldName:
|
|
145
|
-
* enumName:
|
|
146
|
-
* shapeSuffix:
|
|
134
|
+
* entityName: (name) => name,
|
|
135
|
+
* fieldName: (name) => name,
|
|
136
|
+
* enumName: (name) => name,
|
|
137
|
+
* shapeSuffix: (name) => name,
|
|
138
|
+
* relationName: (name) => name,
|
|
147
139
|
* })
|
|
148
140
|
* ```
|
|
149
141
|
*/
|
|
150
142
|
export function createInflection(config) {
|
|
151
143
|
if (!config)
|
|
152
144
|
return defaultInflection;
|
|
153
|
-
|
|
154
|
-
const
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
const
|
|
145
|
+
// Primitive transforms (user can override singularize/pluralize)
|
|
146
|
+
const singularizeFn = config.singularize ?? inflect.singularize;
|
|
147
|
+
const pluralizeFn = config.pluralize ?? inflect.pluralize;
|
|
148
|
+
// Build entityName default using the configured singularize
|
|
149
|
+
const defaultEntityName = (name) => inflect.pascalCase(singularizeFn(name));
|
|
150
|
+
// Merge user config on top of defaults
|
|
151
|
+
const entityFn = config.entityName ?? defaultEntityName;
|
|
152
|
+
const fieldFn = config.fieldName ?? defaultTransforms.fieldName ?? identity;
|
|
153
|
+
const enumNameFn = config.enumName ?? defaultTransforms.enumName ?? identity;
|
|
154
|
+
const enumValueFn = config.enumValue ?? defaultTransforms.enumValue ?? identity;
|
|
155
|
+
const shapeSuffixFn = config.shapeSuffix ?? defaultTransforms.shapeSuffix ?? identity;
|
|
156
|
+
const relationFn = config.relationName ?? defaultTransforms.relationName ?? identity;
|
|
157
|
+
const functionFn = config.functionName ?? defaultTransforms.functionName ?? identity;
|
|
160
158
|
return {
|
|
161
|
-
// Primitive transforms
|
|
159
|
+
// Primitive transforms (configurable)
|
|
162
160
|
camelCase: defaultInflection.camelCase,
|
|
163
161
|
pascalCase: defaultInflection.pascalCase,
|
|
164
|
-
pluralize:
|
|
165
|
-
singularize:
|
|
162
|
+
pluralize: pluralizeFn,
|
|
163
|
+
singularize: singularizeFn,
|
|
166
164
|
safeIdentifier: defaultInflection.safeIdentifier,
|
|
167
165
|
// Configurable transforms (smart tags take precedence)
|
|
168
166
|
entityName: (pgClass, tags) => tags.name ?? entityFn(pgClass.relname),
|
|
@@ -175,19 +173,20 @@ export function createInflection(config) {
|
|
|
175
173
|
};
|
|
176
174
|
}
|
|
177
175
|
/**
|
|
178
|
-
* Create an Effect Layer that provides inflection with optional configuration.
|
|
176
|
+
* Create an Effect Layer that provides inflection with optional configuration overrides.
|
|
177
|
+
*
|
|
178
|
+
* By default, applies standard JS/TS naming conventions. User config is merged on top.
|
|
179
179
|
*
|
|
180
180
|
* @example
|
|
181
181
|
* ```typescript
|
|
182
182
|
* import { inflect } from "pg-sourcerer"
|
|
183
183
|
*
|
|
184
|
-
* // Default layer (
|
|
184
|
+
* // Default layer (standard JS/TS conventions)
|
|
185
185
|
* const layer = makeInflectionLayer()
|
|
186
186
|
*
|
|
187
|
-
* //
|
|
187
|
+
* // Override specific transforms
|
|
188
188
|
* const layer = makeInflectionLayer({
|
|
189
|
-
*
|
|
190
|
-
* fieldName: inflect.camelCase,
|
|
189
|
+
* fieldName: inflect.camelCase, // Also camelCase fields
|
|
191
190
|
* })
|
|
192
191
|
* ```
|
|
193
192
|
*/
|
|
@@ -197,25 +196,8 @@ export function makeInflectionLayer(config) {
|
|
|
197
196
|
// ============================================================================
|
|
198
197
|
// Convenience Exports
|
|
199
198
|
// ============================================================================
|
|
200
|
-
/** Default inflection layer (
|
|
199
|
+
/** Default inflection layer (standard JS/TS naming conventions) */
|
|
201
200
|
export const InflectionLive = makeInflectionLayer();
|
|
202
|
-
/**
|
|
203
|
-
* Classic inflection config - matches the "opinionated" defaults of many ORMs:
|
|
204
|
-
* - Entity names: singularize + PascalCase (users → User)
|
|
205
|
-
* - Field names: camelCase (created_at → createdAt)
|
|
206
|
-
* - Enum names: PascalCase (user_status → UserStatus)
|
|
207
|
-
* - Shape suffixes: capitalize (row → Row)
|
|
208
|
-
* - Relation names: camelCase
|
|
209
|
-
*/
|
|
210
|
-
export const classicInflectionConfig = {
|
|
211
|
-
entityName: (name) => inflect.pascalCase(inflect.singularize(name)),
|
|
212
|
-
fieldName: inflect.camelCase,
|
|
213
|
-
enumName: inflect.pascalCase,
|
|
214
|
-
shapeSuffix: inflect.capitalize,
|
|
215
|
-
relationName: inflect.camelCase,
|
|
216
|
-
};
|
|
217
|
-
/** Classic inflection layer - applies traditional ORM naming conventions */
|
|
218
|
-
export const ClassicInflectionLive = makeInflectionLayer(classicInflectionConfig);
|
|
219
201
|
// ============================================================================
|
|
220
202
|
// Inflection Composition
|
|
221
203
|
// ============================================================================
|
|
@@ -261,6 +243,8 @@ export function composeInflectionConfigs(pluginDefaults, userConfig) {
|
|
|
261
243
|
if (!userConfig)
|
|
262
244
|
return pluginDefaults;
|
|
263
245
|
return Object.fromEntries(Object.entries({
|
|
246
|
+
singularize: composeFns(pluginDefaults.singularize, userConfig.singularize),
|
|
247
|
+
pluralize: composeFns(pluginDefaults.pluralize, userConfig.pluralize),
|
|
264
248
|
entityName: composeFns(pluginDefaults.entityName, userConfig.entityName),
|
|
265
249
|
fieldName: composeFns(pluginDefaults.fieldName, userConfig.fieldName),
|
|
266
250
|
enumName: composeFns(pluginDefaults.enumName, userConfig.enumName),
|
|
@@ -283,6 +267,8 @@ export function composeInflectionConfigs(pluginDefaults, userConfig) {
|
|
|
283
267
|
export function composeInflection(baseInflection, pluginDefaults) {
|
|
284
268
|
if (!pluginDefaults)
|
|
285
269
|
return baseInflection;
|
|
270
|
+
const singularizeFn = pluginDefaults.singularize;
|
|
271
|
+
const pluralizeFn = pluginDefaults.pluralize;
|
|
286
272
|
const entityFn = pluginDefaults.entityName;
|
|
287
273
|
const fieldFn = pluginDefaults.fieldName;
|
|
288
274
|
const enumNameFn = pluginDefaults.enumName;
|
|
@@ -291,15 +277,22 @@ export function composeInflection(baseInflection, pluginDefaults) {
|
|
|
291
277
|
const relationFn = pluginDefaults.relationName;
|
|
292
278
|
const functionFn = pluginDefaults.functionName;
|
|
293
279
|
// If no transforms defined, return base unchanged
|
|
294
|
-
if (!entityFn && !fieldFn && !enumNameFn && !enumValueFn && !shapeSuffixFn && !relationFn && !functionFn) {
|
|
280
|
+
if (!singularizeFn && !pluralizeFn && !entityFn && !fieldFn && !enumNameFn && !enumValueFn && !shapeSuffixFn && !relationFn && !functionFn) {
|
|
295
281
|
return baseInflection;
|
|
296
282
|
}
|
|
283
|
+
// Compose primitives: plugin first, then base
|
|
284
|
+
const composedSingularize = singularizeFn
|
|
285
|
+
? (word) => baseInflection.singularize(singularizeFn(word))
|
|
286
|
+
: baseInflection.singularize;
|
|
287
|
+
const composedPluralize = pluralizeFn
|
|
288
|
+
? (word) => baseInflection.pluralize(pluralizeFn(word))
|
|
289
|
+
: baseInflection.pluralize;
|
|
297
290
|
return {
|
|
298
|
-
// Primitive transforms
|
|
291
|
+
// Primitive transforms (composed if plugin provides them)
|
|
299
292
|
camelCase: baseInflection.camelCase,
|
|
300
293
|
pascalCase: baseInflection.pascalCase,
|
|
301
|
-
pluralize:
|
|
302
|
-
singularize:
|
|
294
|
+
pluralize: composedPluralize,
|
|
295
|
+
singularize: composedSingularize,
|
|
303
296
|
safeIdentifier: baseInflection.safeIdentifier,
|
|
304
297
|
// Compose: plugin transforms first, then base transforms
|
|
305
298
|
entityName: (pgClass, tags) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inflection.js","sourceRoot":"","sources":["../../src/services/inflection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"inflection.js","sourceRoot":"","sources":["../../src/services/inflection.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,15 +104,15 @@ export type PluginServices = IR | Inflection | Emissions | Symbols | TypeHints |
|
|
|
104
104
|
* }
|
|
105
105
|
* ```
|
|
106
106
|
*/
|
|
107
|
-
export interface Plugin<TConfig = unknown> {
|
|
107
|
+
export interface Plugin<TConfig = unknown, TEncoded = TConfig> {
|
|
108
108
|
/** Unique plugin name */
|
|
109
109
|
readonly name: string;
|
|
110
110
|
/** Capabilities this plugin requires (must be provided by earlier plugins) */
|
|
111
111
|
readonly requires?: readonly CapabilityKey[];
|
|
112
112
|
/** Capabilities this plugin provides */
|
|
113
113
|
readonly provides: readonly CapabilityKey[];
|
|
114
|
-
/** Configuration schema (Effect Schema) - Schema<TConfig>
|
|
115
|
-
readonly configSchema: S.Schema<TConfig>;
|
|
114
|
+
/** Configuration schema (Effect Schema) - Schema<TConfig, Encoded> with TConfig as decoded type */
|
|
115
|
+
readonly configSchema: S.Schema<TConfig, TEncoded, never>;
|
|
116
116
|
/** Plugin-specific inflection for file and symbol naming */
|
|
117
117
|
readonly inflection: PluginInflection;
|
|
118
118
|
/**
|
|
@@ -153,10 +153,10 @@ export interface Plugin<TConfig = unknown> {
|
|
|
153
153
|
* The factory also exposes the underlying plugin for inspection:
|
|
154
154
|
* - `factory.plugin` - The Plugin object with name, provides, requires, etc.
|
|
155
155
|
*/
|
|
156
|
-
export interface PluginFactory<TConfig> {
|
|
157
|
-
(config
|
|
156
|
+
export interface PluginFactory<TConfig, TEncoded = TConfig> {
|
|
157
|
+
(config?: TEncoded): ConfiguredPlugin;
|
|
158
158
|
/** The underlying plugin definition */
|
|
159
|
-
readonly plugin: Plugin<TConfig>;
|
|
159
|
+
readonly plugin: Plugin<TConfig, TEncoded>;
|
|
160
160
|
}
|
|
161
161
|
/**
|
|
162
162
|
* A plugin with its validated configuration
|
|
@@ -231,15 +231,15 @@ export interface SimplePluginContext {
|
|
|
231
231
|
/**
|
|
232
232
|
* Definition for a simple plugin (no Effect knowledge required)
|
|
233
233
|
*/
|
|
234
|
-
export interface SimplePluginDef<TConfig = unknown> {
|
|
234
|
+
export interface SimplePluginDef<TConfig = unknown, TEncoded = TConfig> {
|
|
235
235
|
/** Unique plugin name */
|
|
236
236
|
readonly name: string;
|
|
237
237
|
/** Capabilities this plugin requires */
|
|
238
238
|
readonly requires?: readonly CapabilityKey[];
|
|
239
239
|
/** Capabilities this plugin provides */
|
|
240
240
|
readonly provides: readonly CapabilityKey[];
|
|
241
|
-
/** Configuration schema */
|
|
242
|
-
readonly configSchema: S.Schema<TConfig>;
|
|
241
|
+
/** Configuration schema - Type is the decoded config, Encoded can differ (e.g., with defaults) */
|
|
242
|
+
readonly configSchema: S.Schema<TConfig, TEncoded, never>;
|
|
243
243
|
/** Plugin-specific inflection for file and symbol naming */
|
|
244
244
|
readonly inflection: PluginInflection;
|
|
245
245
|
/**
|
|
@@ -282,5 +282,5 @@ export interface SimplePluginDef<TConfig = unknown> {
|
|
|
282
282
|
* ]
|
|
283
283
|
* ```
|
|
284
284
|
*/
|
|
285
|
-
export declare function definePlugin<TConfig>(def: SimplePluginDef<TConfig>): PluginFactory<TConfig>;
|
|
285
|
+
export declare function definePlugin<TConfig, TEncoded = TConfig>(def: SimplePluginDef<TConfig, TEncoded>): PluginFactory<TConfig, TEncoded>;
|
|
286
286
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/services/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/services/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/services/plugin.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Defines the Effect-native plugin interface where plugins are Effects
|
|
5
5
|
* that yield the services they need from context.
|
|
6
6
|
*/
|
|
7
|
-
import { Effect } from "effect";
|
|
7
|
+
import { Effect, Schema as S, ParseResult } from "effect";
|
|
8
8
|
import { PluginExecutionFailed } from "../errors.js";
|
|
9
9
|
import { createFileBuilder } from "./file-builder.js";
|
|
10
10
|
// Import service tags for yielding in definePlugin
|
|
@@ -49,6 +49,19 @@ export function definePlugin(def) {
|
|
|
49
49
|
configSchema: def.configSchema,
|
|
50
50
|
inflection: def.inflection,
|
|
51
51
|
run: (config) => Effect.gen(function* () {
|
|
52
|
+
// Apply schema defaults to config (supports direct run() calls in tests)
|
|
53
|
+
const validatedConfig = yield* S.decodeUnknown(def.configSchema)(config).pipe(Effect.mapError(parseError => {
|
|
54
|
+
const formatted = ParseResult.ArrayFormatter.formatErrorSync(parseError);
|
|
55
|
+
const errors = formatted.map(e => {
|
|
56
|
+
const path = e.path.length > 0 ? `${e.path.join(".")}: ` : "";
|
|
57
|
+
return `${path}${e.message}`;
|
|
58
|
+
});
|
|
59
|
+
return new PluginExecutionFailed({
|
|
60
|
+
message: `Invalid config for plugin "${def.name}": ${errors.join("; ")}`,
|
|
61
|
+
plugin: def.name,
|
|
62
|
+
cause: new Error(errors.join("; ")),
|
|
63
|
+
});
|
|
64
|
+
}));
|
|
52
65
|
// Yield all services from context
|
|
53
66
|
const ir = yield* IR;
|
|
54
67
|
const inflection = yield* Inflection;
|
|
@@ -95,7 +108,7 @@ export function definePlugin(def) {
|
|
|
95
108
|
};
|
|
96
109
|
// Call the user's run function, handling sync/async errors
|
|
97
110
|
const result = yield* Effect.try({
|
|
98
|
-
try: () => def.run(ctx,
|
|
111
|
+
try: () => def.run(ctx, validatedConfig),
|
|
99
112
|
catch: (error) => new PluginExecutionFailed({
|
|
100
113
|
message: `Plugin ${def.name} failed`,
|
|
101
114
|
plugin: def.name,
|
|
@@ -126,7 +139,7 @@ export function definePlugin(def) {
|
|
|
126
139
|
// Return the curried factory function with plugin attached for inspection
|
|
127
140
|
return Object.assign((config) => ({
|
|
128
141
|
plugin: finalPlugin,
|
|
129
|
-
config,
|
|
142
|
+
config: config ?? {},
|
|
130
143
|
}), { plugin: finalPlugin });
|
|
131
144
|
}
|
|
132
145
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/services/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/services/plugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@danielfgray/pg-sourcerer",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "PostgreSQL code generation framework with a plugin ecosystem",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"LICENSE"
|
|
25
25
|
],
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "tsc",
|
|
27
|
+
"build": "tsc && chmod +x dist/cli.js",
|
|
28
28
|
"build:watch": "tsc --watch",
|
|
29
29
|
"clean": "rm -rf dist",
|
|
30
30
|
"prepublishOnly": "bun run clean && bun run build",
|
|
@@ -53,14 +53,15 @@
|
|
|
53
53
|
"license": "MIT",
|
|
54
54
|
"author": "Daniel Gray",
|
|
55
55
|
"dependencies": {
|
|
56
|
+
"@danielfgray/pg-introspection": "1.0.0",
|
|
56
57
|
"@effect/cli": "^0.73.0",
|
|
57
58
|
"@effect/platform": "^0.94.1",
|
|
58
59
|
"@effect/platform-node": "^0.104.0",
|
|
59
60
|
"effect": "^3.19.14",
|
|
60
61
|
"lilconfig": "^3.1.3",
|
|
61
62
|
"pg": "^8.16.0",
|
|
63
|
+
"pluralize-esm": "^9.0.5",
|
|
62
64
|
"postgres": "^3.4.7",
|
|
63
|
-
"@danielfgray/pg-introspection": "1.0.0",
|
|
64
65
|
"recast": "^0.23.11"
|
|
65
66
|
},
|
|
66
67
|
"devDependencies": {
|