Skip to content

Commit 8fed74d

Browse files
dmealingclaude
andcommitted
feat(codegen-ts): export template-codegen public API
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LuZWKnWzYGVnESijL7uuky
1 parent f4dc38a commit 8fed74d

2 files changed

Lines changed: 36 additions & 1 deletion

File tree

server/typescript/packages/codegen-ts/src/index.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,27 @@ export { runGen } from "./runner.js";
77
export type { RunGenOpts, RunGenResult } from "./runner.js";
88

99
export type { Generator, GenContext, EmittedFile, GeneratorFactory } from "./generator.js";
10-
export { perEntity, oncePerRun } from "./generator.js";
10+
export { perEntity, perPackage, perModel, oncePerRun } from "./generator.js";
11+
12+
// SP-1 declarative Mustache template-codegen — scope walks, neutral data dict,
13+
// output-pattern, and the JSON template-spec the CLI ports reuse.
14+
export { expandOutputPattern } from "./template-codegen/output-pattern.js";
15+
export {
16+
buildEntityTemplateData,
17+
buildPackageTemplateData,
18+
buildModelTemplateData,
19+
} from "./template-codegen/template-data.js";
20+
export type {
21+
FieldTemplateData,
22+
EntityTemplateData,
23+
IdentityTemplateData,
24+
RelationshipTemplateData,
25+
PackageTemplateData,
26+
ModelTemplateData,
27+
} from "./template-codegen/template-data.js";
28+
export { parseTemplateSpec, templateSpecToGenerators } from "./template-codegen/template-spec.js";
29+
export type { TemplateSpecEntry, TemplateSpecFile } from "./template-codegen/template-spec.js";
30+
export type { TemplateScope } from "./generators/template-generator.js";
1131

1232
// ADR-0021 D3 — stable-name generator registry + discoverability surface.
1333
export {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { describe, test, expect } from "bun:test";
2+
import * as api from "../../src/index.js";
3+
4+
describe("public exports", () => {
5+
test("scope helpers + template-codegen API are exported", () => {
6+
for (const name of [
7+
"perEntity", "perPackage", "perModel", "oncePerRun",
8+
"expandOutputPattern",
9+
"buildEntityTemplateData", "buildPackageTemplateData", "buildModelTemplateData",
10+
"parseTemplateSpec", "templateSpecToGenerators",
11+
]) {
12+
expect(typeof (api as Record<string, unknown>)[name]).toBe("function");
13+
}
14+
});
15+
});

0 commit comments

Comments
 (0)