joist-codegen 2.0.3-next.32 → 2.0.3-next.34
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/build/config.d.ts +8 -0
- package/build/config.d.ts.map +1 -1
- package/build/config.js +4 -0
- package/build/config.js.map +1 -1
- package/build/docs/cache.d.ts +14 -0
- package/build/docs/cache.d.ts.map +1 -0
- package/build/docs/cache.js +61 -0
- package/build/docs/cache.js.map +1 -0
- package/build/docs/cache.test.d.ts +2 -0
- package/build/docs/cache.test.d.ts.map +1 -0
- package/build/docs/cache.test.js +47 -0
- package/build/docs/cache.test.js.map +1 -0
- package/build/docs/generate-metadata-docs.d.ts +6 -0
- package/build/docs/generate-metadata-docs.d.ts.map +1 -0
- package/build/docs/generate-metadata-docs.js +36 -0
- package/build/docs/generate-metadata-docs.js.map +1 -0
- package/build/docs/index.d.ts +9 -0
- package/build/docs/index.d.ts.map +1 -0
- package/build/docs/index.js +90 -0
- package/build/docs/index.js.map +1 -0
- package/build/docs/index.test.d.ts +2 -0
- package/build/docs/index.test.d.ts.map +1 -0
- package/build/docs/index.test.js +89 -0
- package/build/docs/index.test.js.map +1 -0
- package/build/docs/markdown.d.ts +30 -0
- package/build/docs/markdown.d.ts.map +1 -0
- package/build/docs/markdown.js +201 -0
- package/build/docs/markdown.js.map +1 -0
- package/build/docs/markdown.test.d.ts +2 -0
- package/build/docs/markdown.test.d.ts.map +1 -0
- package/build/docs/markdown.test.js +240 -0
- package/build/docs/markdown.test.js.map +1 -0
- package/build/docs/parsing.d.ts +42 -0
- package/build/docs/parsing.d.ts.map +1 -0
- package/build/docs/parsing.js +109 -0
- package/build/docs/parsing.js.map +1 -0
- package/build/docs/parsing.test.d.ts +2 -0
- package/build/docs/parsing.test.d.ts.map +1 -0
- package/build/docs/parsing.test.js +190 -0
- package/build/docs/parsing.test.js.map +1 -0
- package/build/generate.d.ts.map +1 -1
- package/build/generate.js +9 -0
- package/build/generate.js.map +1 -1
- package/package.json +2 -2
package/build/config.d.ts
CHANGED
|
@@ -483,6 +483,10 @@ export declare const config: z.ZodObject<{
|
|
|
483
483
|
nonDeferredForeignKeys: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">, z.ZodLiteral<"ignore">]>>;
|
|
484
484
|
/** Enables esm output. */
|
|
485
485
|
esm: z.ZodOptional<z.ZodBoolean>;
|
|
486
|
+
/** Enables documentation syncing between .md files and JSDocs. */
|
|
487
|
+
docs: z.ZodOptional<z.ZodBoolean>;
|
|
488
|
+
/** Output a metadata-docs.ts file with entity/field documentation available at runtime. */
|
|
489
|
+
outputDocs: z.ZodOptional<z.ZodBoolean>;
|
|
486
490
|
/** Auto-set by probing the project's `tsconfig.json` file. */
|
|
487
491
|
allowImportingTsExtensions: z.ZodOptional<z.ZodBoolean>;
|
|
488
492
|
version: z.ZodDefault<z.ZodString>;
|
|
@@ -547,6 +551,8 @@ export declare const config: z.ZodObject<{
|
|
|
547
551
|
idType?: "number" | "tagged-string" | "untagged-string" | undefined;
|
|
548
552
|
nonDeferredForeignKeys?: "warn" | "error" | "ignore" | undefined;
|
|
549
553
|
esm?: boolean | undefined;
|
|
554
|
+
docs?: boolean | undefined;
|
|
555
|
+
outputDocs?: boolean | undefined;
|
|
550
556
|
allowImportingTsExtensions?: boolean | undefined;
|
|
551
557
|
schemas?: string[] | undefined;
|
|
552
558
|
}, {
|
|
@@ -607,6 +613,8 @@ export declare const config: z.ZodObject<{
|
|
|
607
613
|
idType?: "number" | "tagged-string" | "untagged-string" | undefined;
|
|
608
614
|
nonDeferredForeignKeys?: "warn" | "error" | "ignore" | undefined;
|
|
609
615
|
esm?: boolean | undefined;
|
|
616
|
+
docs?: boolean | undefined;
|
|
617
|
+
outputDocs?: boolean | undefined;
|
|
610
618
|
allowImportingTsExtensions?: boolean | undefined;
|
|
611
619
|
version?: string | undefined;
|
|
612
620
|
schemas?: string[] | undefined;
|
package/build/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBN,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,QAAA,MAAM,cAAc;;;;;;IAShB;;;;;OAKG;;IAEH,gFAAgF;;;;;;;;;;;;;;;;;;;;;;;;EAOzE,CAAC;AAEZ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAlBd;;;;;WAKG;;QAEH,gFAAgF;;;;;;;;;;;;;;;;;;;;;;;;;IAiBhF,wHAAwH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIjH,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,QAAA,MAAM,eAAe;IAEjB,+EAA+E;;IAE/E,oGAAoG;;;;;;;;EAG7F,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,MAAM;IAEf,mEAAmE;;IAEnE,uDAAuD;;IAEvD,+DAA+D;;IAE/D;;;;;;;;OAQG;;;YAzBH,+EAA+E;;YAE/E,oGAAoG;;;;;;;;;;YAFpG,+EAA+E;;YAE/E,oGAAoG;;;;;;;;;;YAFpG,+EAA+E;;YAE/E,oGAAoG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+BpG;;;;;OAKG;;;;;;;;IAEH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAlFH;;;;;eAKG;;YAEH,gFAAgF;;;;;;;;;;;;;;;;;;;;;;;;;QAiBhF,wHAAwH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgExH,mEAAmE;;IAEnE,uDAAuD;;IAEvD,0BAA0B;;IAE1B,8DAA8D;;;IAK9D,2DAA2D
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/config.js
CHANGED
|
@@ -142,6 +142,10 @@ exports.config = zod_1.z
|
|
|
142
142
|
nonDeferredForeignKeys: zod_1.z.optional(zod_1.z.union([zod_1.z.literal("error"), zod_1.z.literal("warn"), zod_1.z.literal("ignore")])),
|
|
143
143
|
/** Enables esm output. */
|
|
144
144
|
esm: zod_1.z.optional(zod_1.z.boolean()),
|
|
145
|
+
/** Enables documentation syncing between .md files and JSDocs. */
|
|
146
|
+
docs: zod_1.z.optional(zod_1.z.boolean()),
|
|
147
|
+
/** Output a metadata-docs.ts file with entity/field documentation available at runtime. */
|
|
148
|
+
outputDocs: zod_1.z.optional(zod_1.z.boolean()),
|
|
145
149
|
/** Auto-set by probing the project's `tsconfig.json` file. */
|
|
146
150
|
allowImportingTsExtensions: zod_1.z.optional(zod_1.z.boolean()),
|
|
147
151
|
// The version of Joist that generated this config.
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** A simple mtime-based cache for docs syncing, to skip processing when neither .ts nor .md has changed. */
|
|
2
|
+
export declare class DocsCache {
|
|
3
|
+
#private;
|
|
4
|
+
private constructor();
|
|
5
|
+
static load(): Promise<DocsCache>;
|
|
6
|
+
/** Returns true if both file mtimes match the cached values (i.e. skip processing). */
|
|
7
|
+
isUpToDate(entityName: string, tsMtime: number, mdMtime: number): boolean;
|
|
8
|
+
/** Record the current mtimes for an entity after processing it. */
|
|
9
|
+
update(entityName: string, tsMtime: number, mdMtime: number): void;
|
|
10
|
+
save(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/** Stat a file and return its mtimeMs, or -1 if it doesn't exist. */
|
|
13
|
+
export declare function getMtime(filePath: string): Promise<number>;
|
|
14
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/docs/cache.ts"],"names":[],"mappings":"AAoBA,4GAA4G;AAC5G,qBAAa,SAAS;;IAIpB,OAAO;WAKM,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAavC,uFAAuF;IACvF,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAKzE,mEAAmE;IACnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B;AAED,qEAAqE;AACrE,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocsCache = void 0;
|
|
4
|
+
exports.getMtime = getMtime;
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const os_1 = require("os");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const CACHE_VERSION = 1;
|
|
10
|
+
const CACHE_DIR = (0, path_1.join)((0, os_1.tmpdir)(), "joist-codegen-cache");
|
|
11
|
+
/** A simple mtime-based cache for docs syncing, to skip processing when neither .ts nor .md has changed. */
|
|
12
|
+
class DocsCache {
|
|
13
|
+
#entries;
|
|
14
|
+
#cachePath;
|
|
15
|
+
constructor(cachePath, entries) {
|
|
16
|
+
this.#cachePath = cachePath;
|
|
17
|
+
this.#entries = entries;
|
|
18
|
+
}
|
|
19
|
+
static async load() {
|
|
20
|
+
const cachePath = getCachePath();
|
|
21
|
+
try {
|
|
22
|
+
const raw = JSON.parse(await fs_1.promises.readFile(cachePath, "utf-8"));
|
|
23
|
+
if (raw.version === CACHE_VERSION) {
|
|
24
|
+
return new DocsCache(cachePath, raw.entities);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Missing or corrupt — start fresh
|
|
29
|
+
}
|
|
30
|
+
return new DocsCache(cachePath, {});
|
|
31
|
+
}
|
|
32
|
+
/** Returns true if both file mtimes match the cached values (i.e. skip processing). */
|
|
33
|
+
isUpToDate(entityName, tsMtime, mdMtime) {
|
|
34
|
+
const cached = this.#entries[entityName];
|
|
35
|
+
return !!cached && cached.tsMtime === Math.floor(tsMtime) && cached.mdMtime === Math.floor(mdMtime);
|
|
36
|
+
}
|
|
37
|
+
/** Record the current mtimes for an entity after processing it. */
|
|
38
|
+
update(entityName, tsMtime, mdMtime) {
|
|
39
|
+
this.#entries[entityName] = { tsMtime: Math.floor(tsMtime), mdMtime: Math.floor(mdMtime) };
|
|
40
|
+
}
|
|
41
|
+
async save() {
|
|
42
|
+
const data = { version: CACHE_VERSION, entities: this.#entries };
|
|
43
|
+
await fs_1.promises.mkdir(CACHE_DIR, { recursive: true });
|
|
44
|
+
await fs_1.promises.writeFile(this.#cachePath, JSON.stringify(data), "utf-8");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.DocsCache = DocsCache;
|
|
48
|
+
/** Stat a file and return its mtimeMs, or -1 if it doesn't exist. */
|
|
49
|
+
async function getMtime(filePath) {
|
|
50
|
+
try {
|
|
51
|
+
return (await fs_1.promises.stat(filePath)).mtimeMs;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return -1;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function getCachePath() {
|
|
58
|
+
const hash = (0, crypto_1.createHash)("sha256").update(process.cwd()).digest("hex").slice(0, 16);
|
|
59
|
+
return (0, path_1.join)(CACHE_DIR, `${hash}.json`);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/docs/cache.ts"],"names":[],"mappings":";;;AA8DA,4BAMC;AApED,mCAAoC;AACpC,2BAAoC;AACpC,2BAA4B;AAC5B,+BAA4B;AAE5B,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,qBAAqB,CAAC,CAAC;AAcxD,4GAA4G;AAC5G,MAAa,SAAS;IACpB,QAAQ,CAA6B;IACrC,UAAU,CAAS;IAEnB,YAAoB,SAAiB,EAAE,OAAmC;QACxE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI;QACf,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,aAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAc,CAAC;YAC3E,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;gBAClC,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,uFAAuF;IACvF,UAAU,CAAC,UAAkB,EAAE,OAAe,EAAE,OAAe;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtG,CAAC;IAED,mEAAmE;IACnE,MAAM,CAAC,UAAkB,EAAE,OAAe,EAAE,OAAe;QACzD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAc,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5E,MAAM,aAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;CACF;AAtCD,8BAsCC;AAED,qEAAqE;AAC9D,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,aAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.test.d.ts","sourceRoot":"","sources":["../../src/docs/cache.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const path_1 = require("path");
|
|
4
|
+
const os_1 = require("os");
|
|
5
|
+
const cache_1 = require("./cache");
|
|
6
|
+
describe("DocsCache", () => {
|
|
7
|
+
it("returns not up-to-date for unknown entities", async () => {
|
|
8
|
+
const cache = await cache_1.DocsCache.load();
|
|
9
|
+
expect(cache.isUpToDate("Unknown", 100, 200)).toBe(false);
|
|
10
|
+
});
|
|
11
|
+
it("returns up-to-date when mtimes match", async () => {
|
|
12
|
+
const cache = await cache_1.DocsCache.load();
|
|
13
|
+
cache.update("Author", 100, 200);
|
|
14
|
+
expect(cache.isUpToDate("Author", 100, 200)).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
it("returns not up-to-date when ts mtime changed", async () => {
|
|
17
|
+
const cache = await cache_1.DocsCache.load();
|
|
18
|
+
cache.update("Author", 100, 200);
|
|
19
|
+
expect(cache.isUpToDate("Author", 101, 200)).toBe(false);
|
|
20
|
+
});
|
|
21
|
+
it("returns not up-to-date when md mtime changed", async () => {
|
|
22
|
+
const cache = await cache_1.DocsCache.load();
|
|
23
|
+
cache.update("Author", 100, 200);
|
|
24
|
+
expect(cache.isUpToDate("Author", 100, 201)).toBe(false);
|
|
25
|
+
});
|
|
26
|
+
it("round-trips through save/load", async () => {
|
|
27
|
+
const cache = await cache_1.DocsCache.load();
|
|
28
|
+
cache.update("Author", 100, 200);
|
|
29
|
+
cache.update("Book", 300, -1);
|
|
30
|
+
await cache.save();
|
|
31
|
+
const reloaded = await cache_1.DocsCache.load();
|
|
32
|
+
expect(reloaded.isUpToDate("Author", 100, 200)).toBe(true);
|
|
33
|
+
expect(reloaded.isUpToDate("Book", 300, -1)).toBe(true);
|
|
34
|
+
expect(reloaded.isUpToDate("Unknown", 0, 0)).toBe(false);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe("getMtime", () => {
|
|
38
|
+
it("returns mtimeMs for an existing file", async () => {
|
|
39
|
+
const mtime = await (0, cache_1.getMtime)(__filename);
|
|
40
|
+
expect(mtime).toBeGreaterThan(0);
|
|
41
|
+
});
|
|
42
|
+
it("returns -1 for a missing file", async () => {
|
|
43
|
+
const mtime = await (0, cache_1.getMtime)((0, path_1.join)((0, os_1.tmpdir)(), "nonexistent-joist-test-file.ts"));
|
|
44
|
+
expect(mtime).toBe(-1);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=cache.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.test.js","sourceRoot":"","sources":["../../src/docs/cache.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CodegenFile } from "ts-poet";
|
|
2
|
+
import { Config } from "../config";
|
|
3
|
+
import { DbMetadata } from "../EntityDbMetadata";
|
|
4
|
+
/** Creates the `metadata-docs.ts` runtime artifact to access docs. */
|
|
5
|
+
export declare function generateMetadataDocsFile(config: Config, dbMeta: DbMetadata): Promise<CodegenFile>;
|
|
6
|
+
//# sourceMappingURL=generate-metadata-docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-metadata-docs.d.ts","sourceRoot":"","sources":["../../src/docs/generate-metadata-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,sEAAsE;AACtE,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA6BvG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateMetadataDocsFile = generateMetadataDocsFile;
|
|
4
|
+
const ts_poet_1 = require("ts-poet");
|
|
5
|
+
const markdown_1 = require("./markdown");
|
|
6
|
+
/** Creates the `metadata-docs.ts` runtime artifact to access docs. */
|
|
7
|
+
async function generateMetadataDocsFile(config, dbMeta) {
|
|
8
|
+
const { entities } = dbMeta;
|
|
9
|
+
const entityEntries = await Promise.all(entities.map(async (meta) => {
|
|
10
|
+
const entityName = meta.entity.name;
|
|
11
|
+
const mdPath = `${config.entitiesDirectory}/${entityName}.md`;
|
|
12
|
+
const doc = await (0, markdown_1.maybeReadMarkdownFile)(mdPath);
|
|
13
|
+
const comment = escapeString(doc?.overview ?? "");
|
|
14
|
+
const fieldEntries = Object.entries(doc?.fields ?? {})
|
|
15
|
+
.map(([name, text]) => `${name}: "${escapeString(text)}"`)
|
|
16
|
+
.join(", ");
|
|
17
|
+
return `${entityName}: { comment: "${comment}", fields: { ${fieldEntries} }, operations: undefined }`;
|
|
18
|
+
}));
|
|
19
|
+
const body = entityEntries.map((e) => ` ${e},`).join("\n");
|
|
20
|
+
return {
|
|
21
|
+
name: "./codegen/metadata-docs.ts",
|
|
22
|
+
contents: (0, ts_poet_1.code) `
|
|
23
|
+
export const docs = {
|
|
24
|
+
${body}
|
|
25
|
+
} as const;
|
|
26
|
+
|
|
27
|
+
export type EntityDocs = typeof docs;
|
|
28
|
+
`,
|
|
29
|
+
overwrite: true,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** Escape a string for use inside a JS string literal (double-quoted). */
|
|
33
|
+
function escapeString(s) {
|
|
34
|
+
return s.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n");
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=generate-metadata-docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-metadata-docs.js","sourceRoot":"","sources":["../../src/docs/generate-metadata-docs.ts"],"names":[],"mappings":";;AAMA,4DA6BC;AAnCD,qCAA4C;AAG5C,yCAAmD;AAEnD,sEAAsE;AAC/D,KAAK,UAAU,wBAAwB,CAAC,MAAc,EAAE,MAAkB;IAC/E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,IAAI,UAAU,KAAK,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAA,gCAAqB,EAAC,MAAM,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC;aACnD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;aACzD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,GAAG,UAAU,iBAAiB,OAAO,gBAAgB,YAAY,6BAA6B,CAAC;IACxG,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,IAAA,cAAI,EAAA;;QAEV,IAAI;;;;KAIP;QACD,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { generateMetadataDocsFile } from "./generate-metadata-docs";
|
|
2
|
+
/**
|
|
3
|
+
* Run the full docs sync pipeline with mtime-based caching:
|
|
4
|
+
* 1. backfill .md from .ts JSDocs
|
|
5
|
+
* 2. sync .md back into .ts JSDocs
|
|
6
|
+
* 3. save the cache
|
|
7
|
+
*/
|
|
8
|
+
export declare function syncDocs(entitiesDir: string, entityNames: string[]): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/docs/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCxF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateMetadataDocsFile = void 0;
|
|
4
|
+
exports.syncDocs = syncDocs;
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const cache_1 = require("./cache");
|
|
8
|
+
const markdown_1 = require("./markdown");
|
|
9
|
+
const parsing_1 = require("./parsing");
|
|
10
|
+
var generate_metadata_docs_1 = require("./generate-metadata-docs");
|
|
11
|
+
Object.defineProperty(exports, "generateMetadataDocsFile", { enumerable: true, get: function () { return generate_metadata_docs_1.generateMetadataDocsFile; } });
|
|
12
|
+
/**
|
|
13
|
+
* Run the full docs sync pipeline with mtime-based caching:
|
|
14
|
+
* 1. backfill .md from .ts JSDocs
|
|
15
|
+
* 2. sync .md back into .ts JSDocs
|
|
16
|
+
* 3. save the cache
|
|
17
|
+
*/
|
|
18
|
+
async function syncDocs(entitiesDir, entityNames) {
|
|
19
|
+
const cache = await cache_1.DocsCache.load();
|
|
20
|
+
// Stat all files upfront in parallel to determine which entities need processing
|
|
21
|
+
const stats = await Promise.all(entityNames.map(async (entityName) => {
|
|
22
|
+
const tsPath = (0, path_1.join)(entitiesDir, `${entityName}.ts`);
|
|
23
|
+
const mdPath = (0, markdown_1.getMarkdownFilePath)(entitiesDir, entityName);
|
|
24
|
+
const [tsMtime, mdMtime] = await Promise.all([(0, cache_1.getMtime)(tsPath), (0, cache_1.getMtime)(mdPath)]);
|
|
25
|
+
return { entityName, tsPath, mdPath, tsMtime, mdMtime };
|
|
26
|
+
}));
|
|
27
|
+
const dirty = stats.filter((s) => !cache.isUpToDate(s.entityName, s.tsMtime, s.mdMtime));
|
|
28
|
+
if (dirty.length > 0) {
|
|
29
|
+
// Step 1: backfill .md from .ts
|
|
30
|
+
await Promise.all(dirty.map((s) => backfillMarkdownFromJsdoc(s.tsPath, s.mdPath)));
|
|
31
|
+
// Step 2: sync .md into .ts (re-read .md mtimes since backfill may have written them)
|
|
32
|
+
await Promise.all(dirty.map((s) => syncMarkdownToJsdoc(s.entityName, s.tsPath, s.mdPath)));
|
|
33
|
+
// Record final mtimes after both passes
|
|
34
|
+
await Promise.all(dirty.map(async (s) => {
|
|
35
|
+
const [tsMtime, mdMtime] = await Promise.all([(0, cache_1.getMtime)(s.tsPath), (0, cache_1.getMtime)(s.mdPath)]);
|
|
36
|
+
cache.update(s.entityName, tsMtime, mdMtime);
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
await cache.save();
|
|
40
|
+
}
|
|
41
|
+
/** Sync a single entity's Markdown docs into its .ts file. */
|
|
42
|
+
async function syncMarkdownToJsdoc(entityName, tsPath, mdPath) {
|
|
43
|
+
const doc = await (0, markdown_1.maybeReadMarkdownFile)(mdPath);
|
|
44
|
+
if (!doc || (!doc.overview && Object.keys(doc.fields).length === 0))
|
|
45
|
+
return;
|
|
46
|
+
const source = await fs_1.promises.readFile(tsPath, "utf-8");
|
|
47
|
+
const { classNode, members } = (0, parsing_1.parseEntityJSDocs)(source);
|
|
48
|
+
const tag = `@generated ${entityName}.md`;
|
|
49
|
+
const edits = [];
|
|
50
|
+
if (doc.overview && classNode) {
|
|
51
|
+
edits.push((0, parsing_1.buildJSDocEdit)(classNode, `${doc.overview}\n${tag}`));
|
|
52
|
+
}
|
|
53
|
+
for (const [fieldName, fieldDoc] of Object.entries(doc.fields)) {
|
|
54
|
+
if (!fieldDoc)
|
|
55
|
+
continue;
|
|
56
|
+
for (const member of members.filter((m) => m.name === fieldName && m.kind !== "method")) {
|
|
57
|
+
edits.push((0, parsing_1.buildJSDocEdit)(member.node, `${fieldDoc}\n${tag}`));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (edits.length > 0) {
|
|
61
|
+
const updated = (0, parsing_1.applyEdits)(source, edits);
|
|
62
|
+
if (updated !== source) {
|
|
63
|
+
await fs_1.promises.writeFile(tsPath, updated, "utf-8");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Backfill a single entity's .md file from JSDocs in its .ts file.
|
|
69
|
+
*
|
|
70
|
+
* If the .md doesn't exist, creates it. If it does exist, merges in any
|
|
71
|
+
* fields that are documented in .ts but missing from the .md.
|
|
72
|
+
*/
|
|
73
|
+
async function backfillMarkdownFromJsdoc(tsPath, mdPath) {
|
|
74
|
+
const source = await fs_1.promises.readFile(tsPath, "utf-8");
|
|
75
|
+
const { classDoc, fieldDocs } = (0, parsing_1.parseEntityJSDocs)(source);
|
|
76
|
+
if (!classDoc && Object.keys(fieldDocs).length === 0)
|
|
77
|
+
return;
|
|
78
|
+
const existingDoc = await (0, markdown_1.maybeReadMarkdownFile)(mdPath);
|
|
79
|
+
const newFields = {};
|
|
80
|
+
for (const [name, doc] of Object.entries(fieldDocs)) {
|
|
81
|
+
if (!existingDoc?.fields[name]) {
|
|
82
|
+
newFields[name] = doc;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const newOverview = !existingDoc ? classDoc : existingDoc.overview ? undefined : classDoc;
|
|
86
|
+
if (!newOverview && Object.keys(newFields).length === 0)
|
|
87
|
+
return;
|
|
88
|
+
await (0, markdown_1.updateMarkdownDoc)(mdPath, newOverview, newFields);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/docs/index.ts"],"names":[],"mappings":";;;AAaA,4BAgCC;AA7CD,2BAAoC;AACpC,+BAA4B;AAC5B,mCAA8C;AAC9C,yCAA2F;AAC3F,uCAA0E;AAC1E,mEAAoE;AAA3D,kIAAA,wBAAwB,OAAA;AAEjC;;;;;GAKG;AACI,KAAK,UAAU,QAAQ,CAAC,WAAmB,EAAE,WAAqB;IACvE,MAAM,KAAK,GAAG,MAAM,iBAAS,CAAC,IAAI,EAAE,CAAC;IAErC,iFAAiF;IACjF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,GAAG,UAAU,KAAK,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAA,8BAAmB,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnF,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC1D,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,gCAAgC;QAChC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEnF,sFAAsF;QACtF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3F,wCAAwC;QACxC,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACpB,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvF,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC;AAED,8DAA8D;AAC9D,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,MAAc,EAAE,MAAc;IACnF,MAAM,GAAG,GAAG,MAAM,IAAA,gCAAqB,EAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO;IAE5E,MAAM,MAAM,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAA,2BAAiB,EAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,GAAG,GAAG,cAAc,UAAU,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,GAAG,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,IAAA,wBAAc,EAAC,SAAS,EAAE,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YACxF,KAAK,CAAC,IAAI,CAAC,IAAA,wBAAc,EAAC,MAAM,CAAC,IAAI,EAAE,GAAG,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,aAAE,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,yBAAyB,CAAC,MAAc,EAAE,MAAc;IACrE,MAAM,MAAM,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAA,2BAAiB,EAAC,MAAM,CAAC,CAAC;IAE1D,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE7D,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAqB,EAAC,MAAM,CAAC,CAAC;IACxD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACxB,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE1F,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEhE,MAAM,IAAA,4BAAiB,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/docs/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs_1 = require("fs");
|
|
4
|
+
const os_1 = require("os");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const index_1 = require("./index");
|
|
7
|
+
let testDir;
|
|
8
|
+
beforeEach(async () => {
|
|
9
|
+
testDir = await fs_1.promises.mkdtemp((0, path_1.join)((0, os_1.tmpdir)(), "joist-docs-test-"));
|
|
10
|
+
});
|
|
11
|
+
afterEach(async () => {
|
|
12
|
+
await fs_1.promises.rm(testDir, { recursive: true, force: true });
|
|
13
|
+
});
|
|
14
|
+
describe("syncDocs", () => {
|
|
15
|
+
it("syncs markdown overview into ts file with @generated tag", async () => {
|
|
16
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), "export class Author extends AuthorCodegen {}", "utf-8");
|
|
17
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nThe Author entity.\n", "utf-8");
|
|
18
|
+
await (0, index_1.syncDocs)(testDir, ["Author"]);
|
|
19
|
+
const result = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
|
|
20
|
+
expect(result).toContain("The Author entity.");
|
|
21
|
+
expect(result).toContain("@generated Author.md");
|
|
22
|
+
});
|
|
23
|
+
it("syncs field docs into ts file", async () => {
|
|
24
|
+
const ts = ["export class Author extends AuthorCodegen {", ' readonly firstName: string = "";', "}"].join("\n");
|
|
25
|
+
const md = ["## Overview", "", "## Fields", "", "### firstName", "", "The first name.", ""].join("\n");
|
|
26
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), ts, "utf-8");
|
|
27
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), md, "utf-8");
|
|
28
|
+
await (0, index_1.syncDocs)(testDir, ["Author"]);
|
|
29
|
+
const result = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
|
|
30
|
+
expect(result).toContain("The first name.");
|
|
31
|
+
expect(result).toContain("@generated Author.md");
|
|
32
|
+
});
|
|
33
|
+
it("backfills md from ts jsdoc when md does not exist", async () => {
|
|
34
|
+
const ts = ["/** The Author entity. */", "export class Author extends AuthorCodegen {}"].join("\n");
|
|
35
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), ts, "utf-8");
|
|
36
|
+
await (0, index_1.syncDocs)(testDir, ["Author"]);
|
|
37
|
+
const md = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.md"), "utf-8");
|
|
38
|
+
expect(md).toContain("The Author entity.");
|
|
39
|
+
});
|
|
40
|
+
it("skips entities on second run when files are unchanged", async () => {
|
|
41
|
+
const bare = "export class Author extends AuthorCodegen {}";
|
|
42
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), bare, "utf-8");
|
|
43
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nThe Author entity.\n", "utf-8");
|
|
44
|
+
// First run — processes, writes JSDoc into .ts, and caches the resulting mtimes
|
|
45
|
+
await (0, index_1.syncDocs)(testDir, ["Author"]);
|
|
46
|
+
const firstResult = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
|
|
47
|
+
expect(firstResult).toContain("The Author entity.");
|
|
48
|
+
// Snapshot the post-run mtimes (these are what the cache recorded)
|
|
49
|
+
const tsPath = (0, path_1.join)(testDir, "Author.ts");
|
|
50
|
+
const mdPath = (0, path_1.join)(testDir, "Author.md");
|
|
51
|
+
const tsStat = await fs_1.promises.stat(tsPath);
|
|
52
|
+
const mdStat = await fs_1.promises.stat(mdPath);
|
|
53
|
+
// Revert .ts to the bare version (no JSDoc) but restore the post-run mtime
|
|
54
|
+
// so the cache thinks nothing changed. If syncDocs re-processes, the overview
|
|
55
|
+
// would be re-injected; if it correctly skips, the bare content survives.
|
|
56
|
+
await fs_1.promises.writeFile(tsPath, bare, "utf-8");
|
|
57
|
+
await fs_1.promises.utimes(tsPath, tsStat.atimeMs / 1000, tsStat.mtimeMs / 1000);
|
|
58
|
+
await fs_1.promises.utimes(mdPath, mdStat.atimeMs / 1000, mdStat.mtimeMs / 1000);
|
|
59
|
+
// Second run — should skip because mtimes haven't changed
|
|
60
|
+
await (0, index_1.syncDocs)(testDir, ["Author"]);
|
|
61
|
+
const secondResult = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
|
|
62
|
+
// If the cache correctly skipped, the bare content is still there (no JSDoc injected)
|
|
63
|
+
expect(secondResult).toBe(bare);
|
|
64
|
+
});
|
|
65
|
+
it("re-processes entity when md file changes", async () => {
|
|
66
|
+
const ts = ["export class Author extends AuthorCodegen {", ' readonly firstName: string = "";', "}"].join("\n");
|
|
67
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), ts, "utf-8");
|
|
68
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nVersion one.\n", "utf-8");
|
|
69
|
+
await (0, index_1.syncDocs)(testDir, ["Author"]);
|
|
70
|
+
const first = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
|
|
71
|
+
expect(first).toContain("Version one.");
|
|
72
|
+
// Wait a tick to ensure mtime differs
|
|
73
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
74
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nVersion two.\n", "utf-8");
|
|
75
|
+
await (0, index_1.syncDocs)(testDir, ["Author"]);
|
|
76
|
+
const second = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
|
|
77
|
+
expect(second).toContain("Version two.");
|
|
78
|
+
expect(second).not.toContain("Version one.");
|
|
79
|
+
});
|
|
80
|
+
it("handles entities with no md file", async () => {
|
|
81
|
+
await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), "export class Author extends AuthorCodegen {}", "utf-8");
|
|
82
|
+
// Should not throw
|
|
83
|
+
await (0, index_1.syncDocs)(testDir, ["Author"]);
|
|
84
|
+
// No md created since there's no jsdoc to backfill
|
|
85
|
+
const files = await fs_1.promises.readdir(testDir);
|
|
86
|
+
expect(files).toMatchObject(["Author.ts"]);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/docs/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface ParsedDoc {
|
|
2
|
+
overview: string;
|
|
3
|
+
fields: Record<string, string>;
|
|
4
|
+
}
|
|
5
|
+
/** Read and parse a .md file if it exists, returning undefined if it doesn't. */
|
|
6
|
+
export declare function maybeReadMarkdownFile(filePath: string): Promise<ParsedDoc | undefined>;
|
|
7
|
+
/** Reads a basic `overview` and per-field docs out of md content. */
|
|
8
|
+
export declare function parseMarkdownContent(content: string): ParsedDoc;
|
|
9
|
+
/** Create a new .md file from scratch (used only for initial backfill when no .md exists). */
|
|
10
|
+
export declare function writeMarkdownDoc(filePath: string, overview: string, fields?: Record<string, string>): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Update an existing .md file, merging in new/changed content without stomping user content.
|
|
13
|
+
* If the file doesn't exist, creates it from scratch.
|
|
14
|
+
*/
|
|
15
|
+
export declare function updateMarkdownDoc(filePath: string, overview: string | undefined, fields: Record<string, string>): Promise<void>;
|
|
16
|
+
export declare function getMarkdownFilePath(entitiesDir: string, entityName: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Merge updates into an existing .md file, preserving all user content.
|
|
19
|
+
*
|
|
20
|
+
* - If `overview` is provided and the file has `## Overview`, replaces its body
|
|
21
|
+
* - For each field in `fields`, if `### fieldName` exists, replaces its body;
|
|
22
|
+
* otherwise appends it to the `## Fields` section (creating the section if needed)
|
|
23
|
+
* - All other content (custom sections, tables, etc.) is preserved verbatim
|
|
24
|
+
*/
|
|
25
|
+
declare function mergeMarkdownContent(existing: string, overview: string | undefined, fields: Record<string, string>): string;
|
|
26
|
+
export declare const testing: {
|
|
27
|
+
mergeMarkdownContent: typeof mergeMarkdownContent;
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/docs/markdown.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,iFAAiF;AACjF,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAO5F;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CA8C/D;AAED,8FAA8F;AAC9F,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnF;AAWD;;;;;;;GAOG;AACH,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA6EpH;AAED,eAAO,MAAM,OAAO;;CAA2B,CAAC"}
|