@zodmire/core 0.1.0 → 0.1.1
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/mod.d.mts +1 -1
- package/mod.mjs +35 -19
- package/package.json +2 -2
package/mod.d.mts
CHANGED
|
@@ -25,7 +25,7 @@ interface VendoredFileEntry {
|
|
|
25
25
|
}
|
|
26
26
|
/** The manifest of config files to vendor into end-user projects. */
|
|
27
27
|
declare const VENDORED_FILE_MANIFEST: readonly VendoredFileEntry[];
|
|
28
|
-
/** Rewrite
|
|
28
|
+
/** Rewrite `npm:zod@*` imports to bare `"zod"` for end-user consumption. */
|
|
29
29
|
declare function rewriteImports(content: string): string;
|
|
30
30
|
/** Apply import rewriting and prepend a version header. */
|
|
31
31
|
declare function prepareVendoredFile(content: string, generatorVersion: string): string;
|
package/mod.mjs
CHANGED
|
@@ -63,7 +63,7 @@ const VENDORED_FILE_MANIFEST = [
|
|
|
63
63
|
sourceRelativePath: "packages/config/composition_config.ts"
|
|
64
64
|
}
|
|
65
65
|
];
|
|
66
|
-
/** Rewrite
|
|
66
|
+
/** Rewrite `npm:zod@*` imports to bare `"zod"` for end-user consumption. */
|
|
67
67
|
function rewriteImports(content) {
|
|
68
68
|
return content.replace(/["']npm:zod@[^"']*["']/g, "\"zod\"");
|
|
69
69
|
}
|
|
@@ -2069,6 +2069,9 @@ function readModelPortBaseFileName(readModelName) {
|
|
|
2069
2069
|
function resolvedReadModelName$2(query) {
|
|
2070
2070
|
return query.readSide?.readModelName ?? query.readModelName ?? query.name;
|
|
2071
2071
|
}
|
|
2072
|
+
function queryOutputExportName$1(query) {
|
|
2073
|
+
return query.outputSchemaExportName?.trim() || void 0;
|
|
2074
|
+
}
|
|
2072
2075
|
function queryReadModelPortTypeName$1(query) {
|
|
2073
2076
|
return `${readModelContractName$3(resolvedReadModelName$2(query))}RepositoryPort`;
|
|
2074
2077
|
}
|
|
@@ -2130,7 +2133,7 @@ ${query.outputFields.map((f) => {
|
|
|
2130
2133
|
function createListQueryHandlerStub(_spec, query) {
|
|
2131
2134
|
const handlerName = `${pascalCase(query.name)}Handler`;
|
|
2132
2135
|
const queryTypeName = `${pascalCase(query.name)}Query`;
|
|
2133
|
-
const outputContractName = queryOutputContractName$
|
|
2136
|
+
const outputContractName = queryOutputContractName$1(query);
|
|
2134
2137
|
const readModelPortType = queryReadModelPortTypeName$1(query);
|
|
2135
2138
|
const readModelVariable = queryReadModelVariableName$1(query);
|
|
2136
2139
|
const readModelMethodName = queryReadModelMethodName$1(query);
|
|
@@ -2193,7 +2196,7 @@ ${(query.inputFields ?? []).map((f) => {
|
|
|
2193
2196
|
`;
|
|
2194
2197
|
}
|
|
2195
2198
|
function createViewContractStub(query) {
|
|
2196
|
-
return `export interface ${queryOutputContractName$
|
|
2199
|
+
return `export interface ${queryOutputContractName$1(query)} {
|
|
2197
2200
|
${query.outputFields.map((f) => {
|
|
2198
2201
|
const opt = f.optional ? "?" : "";
|
|
2199
2202
|
return ` readonly ${camelCase(f.name)}${opt}: ${formatFieldType(f)};`;
|
|
@@ -2201,11 +2204,14 @@ ${query.outputFields.map((f) => {
|
|
|
2201
2204
|
}
|
|
2202
2205
|
`;
|
|
2203
2206
|
}
|
|
2204
|
-
function queryOutputContractName$
|
|
2205
|
-
const
|
|
2206
|
-
|
|
2207
|
+
function queryOutputContractName$1(query) {
|
|
2208
|
+
const outputExportName = queryOutputExportName$1(query);
|
|
2209
|
+
if (outputExportName) return pascalCase(outputExportName);
|
|
2210
|
+
return readModelContractName$3(resolvedReadModelName$2(query));
|
|
2207
2211
|
}
|
|
2208
2212
|
function queryViewFileBase$2(query) {
|
|
2213
|
+
const outputExportName = queryOutputExportName$1(query);
|
|
2214
|
+
if (outputExportName) return kebabCase(outputExportName).replace(/-view$/, "");
|
|
2209
2215
|
return kebabCase(resolvedReadModelName$2(query)).replace(/-view$/, "");
|
|
2210
2216
|
}
|
|
2211
2217
|
function createCommandStub(spec, command) {
|
|
@@ -2457,7 +2463,7 @@ export interface ${queryName} {
|
|
|
2457
2463
|
}
|
|
2458
2464
|
function buildQueryHandlerBody(_spec, query) {
|
|
2459
2465
|
const queryTypeName = `${pascalCase(query.name)}Query`;
|
|
2460
|
-
const outputContractName = queryOutputContractName$
|
|
2466
|
+
const outputContractName = queryOutputContractName$1(query);
|
|
2461
2467
|
const readModelPortType = queryReadModelPortTypeName$1(query);
|
|
2462
2468
|
const handlerName = `${pascalCase(query.name)}Handler`;
|
|
2463
2469
|
const readModelVariable = queryReadModelVariableName$1(query);
|
|
@@ -2483,7 +2489,7 @@ export class ${handlerName} {
|
|
|
2483
2489
|
function createQueryHandlerStub(_spec, query) {
|
|
2484
2490
|
if (query.outputFields && query.outputFields.length > 0) return buildQueryHandlerBody(_spec, query);
|
|
2485
2491
|
const queryTypeName = `${pascalCase(query.name)}Query`;
|
|
2486
|
-
const outputContractName = queryOutputContractName$
|
|
2492
|
+
const outputContractName = queryOutputContractName$1(query);
|
|
2487
2493
|
const readModelPortType = queryReadModelPortTypeName$1(query);
|
|
2488
2494
|
const handlerName = `${pascalCase(query.name)}Handler`;
|
|
2489
2495
|
const readModelVariable = queryReadModelVariableName$1(query);
|
|
@@ -2557,7 +2563,7 @@ function createReadModelRepositoryPortStub(readModelName, queries) {
|
|
|
2557
2563
|
importLines.set("tx", `import type { Transaction } from "../../../../../lib/transaction.ts";`);
|
|
2558
2564
|
const queryMethodLines = queries.slice().sort((left, right) => left.name.localeCompare(right.name)).map((query) => {
|
|
2559
2565
|
const queryTypeName = `${pascalCase(query.name)}Query`;
|
|
2560
|
-
const outputContractName = queryOutputContractName$
|
|
2566
|
+
const outputContractName = queryOutputContractName$1(query);
|
|
2561
2567
|
const viewFileBase = queryViewFileBase$2(query);
|
|
2562
2568
|
const returnType = query.queryKind === "list" ? `PaginatedResult<${outputContractName}>` : outputContractName;
|
|
2563
2569
|
if (query.queryKind === "list") needsPaginatedResult = true;
|
|
@@ -2590,7 +2596,7 @@ function inputContractFileName(commandOrQueryName) {
|
|
|
2590
2596
|
return `${kebabCase(commandOrQueryName)}.input`;
|
|
2591
2597
|
}
|
|
2592
2598
|
function viewContractFileName(query) {
|
|
2593
|
-
return `${
|
|
2599
|
+
return `${queryViewFileBase$2(query)}.view`;
|
|
2594
2600
|
}
|
|
2595
2601
|
function createHandlerMapStub(spec) {
|
|
2596
2602
|
const contextPascal = pascalCase(spec.context.name);
|
|
@@ -2682,7 +2688,7 @@ function createPublishedReadBoundaryStub(contextSpec) {
|
|
|
2682
2688
|
const queryHandlerName = `${pascalCase(query.name)}Handler`;
|
|
2683
2689
|
const handlerVarName = `${camelCase(query.name)}Handler`;
|
|
2684
2690
|
const queryTypeName = `${pascalCase(query.name)}Query`;
|
|
2685
|
-
const outputContractName = queryOutputContractName$
|
|
2691
|
+
const outputContractName = queryOutputContractName$1(query);
|
|
2686
2692
|
const queryFileName = kebabCase(query.name);
|
|
2687
2693
|
const outputFileName = queryViewFileBase$2(query);
|
|
2688
2694
|
const readModelDepName = queryReadModelVariableName$1(query);
|
|
@@ -2916,10 +2922,17 @@ function readModelTableConstName(readModelName) {
|
|
|
2916
2922
|
function resolvedReadModelName$1(query) {
|
|
2917
2923
|
return query.readSide?.readModelName ?? query.readModelName ?? query.name;
|
|
2918
2924
|
}
|
|
2919
|
-
function
|
|
2925
|
+
function queryOutputExportName(query) {
|
|
2926
|
+
return query.outputSchemaExportName?.trim() || void 0;
|
|
2927
|
+
}
|
|
2928
|
+
function queryOutputContractName(query) {
|
|
2929
|
+
const outputExportName = queryOutputExportName(query);
|
|
2930
|
+
if (outputExportName) return pascalCase(outputExportName);
|
|
2920
2931
|
return readModelContractName$2(resolvedReadModelName$1(query));
|
|
2921
2932
|
}
|
|
2922
2933
|
function queryViewFileBase$1(query) {
|
|
2934
|
+
const outputExportName = queryOutputExportName(query);
|
|
2935
|
+
if (outputExportName) return kebabCase(outputExportName).replace(/-view$/, "");
|
|
2923
2936
|
return readModelRepositoryFileBase$1(resolvedReadModelName$1(query));
|
|
2924
2937
|
}
|
|
2925
2938
|
function queryReadModelMethodName(query) {
|
|
@@ -3926,7 +3939,7 @@ function createReadModelRepositorySkeleton(modulePath, readModelName, queries) {
|
|
|
3926
3939
|
const methodBlocks = queries.slice().sort((left, right) => left.name.localeCompare(right.name)).map((query) => {
|
|
3927
3940
|
const methodName = queryReadModelMethodName(query);
|
|
3928
3941
|
const queryTypeName = `${pascalCase(query.name)}Query`;
|
|
3929
|
-
const outputTypeName = queryOutputContractName
|
|
3942
|
+
const outputTypeName = queryOutputContractName(query);
|
|
3930
3943
|
const viewFileBase = queryViewFileBase$1(query);
|
|
3931
3944
|
importLines.set(`query:${queryTypeName}`, `import type { ${queryTypeName} } from "../../../../../core/contexts/${modulePath}/application/queries/${kebabCase(query.name)}.query.ts";`);
|
|
3932
3945
|
importLines.set(`view:${outputTypeName}`, `import type { ${outputTypeName} } from "../../../../../core/contexts/${modulePath}/application/contracts/${viewFileBase}.view.ts";`);
|
|
@@ -6106,10 +6119,14 @@ ${Object.entries(fields).map(([fieldName, expr]) => ` readonly ${camelCase(fiel
|
|
|
6106
6119
|
}`;
|
|
6107
6120
|
}
|
|
6108
6121
|
function sourceQueryViewTypeName(acl) {
|
|
6122
|
+
const outputExportName = acl.sourceQuery.outputSchemaExportName?.trim();
|
|
6123
|
+
if (outputExportName) return pascalCase(outputExportName);
|
|
6109
6124
|
const baseName = acl.sourceQuery.readModelName ? pascalCase(acl.sourceQuery.readModelName) : pascalCase(acl.sourceQuery.name);
|
|
6110
6125
|
return baseName.endsWith("View") ? baseName : `${baseName}View`;
|
|
6111
6126
|
}
|
|
6112
6127
|
function sourceQueryViewFileName(acl) {
|
|
6128
|
+
const outputExportName = acl.sourceQuery.outputSchemaExportName?.trim();
|
|
6129
|
+
if (outputExportName) return `${kebabCase(outputExportName).replace(/-view$/, "")}.view.ts`;
|
|
6113
6130
|
return `${(acl.sourceQuery.readModelName ? kebabCase(acl.sourceQuery.readModelName) : kebabCase(acl.sourceQuery.name)).replace(/-view$/, "")}.view.ts`;
|
|
6114
6131
|
}
|
|
6115
6132
|
function readResponseFieldType(acl, mapping) {
|
|
@@ -6563,23 +6580,22 @@ function uniqueQueriesByReadModel(queries) {
|
|
|
6563
6580
|
}
|
|
6564
6581
|
return [...queriesByReadModel.values()].sort((left, right) => resolvedReadModelName(left).localeCompare(resolvedReadModelName(right)));
|
|
6565
6582
|
}
|
|
6566
|
-
function queryOutputContractName(query) {
|
|
6567
|
-
return readModelContractName(resolvedReadModelName(query));
|
|
6568
|
-
}
|
|
6569
6583
|
function queryViewFileBase(query) {
|
|
6584
|
+
const outputExportName = query.outputSchemaExportName?.trim();
|
|
6585
|
+
if (outputExportName) return kebabCase(outputExportName).replace(/-view$/, "");
|
|
6570
6586
|
return readModelRepositoryFileBase(resolvedReadModelName(query));
|
|
6571
6587
|
}
|
|
6572
6588
|
function queryReadModelPortTypeName(query) {
|
|
6573
|
-
return `${
|
|
6589
|
+
return `${readModelContractName(resolvedReadModelName(query))}RepositoryPort`;
|
|
6574
6590
|
}
|
|
6575
6591
|
function queryReadModelVariableName(query) {
|
|
6576
6592
|
return camelCase(queryReadModelPortTypeName(query));
|
|
6577
6593
|
}
|
|
6578
6594
|
function queryReadModelRepositoryClassName(query) {
|
|
6579
|
-
return `Drizzle${
|
|
6595
|
+
return `Drizzle${readModelContractName(resolvedReadModelName(query))}Repository`;
|
|
6580
6596
|
}
|
|
6581
6597
|
function queryReadModelRepositoryAlias(contextSymbolStem, query) {
|
|
6582
|
-
return `${contextSymbolStem}${
|
|
6598
|
+
return `${contextSymbolStem}${readModelContractName(resolvedReadModelName(query))}Repository`;
|
|
6583
6599
|
}
|
|
6584
6600
|
function uniqueReadContexts(acls) {
|
|
6585
6601
|
const seen = /* @__PURE__ */ new Set();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zodmire/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./mod.mjs",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@zodmire/config": "^0.1.
|
|
20
|
+
"@zodmire/config": "^0.1.1",
|
|
21
21
|
"@traversable/zod": "^0.0.57",
|
|
22
22
|
"drizzle-kit": "^0.31.9",
|
|
23
23
|
"oxfmt": "^0.42.0",
|