joist-codegen 2.3.0-next.4 → 2.3.0-next.40

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.
Files changed (173) hide show
  1. package/build/EntityDbMetadata.d.ts +3 -1
  2. package/build/EntityDbMetadata.js +3 -0
  3. package/build/EntityDbMetadata.js.map +1 -1
  4. package/build/assignTags.d.ts +0 -1
  5. package/build/assignTags.js.map +1 -1
  6. package/build/codemods/Codemod.d.ts +0 -1
  7. package/build/codemods/JscodeshiftMod.d.ts +0 -1
  8. package/build/codemods/JscodeshiftMod.js +1 -1
  9. package/build/codemods/JscodeshiftMod.js.map +1 -1
  10. package/build/codemods/codemod_0001-rename_has_async_property.d.ts +0 -1
  11. package/build/codemods/codemod_0001-rename_has_async_property.js.map +1 -1
  12. package/build/codemods/codemod_0002-rename_async_query_fields.d.ts +0 -1
  13. package/build/codemods/codemod_0002-rename_async_query_fields.js +3 -9
  14. package/build/codemods/codemod_0002-rename_async_query_fields.js.map +1 -1
  15. package/build/codemods/codemod_0003-rename_find_paginated.d.ts +0 -1
  16. package/build/codemods/codemod_0003-rename_find_paginated.js.map +1 -1
  17. package/build/codemods/index.d.ts +0 -1
  18. package/build/codemods/index.js.map +1 -1
  19. package/build/config.d.ts +13 -2
  20. package/build/config.js +53 -9
  21. package/build/config.js.map +1 -1
  22. package/build/docs/cache.d.ts +0 -1
  23. package/build/docs/cache.js.map +1 -1
  24. package/build/docs/generate-metadata-docs.d.ts +2 -3
  25. package/build/docs/generate-metadata-docs.js +4 -7
  26. package/build/docs/generate-metadata-docs.js.map +1 -1
  27. package/build/docs/index.d.ts +5 -1
  28. package/build/docs/index.js +16 -2
  29. package/build/docs/index.js.map +1 -1
  30. package/build/docs/markdown.d.ts +0 -1
  31. package/build/docs/markdown.js.map +1 -1
  32. package/build/docs/parsing.d.ts +4 -1
  33. package/build/docs/parsing.js +6 -0
  34. package/build/docs/parsing.js.map +1 -1
  35. package/build/findEntityScopes.d.ts +0 -1
  36. package/build/findEntityScopes.js +66 -52
  37. package/build/findEntityScopes.js.map +1 -1
  38. package/build/foreignKeyOrdering.d.ts +0 -1
  39. package/build/foreignKeyOrdering.js.map +1 -1
  40. package/build/generate.d.ts +0 -1
  41. package/build/generate.js +10 -4
  42. package/build/generate.js.map +1 -1
  43. package/build/generateEntitiesFile.d.ts +1 -2
  44. package/build/generateEntitiesFile.js.map +1 -1
  45. package/build/generateEntityCodegenFile.d.ts +4 -4
  46. package/build/generateEntityCodegenFile.js +56 -19
  47. package/build/generateEntityCodegenFile.js.map +1 -1
  48. package/build/generateEntityFile.d.ts +1 -2
  49. package/build/generateEntityFile.js.map +1 -1
  50. package/build/generateEntityTestFile.d.ts +1 -2
  51. package/build/generateEntityTestFile.js.map +1 -1
  52. package/build/generateEnumFile.d.ts +0 -1
  53. package/build/generateEnumFile.js.map +1 -1
  54. package/build/generateFactoriesFiles.d.ts +0 -1
  55. package/build/generateFactoriesFiles.js.map +1 -1
  56. package/build/generateFlushFunction.d.ts +0 -1
  57. package/build/generateFlushFunction.js +2 -7
  58. package/build/generateFlushFunction.js.map +1 -1
  59. package/build/generateMetadataFile.d.ts +0 -1
  60. package/build/generateMetadataFile.js +7 -0
  61. package/build/generateMetadataFile.js.map +1 -1
  62. package/build/generatePgEnumFile.d.ts +0 -1
  63. package/build/generatePgEnumFile.js.map +1 -1
  64. package/build/index.d.ts +2 -2
  65. package/build/index.js +26 -3
  66. package/build/index.js.map +1 -1
  67. package/build/inheritance.d.ts +1 -2
  68. package/build/inheritance.js.map +1 -1
  69. package/build/installSkills.d.ts +12 -0
  70. package/build/installSkills.js +69 -0
  71. package/build/installSkills.js.map +1 -0
  72. package/build/keywords.d.ts +0 -1
  73. package/build/loadMetadata.d.ts +0 -1
  74. package/build/loadMetadata.js.map +1 -1
  75. package/build/logger.d.ts +0 -1
  76. package/build/logger.js.map +1 -1
  77. package/build/scanEntityFiles.d.ts +1 -2
  78. package/build/scanEntityFiles.js.map +1 -1
  79. package/build/sortForeignKeys.d.ts +0 -1
  80. package/build/sortForeignKeys.js.map +1 -1
  81. package/build/symbols.d.ts +3 -1
  82. package/build/symbols.js +6 -3
  83. package/build/symbols.js.map +1 -1
  84. package/build/tsdoc.d.ts +0 -1
  85. package/build/utils.d.ts +1 -2
  86. package/build/utils.js.map +1 -1
  87. package/build/write-json-schema.d.ts +0 -1
  88. package/build/write-json-schema.js +1 -1
  89. package/build/write-json-schema.js.map +1 -1
  90. package/package.json +10 -13
  91. package/skills/joist-docs/SKILL.md +133 -0
  92. package/skills/joist-em-basics/SKILL.md +114 -0
  93. package/skills/joist-partial-updates/SKILL.md +352 -0
  94. package/skills/joist-reactive-hints/SKILL.md +150 -0
  95. package/skills/joist-test-factories/SKILL.md +397 -0
  96. package/skills/joist-upsert/SKILL.md +95 -0
  97. package/build/EntityDbMetadata.d.ts.map +0 -1
  98. package/build/EntityDbMetadata.test.d.ts +0 -2
  99. package/build/EntityDbMetadata.test.d.ts.map +0 -1
  100. package/build/EntityDbMetadata.test.js +0 -211
  101. package/build/EntityDbMetadata.test.js.map +0 -1
  102. package/build/assignTags.d.ts.map +0 -1
  103. package/build/codemods/Codemod.d.ts.map +0 -1
  104. package/build/codemods/JscodeshiftMod.d.ts.map +0 -1
  105. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts +0 -2
  106. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts.map +0 -1
  107. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js +0 -9
  108. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js.map +0 -1
  109. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts +0 -2
  110. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts.map +0 -1
  111. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js +0 -9
  112. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js.map +0 -1
  113. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts +0 -2
  114. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts.map +0 -1
  115. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js +0 -9
  116. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js.map +0 -1
  117. package/build/codemods/codemod_0001-rename_has_async_property.d.ts.map +0 -1
  118. package/build/codemods/codemod_0002-rename_async_query_fields.d.ts.map +0 -1
  119. package/build/codemods/codemod_0003-rename_find_paginated.d.ts.map +0 -1
  120. package/build/codemods/index.d.ts.map +0 -1
  121. package/build/codemods/index.test.d.ts +0 -2
  122. package/build/codemods/index.test.d.ts.map +0 -1
  123. package/build/codemods/index.test.js +0 -24
  124. package/build/codemods/index.test.js.map +0 -1
  125. package/build/config.d.ts.map +0 -1
  126. package/build/config.test.d.ts +0 -2
  127. package/build/config.test.d.ts.map +0 -1
  128. package/build/config.test.js +0 -78
  129. package/build/config.test.js.map +0 -1
  130. package/build/docs/cache.d.ts.map +0 -1
  131. package/build/docs/cache.test.d.ts +0 -2
  132. package/build/docs/cache.test.d.ts.map +0 -1
  133. package/build/docs/cache.test.js +0 -47
  134. package/build/docs/cache.test.js.map +0 -1
  135. package/build/docs/generate-metadata-docs.d.ts.map +0 -1
  136. package/build/docs/index.d.ts.map +0 -1
  137. package/build/docs/index.test.d.ts +0 -2
  138. package/build/docs/index.test.d.ts.map +0 -1
  139. package/build/docs/index.test.js +0 -100
  140. package/build/docs/index.test.js.map +0 -1
  141. package/build/docs/markdown.d.ts.map +0 -1
  142. package/build/docs/markdown.test.d.ts +0 -2
  143. package/build/docs/markdown.test.d.ts.map +0 -1
  144. package/build/docs/markdown.test.js +0 -280
  145. package/build/docs/markdown.test.js.map +0 -1
  146. package/build/docs/parsing.d.ts.map +0 -1
  147. package/build/docs/parsing.test.d.ts +0 -2
  148. package/build/docs/parsing.test.d.ts.map +0 -1
  149. package/build/docs/parsing.test.js +0 -190
  150. package/build/docs/parsing.test.js.map +0 -1
  151. package/build/findEntityScopes.d.ts.map +0 -1
  152. package/build/foreignKeyOrdering.d.ts.map +0 -1
  153. package/build/generate.d.ts.map +0 -1
  154. package/build/generateEntitiesFile.d.ts.map +0 -1
  155. package/build/generateEntityCodegenFile.d.ts.map +0 -1
  156. package/build/generateEntityFile.d.ts.map +0 -1
  157. package/build/generateEntityTestFile.d.ts.map +0 -1
  158. package/build/generateEnumFile.d.ts.map +0 -1
  159. package/build/generateFactoriesFiles.d.ts.map +0 -1
  160. package/build/generateFlushFunction.d.ts.map +0 -1
  161. package/build/generateMetadataFile.d.ts.map +0 -1
  162. package/build/generatePgEnumFile.d.ts.map +0 -1
  163. package/build/index.d.ts.map +0 -1
  164. package/build/inheritance.d.ts.map +0 -1
  165. package/build/keywords.d.ts.map +0 -1
  166. package/build/loadMetadata.d.ts.map +0 -1
  167. package/build/logger.d.ts.map +0 -1
  168. package/build/scanEntityFiles.d.ts.map +0 -1
  169. package/build/sortForeignKeys.d.ts.map +0 -1
  170. package/build/symbols.d.ts.map +0 -1
  171. package/build/tsdoc.d.ts.map +0 -1
  172. package/build/utils.d.ts.map +0 -1
  173. package/build/write-json-schema.d.ts.map +0 -1
@@ -1,100 +0,0 @@
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
- it("skips entities with no ts file", async () => {
89
- await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nThe Author entity.\n", "utf-8");
90
- await (0, index_1.syncDocs)(testDir, ["Author"]);
91
- const files = await fs_1.promises.readdir(testDir);
92
- expect(files).toMatchObject(["Author.md"]);
93
- });
94
- it("skips entities with no ts or md file", async () => {
95
- await (0, index_1.syncDocs)(testDir, ["Author"]);
96
- const files = await fs_1.promises.readdir(testDir);
97
- expect(files).toMatchObject([]);
98
- });
99
- });
100
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/docs/index.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/docs/markdown.ts"],"names":[],"mappings":"AAIA,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,CA0Bf;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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=markdown.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.test.d.ts","sourceRoot":"","sources":["../../src/docs/markdown.test.ts"],"names":[],"mappings":""}
@@ -1,280 +0,0 @@
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 markdown_1 = require("./markdown");
7
- const { mergeMarkdownContent } = markdown_1.testing;
8
- describe("markdown", () => {
9
- describe("parseMarkdownContent", () => {
10
- it("parses overview and fields", () => {
11
- const md = [
12
- "## Overview",
13
- "This is the Author entity.",
14
- "",
15
- "## Fields",
16
- "",
17
- "### firstName",
18
- "",
19
- "The author's first name.",
20
- "",
21
- "### lastName",
22
- "",
23
- "The author's last name.",
24
- "",
25
- ].join("\n");
26
- expect((0, markdown_1.parseMarkdownContent)(md)).toEqual({
27
- overview: "This is the Author entity.",
28
- fields: {
29
- firstName: "The author's first name.",
30
- lastName: "The author's last name.",
31
- },
32
- });
33
- });
34
- it("handles multi-line overview", () => {
35
- const md = ["## Overview", "Line one.", "", "Line two after blank.", "", "## Fields", ""].join("\n");
36
- expect((0, markdown_1.parseMarkdownContent)(md)).toEqual({
37
- overview: "Line one.\n\nLine two after blank.",
38
- fields: {},
39
- });
40
- });
41
- it("handles multi-line field docs", () => {
42
- const md = [
43
- "## Overview",
44
- "Entity doc.",
45
- "",
46
- "## Fields",
47
- "",
48
- "### notes",
49
- "First paragraph.",
50
- "",
51
- "Second paragraph.",
52
- "",
53
- ].join("\n");
54
- expect((0, markdown_1.parseMarkdownContent)(md)).toEqual({
55
- overview: "Entity doc.",
56
- fields: {
57
- notes: "First paragraph.\n\nSecond paragraph.",
58
- },
59
- });
60
- });
61
- it("returns empty strings when sections are empty", () => {
62
- const md = "## Overview\n\n## Fields\n";
63
- expect((0, markdown_1.parseMarkdownContent)(md)).toEqual({
64
- overview: "",
65
- fields: {},
66
- });
67
- });
68
- it("ignores unknown sections", () => {
69
- const md = [
70
- "## Overview",
71
- "The overview.",
72
- "",
73
- "## SomeOtherSection",
74
- "Should be ignored.",
75
- "",
76
- "## Fields",
77
- "",
78
- "### name",
79
- "The name.",
80
- "",
81
- ].join("\n");
82
- expect((0, markdown_1.parseMarkdownContent)(md)).toEqual({
83
- overview: "The overview.",
84
- fields: { name: "The name." },
85
- });
86
- });
87
- it("parses field docs with markdown tables", () => {
88
- const md = [
89
- "## Overview",
90
- "Entity.",
91
- "",
92
- "## Fields",
93
- "",
94
- "### status",
95
- "",
96
- "The current status. Possible values:",
97
- "",
98
- "| Value | Meaning |",
99
- "|-------|---------|",
100
- "| ACTIVE | Currently active |",
101
- "| INACTIVE | No longer active |",
102
- "",
103
- ].join("\n");
104
- expect((0, markdown_1.parseMarkdownContent)(md)).toMatchObject({
105
- fields: {
106
- status: [
107
- "The current status. Possible values:",
108
- "",
109
- "| Value | Meaning |",
110
- "|-------|---------|",
111
- "| ACTIVE | Currently active |",
112
- "| INACTIVE | No longer active |",
113
- ].join("\n"),
114
- },
115
- });
116
- });
117
- });
118
- describe("mergeMarkdownContent", () => {
119
- it("preserves custom sections between Overview and Fields", () => {
120
- const existing = [
121
- "## Overview",
122
- "Old overview.",
123
- "",
124
- "## Business Rules",
125
- "",
126
- "| Rule | Description |",
127
- "|------|-------------|",
128
- "| no nulls | Name is required |",
129
- "",
130
- "## Fields",
131
- "",
132
- "### name",
133
- "",
134
- "The name.",
135
- "",
136
- ].join("\n");
137
- const result = mergeMarkdownContent(existing, "New overview.", {});
138
- expect(result).toBe([
139
- "## Overview",
140
- "New overview.",
141
- "",
142
- "## Business Rules",
143
- "",
144
- "| Rule | Description |",
145
- "|------|-------------|",
146
- "| no nulls | Name is required |",
147
- "",
148
- "## Fields",
149
- "",
150
- "### name",
151
- "",
152
- "The name.",
153
- "",
154
- ].join("\n"));
155
- });
156
- it("preserves custom sections after Fields", () => {
157
- const existing = [
158
- "## Overview",
159
- "The overview.",
160
- "",
161
- "## Fields",
162
- "",
163
- "### name",
164
- "",
165
- "The name.",
166
- "",
167
- "## Notes",
168
- "",
169
- "```typescript",
170
- "const a = 1;",
171
- "```",
172
- "",
173
- ].join("\n");
174
- const result = mergeMarkdownContent(existing, undefined, { age: "The age." });
175
- expect(result).toBe([
176
- "## Overview",
177
- "The overview.",
178
- "",
179
- "## Fields",
180
- "",
181
- "### name",
182
- "",
183
- "The name.",
184
- "",
185
- "### age",
186
- "",
187
- "The age.",
188
- "",
189
- "## Notes",
190
- "",
191
- "```typescript",
192
- "const a = 1;",
193
- "```",
194
- "",
195
- ].join("\n"));
196
- });
197
- it("appends new fields without touching existing ones", () => {
198
- const existing = [
199
- "## Overview",
200
- "The overview.",
201
- "",
202
- "## Fields",
203
- "",
204
- "### name",
205
- "",
206
- "User-written name doc with **bold** text.",
207
- "",
208
- ].join("\n");
209
- const result = mergeMarkdownContent(existing, undefined, { age: "The age." });
210
- expect(result).toBe([
211
- "## Overview",
212
- "The overview.",
213
- "",
214
- "## Fields",
215
- "",
216
- "### name",
217
- "",
218
- "User-written name doc with **bold** text.",
219
- "",
220
- "### age",
221
- "",
222
- "The age.",
223
- "",
224
- ].join("\n"));
225
- });
226
- it("replaces an existing field's doc", () => {
227
- const existing = ["## Overview", "The overview.", "", "## Fields", "", "### name", "", "Old name doc.", ""].join("\n");
228
- const result = mergeMarkdownContent(existing, undefined, { name: "New name doc." });
229
- expect(result).toBe(["## Overview", "The overview.", "", "## Fields", "", "### name", "", "New name doc.", ""].join("\n"));
230
- });
231
- it("creates Fields section if it doesn't exist", () => {
232
- const existing = ["## Overview", "The overview.", ""].join("\n");
233
- const result = mergeMarkdownContent(existing, undefined, { name: "The name." });
234
- expect(result).toBe(["## Overview", "The overview.", "", "", "## Fields", "", "### name", "", "The name.", ""].join("\n"));
235
- });
236
- it("does not modify content when nothing to merge", () => {
237
- const existing = ["## Overview", "The overview.", "", "## Fields", "", "### name", "", "The name.", ""].join("\n");
238
- const result = mergeMarkdownContent(existing, undefined, {});
239
- expect(result).toBe(existing);
240
- });
241
- });
242
- describe("writeMarkdownDoc", () => {
243
- it("formats generated markdown", async () => {
244
- const testDir = await fs_1.promises.mkdtemp((0, path_1.join)((0, os_1.tmpdir)(), "joist-markdown-test-"));
245
- try {
246
- const filePath = (0, path_1.join)(testDir, "Author.md");
247
- await (0, markdown_1.writeMarkdownDoc)(filePath, "The Author entity.", {
248
- status: [
249
- "The current status. Possible values:",
250
- "",
251
- "| Value | Meaning |",
252
- "|-------|---------|",
253
- "| ACTIVE | Currently active |",
254
- ].join("\n"),
255
- });
256
- const result = await fs_1.promises.readFile(filePath, "utf-8");
257
- expect(result).toBe([
258
- "## Overview",
259
- "",
260
- "The Author entity.",
261
- "",
262
- "## Fields",
263
- "",
264
- "### status",
265
- "",
266
- "The current status. Possible values:",
267
- "",
268
- "| Value | Meaning |",
269
- "| ------ | ---------------- |",
270
- "| ACTIVE | Currently active |",
271
- "",
272
- ].join("\n"));
273
- }
274
- finally {
275
- await fs_1.promises.rm(testDir, { recursive: true, force: true });
276
- }
277
- });
278
- });
279
- });
280
- //# sourceMappingURL=markdown.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.test.js","sourceRoot":"","sources":["../../src/docs/markdown.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/docs/parsing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAoB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAInD,KAAK,WAAW,GAAG,CAAC,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG;IAC3G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,SAAS,GAAG,OAAO,GAAG;IACzB,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM;;;;;EAiC/C;AAgBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAQxE;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAOtE"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=parsing.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsing.test.d.ts","sourceRoot":"","sources":["../../src/docs/parsing.test.ts"],"names":[],"mappings":""}
@@ -1,190 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const parsing_1 = require("./parsing");
4
- describe("parsing", () => {
5
- describe("parseEntityJSDocs", () => {
6
- it("extracts class-level JSDoc", () => {
7
- const source = ["/** The Author entity. */", "export class Author extends AuthorCodegen {}"].join("\n");
8
- const { classDoc } = (0, parsing_1.parseEntityJSDocs)(source);
9
- expect(classDoc).toBe("The Author entity.");
10
- });
11
- it("extracts class-level JSDoc when no doc present", () => {
12
- const source = "export class Author extends AuthorCodegen {}";
13
- const { classDoc } = (0, parsing_1.parseEntityJSDocs)(source);
14
- expect(classDoc).toBeUndefined();
15
- });
16
- it("extracts field JSDoc from class properties", () => {
17
- const source = [
18
- "export class Author extends AuthorCodegen {",
19
- " /** The first name. */",
20
- ' readonly firstName: string = "";',
21
- ' lastName: string = "";',
22
- "}",
23
- ].join("\n");
24
- const { members } = (0, parsing_1.parseEntityJSDocs)(source);
25
- expect(members).toMatchObject([
26
- { name: "firstName", kind: "property", doc: "The first name." },
27
- { name: "lastName", kind: "property", doc: undefined },
28
- ]);
29
- });
30
- it("extracts JSDoc from getters, setters, and methods", () => {
31
- const source = [
32
- "export class Author extends AuthorCodegen {",
33
- " /** Getter doc. */",
34
- ' get fullName(): string { return ""; }',
35
- " /** Setter doc. */",
36
- " set fullName(v: string) {}",
37
- " /** Method doc. */",
38
- " async doStuff(): Promise<void> {}",
39
- "}",
40
- ].join("\n");
41
- const { members } = (0, parsing_1.parseEntityJSDocs)(source);
42
- expect(members).toMatchObject([
43
- { name: "fullName", kind: "getter", doc: "Getter doc." },
44
- { name: "fullName", kind: "setter", doc: "Setter doc." },
45
- { name: "doStuff", kind: "method", doc: "Method doc." },
46
- ]);
47
- });
48
- it("handles multi-line JSDoc", () => {
49
- const source = [
50
- "export class Author extends AuthorCodegen {",
51
- " /**",
52
- " * Line one.",
53
- " * Line two.",
54
- " */",
55
- ' readonly notes: string = "";',
56
- "}",
57
- ].join("\n");
58
- const { members } = (0, parsing_1.parseEntityJSDocs)(source);
59
- expect(members[0].doc).toBe("Line one.\nLine two.");
60
- });
61
- });
62
- describe("buildJSDocEdit / applyEdits", () => {
63
- it("does not produce trailing spaces on blank lines in multi-line docs", () => {
64
- const source = ["export class Author extends AuthorCodegen {", ' readonly notes: string = "";', "}"].join("\n");
65
- const { members } = (0, parsing_1.parseEntityJSDocs)(source);
66
- const edit = (0, parsing_1.buildJSDocEdit)(members[0].node, "First paragraph.\n\nSecond paragraph.");
67
- const output = (0, parsing_1.applyEdits)(source, [edit]);
68
- for (const line of output.split("\n")) {
69
- expect(line).toBe(line.trimEnd());
70
- }
71
- expect(output).toMatch(/\* First paragraph\.\n\s+\*\n\s+\* Second paragraph\./);
72
- });
73
- it("replaces an existing comment without reformatting other code", () => {
74
- const source = [
75
- "/** Old class doc. */",
76
- "export class Foo {",
77
- " /** Old field doc. */",
78
- ' readonly name: string = "";',
79
- "}",
80
- ].join("\n");
81
- const { classNode, members } = (0, parsing_1.parseEntityJSDocs)(source);
82
- const edits = [(0, parsing_1.buildJSDocEdit)(classNode, "New class doc."), (0, parsing_1.buildJSDocEdit)(members[0].node, "New field doc.")];
83
- const output = (0, parsing_1.applyEdits)(source, edits);
84
- expect(output).toBe([
85
- "/** New class doc. */",
86
- "export class Foo {",
87
- " /** New field doc. */",
88
- ' readonly name: string = "";',
89
- "}",
90
- ].join("\n"));
91
- });
92
- it("inserts a new comment where none existed", () => {
93
- const source = ["export class Foo {", ' readonly name: string = "";', "}"].join("\n");
94
- const { members } = (0, parsing_1.parseEntityJSDocs)(source);
95
- const output = (0, parsing_1.applyEdits)(source, [(0, parsing_1.buildJSDocEdit)(members[0].node, "The name.")]);
96
- expect(output).toBe(["export class Foo {", " /** The name. */", ' readonly name: string = "";', "}"].join("\n"));
97
- });
98
- it("indents multi-line field docs to match the field's indentation", () => {
99
- const source = [
100
- "export class Invoice extends InvoiceCodegen {",
101
- " /** Old doc. */",
102
- " readonly pocInvoicedToDateInCents: number = 0;",
103
- "}",
104
- ].join("\n");
105
- const { members } = (0, parsing_1.parseEntityJSDocs)(source);
106
- const text = "Calculate the POC as of this invoice creation.\nFilter out Void and Rejected invoices.";
107
- const output = (0, parsing_1.applyEdits)(source, [(0, parsing_1.buildJSDocEdit)(members[0].node, text)]);
108
- expect(output).toBe([
109
- "export class Invoice extends InvoiceCodegen {",
110
- " /**",
111
- " * Calculate the POC as of this invoice creation.",
112
- " * Filter out Void and Rejected invoices.",
113
- " */",
114
- " readonly pocInvoicedToDateInCents: number = 0;",
115
- "}",
116
- ].join("\n"));
117
- });
118
- it("preserves all original formatting when replacing docs", () => {
119
- const source = [
120
- "/** The entity. */",
121
- "export class Author extends AuthorCodegen {",
122
- " readonly transientFields = {",
123
- ' beforeFlushRan: { type: "boolean", default: false },',
124
- ' beforeCreateRan: { type: "boolean", default: false },',
125
- " };",
126
- "}",
127
- ].join("\n");
128
- const { classNode } = (0, parsing_1.parseEntityJSDocs)(source);
129
- const output = (0, parsing_1.applyEdits)(source, [(0, parsing_1.buildJSDocEdit)(classNode, "Updated entity.")]);
130
- expect(output).toBe([
131
- "/** Updated entity. */",
132
- "export class Author extends AuthorCodegen {",
133
- " readonly transientFields = {",
134
- ' beforeFlushRan: { type: "boolean", default: false },',
135
- ' beforeCreateRan: { type: "boolean", default: false },',
136
- " };",
137
- "}",
138
- ].join("\n"));
139
- });
140
- });
141
- describe("fieldDocs", () => {
142
- it("prefers getter doc over setter doc for same name", () => {
143
- const source = [
144
- "export class Author extends AuthorCodegen {",
145
- " /** The full name. */",
146
- ' get fullName(): string { return ""; }',
147
- " /** Set the full name. */",
148
- " set fullName(v: string) {}",
149
- "}",
150
- ].join("\n");
151
- const { fieldDocs } = (0, parsing_1.parseEntityJSDocs)(source);
152
- expect(fieldDocs).toEqual({ fullName: "The full name." });
153
- });
154
- it("uses setter doc when getter has no doc", () => {
155
- const source = [
156
- "export class Author extends AuthorCodegen {",
157
- ' get fullName(): string { return ""; }',
158
- " /** Set the full name. */",
159
- " set fullName(v: string) {}",
160
- "}",
161
- ].join("\n");
162
- const { fieldDocs } = (0, parsing_1.parseEntityJSDocs)(source);
163
- expect(fieldDocs).toEqual({ fullName: "Set the full name." });
164
- });
165
- it("skips members without docs", () => {
166
- const source = [
167
- "export class Author extends AuthorCodegen {",
168
- " /** A doc. */",
169
- ' readonly a: string = "";',
170
- ' readonly b: string = "";',
171
- "}",
172
- ].join("\n");
173
- const { fieldDocs } = (0, parsing_1.parseEntityJSDocs)(source);
174
- expect(fieldDocs).toEqual({ a: "A doc." });
175
- });
176
- it("skips methods", () => {
177
- const source = [
178
- "export class Author extends AuthorCodegen {",
179
- " /** The first name. */",
180
- ' readonly firstName: string = "";',
181
- " /** Text representation. */",
182
- " async toDetailString(): Promise<string> { return ''; }",
183
- "}",
184
- ].join("\n");
185
- const { fieldDocs } = (0, parsing_1.parseEntityJSDocs)(source);
186
- expect(fieldDocs).toEqual({ firstName: "The first name." });
187
- });
188
- });
189
- });
190
- //# sourceMappingURL=parsing.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsing.test.js","sourceRoot":"","sources":["../../src/docs/parsing.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"findEntityScopes.d.ts","sourceRoot":"","sources":["../src/findEntityScopes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAE1B,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AAEjE,4DAA4D;AAC5D,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAE3G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"foreignKeyOrdering.d.ts","sourceRoot":"","sources":["../src/foreignKeyOrdering.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAKnD,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD5G"}