joist-codegen 2.3.0-next.2 → 2.3.0-next.20
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/EntityDbMetadata.d.ts +3 -1
- package/build/EntityDbMetadata.js +3 -0
- package/build/EntityDbMetadata.js.map +1 -1
- package/build/assignTags.d.ts +0 -1
- package/build/codemods/Codemod.d.ts +0 -1
- package/build/codemods/JscodeshiftMod.d.ts +0 -1
- package/build/codemods/codemod_0001-rename_has_async_property.d.ts +0 -1
- package/build/codemods/codemod_0002-rename_async_query_fields.d.ts +0 -1
- package/build/codemods/codemod_0003-rename_find_paginated.d.ts +0 -1
- package/build/codemods/index.d.ts +0 -1
- package/build/config.d.ts +13 -2
- package/build/config.js +23 -0
- package/build/config.js.map +1 -1
- package/build/docs/cache.d.ts +0 -1
- package/build/docs/generate-metadata-docs.d.ts +2 -3
- package/build/docs/generate-metadata-docs.js +4 -7
- package/build/docs/generate-metadata-docs.js.map +1 -1
- package/build/docs/index.d.ts +5 -1
- package/build/docs/index.js +16 -2
- package/build/docs/index.js.map +1 -1
- package/build/docs/markdown.d.ts +0 -1
- package/build/docs/parsing.d.ts +4 -1
- package/build/docs/parsing.js +6 -0
- package/build/docs/parsing.js.map +1 -1
- package/build/findEntityScopes.d.ts +0 -1
- package/build/foreignKeyOrdering.d.ts +0 -1
- package/build/generate.d.ts +0 -1
- package/build/generate.js +10 -4
- package/build/generate.js.map +1 -1
- package/build/generateEntitiesFile.d.ts +0 -1
- package/build/generateEntityCodegenFile.d.ts +2 -2
- package/build/generateEntityCodegenFile.js +56 -19
- package/build/generateEntityCodegenFile.js.map +1 -1
- package/build/generateEntityFile.d.ts +0 -1
- package/build/generateEntityTestFile.d.ts +0 -1
- package/build/generateEnumFile.d.ts +0 -1
- package/build/generateFactoriesFiles.d.ts +0 -1
- package/build/generateFlushFunction.d.ts +0 -1
- package/build/generateMetadataFile.d.ts +0 -1
- package/build/generateMetadataFile.js +7 -0
- package/build/generateMetadataFile.js.map +1 -1
- package/build/generatePgEnumFile.d.ts +0 -1
- package/build/index.d.ts +1 -1
- package/build/index.js +23 -0
- package/build/index.js.map +1 -1
- package/build/inheritance.d.ts +0 -1
- package/build/installSkills.d.ts +12 -0
- package/build/installSkills.js +69 -0
- package/build/installSkills.js.map +1 -0
- package/build/keywords.d.ts +0 -1
- package/build/loadMetadata.d.ts +0 -1
- package/build/logger.d.ts +0 -1
- package/build/scanEntityFiles.d.ts +0 -1
- package/build/sortForeignKeys.d.ts +0 -1
- package/build/symbols.d.ts +3 -1
- package/build/symbols.js +6 -3
- package/build/symbols.js.map +1 -1
- package/build/tsdoc.d.ts +0 -1
- package/build/utils.d.ts +0 -1
- package/build/write-json-schema.d.ts +0 -1
- package/package.json +4 -3
- package/skills/joist-docs/SKILL.md +133 -0
- package/skills/joist-em-basics/SKILL.md +114 -0
- package/skills/joist-partial-updates/SKILL.md +352 -0
- package/skills/joist-reactive-hints/SKILL.md +150 -0
- package/skills/joist-test-factories/SKILL.md +397 -0
- package/skills/joist-upsert/SKILL.md +95 -0
- package/build/EntityDbMetadata.d.ts.map +0 -1
- package/build/EntityDbMetadata.test.d.ts +0 -2
- package/build/EntityDbMetadata.test.d.ts.map +0 -1
- package/build/EntityDbMetadata.test.js +0 -211
- package/build/EntityDbMetadata.test.js.map +0 -1
- package/build/assignTags.d.ts.map +0 -1
- package/build/codemods/Codemod.d.ts.map +0 -1
- package/build/codemods/JscodeshiftMod.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js +0 -9
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js.map +0 -1
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js +0 -9
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js.map +0 -1
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js +0 -9
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js.map +0 -1
- package/build/codemods/codemod_0001-rename_has_async_property.d.ts.map +0 -1
- package/build/codemods/codemod_0002-rename_async_query_fields.d.ts.map +0 -1
- package/build/codemods/codemod_0003-rename_find_paginated.d.ts.map +0 -1
- package/build/codemods/index.d.ts.map +0 -1
- package/build/codemods/index.test.d.ts +0 -2
- package/build/codemods/index.test.d.ts.map +0 -1
- package/build/codemods/index.test.js +0 -24
- package/build/codemods/index.test.js.map +0 -1
- package/build/config.d.ts.map +0 -1
- package/build/config.test.d.ts +0 -2
- package/build/config.test.d.ts.map +0 -1
- package/build/config.test.js +0 -78
- package/build/config.test.js.map +0 -1
- package/build/docs/cache.d.ts.map +0 -1
- package/build/docs/cache.test.d.ts +0 -2
- package/build/docs/cache.test.d.ts.map +0 -1
- package/build/docs/cache.test.js +0 -47
- package/build/docs/cache.test.js.map +0 -1
- package/build/docs/generate-metadata-docs.d.ts.map +0 -1
- package/build/docs/index.d.ts.map +0 -1
- package/build/docs/index.test.d.ts +0 -2
- package/build/docs/index.test.d.ts.map +0 -1
- package/build/docs/index.test.js +0 -100
- package/build/docs/index.test.js.map +0 -1
- package/build/docs/markdown.d.ts.map +0 -1
- package/build/docs/markdown.test.d.ts +0 -2
- package/build/docs/markdown.test.d.ts.map +0 -1
- package/build/docs/markdown.test.js +0 -280
- package/build/docs/markdown.test.js.map +0 -1
- package/build/docs/parsing.d.ts.map +0 -1
- package/build/docs/parsing.test.d.ts +0 -2
- package/build/docs/parsing.test.d.ts.map +0 -1
- package/build/docs/parsing.test.js +0 -190
- package/build/docs/parsing.test.js.map +0 -1
- package/build/findEntityScopes.d.ts.map +0 -1
- package/build/foreignKeyOrdering.d.ts.map +0 -1
- package/build/generate.d.ts.map +0 -1
- package/build/generateEntitiesFile.d.ts.map +0 -1
- package/build/generateEntityCodegenFile.d.ts.map +0 -1
- package/build/generateEntityFile.d.ts.map +0 -1
- package/build/generateEntityTestFile.d.ts.map +0 -1
- package/build/generateEnumFile.d.ts.map +0 -1
- package/build/generateFactoriesFiles.d.ts.map +0 -1
- package/build/generateFlushFunction.d.ts.map +0 -1
- package/build/generateMetadataFile.d.ts.map +0 -1
- package/build/generatePgEnumFile.d.ts.map +0 -1
- package/build/index.d.ts.map +0 -1
- package/build/inheritance.d.ts.map +0 -1
- package/build/keywords.d.ts.map +0 -1
- package/build/loadMetadata.d.ts.map +0 -1
- package/build/logger.d.ts.map +0 -1
- package/build/scanEntityFiles.d.ts.map +0 -1
- package/build/sortForeignKeys.d.ts.map +0 -1
- package/build/symbols.d.ts.map +0 -1
- package/build/tsdoc.d.ts.map +0 -1
- package/build/utils.d.ts.map +0 -1
- package/build/write-json-schema.d.ts.map +0 -1
|
@@ -17,4 +17,3 @@ export declare function generateExplicitFlushFunction(db: DbMetadata): string;
|
|
|
17
17
|
* and ~5,000 tests, it gave an 8% speed-up vs. the "DELETE every table" approach).
|
|
18
18
|
*/
|
|
19
19
|
export declare function generateSequenceFlushFunction(db: DbMetadata): string;
|
|
20
|
-
//# sourceMappingURL=generateFlushFunction.d.ts.map
|
|
@@ -2,4 +2,3 @@ import { Code } from "ts-poet";
|
|
|
2
2
|
import { Config } from "./config";
|
|
3
3
|
import { DbMetadata, EntityDbMetadata } from "./EntityDbMetadata";
|
|
4
4
|
export declare function generateMetadataFile(config: Config, dbMeta: DbMetadata, meta: EntityDbMetadata): Code;
|
|
5
|
-
//# sourceMappingURL=generateMetadataFile.d.ts.map
|
|
@@ -128,6 +128,7 @@ function generateFields(config, dbMetadata) {
|
|
|
128
128
|
type: ${typeof p.rawFieldType === "string" ? `"${p.rawFieldType}"` : p.rawFieldType},
|
|
129
129
|
serde: ${serde},
|
|
130
130
|
immutable: false,
|
|
131
|
+
${p.lazy ? (0, ts_poet_1.code) `lazy: true,` : ""}
|
|
131
132
|
${extras}
|
|
132
133
|
${maybeDefault(p)}
|
|
133
134
|
${maybeSanitize(config, p)}
|
|
@@ -201,6 +202,7 @@ function generateFields(config, dbMetadata) {
|
|
|
201
202
|
serde: undefined,
|
|
202
203
|
immutable: false,
|
|
203
204
|
${maybeOrderBy(o2m)}
|
|
205
|
+
${maybeSoftDeletes(o2m)}
|
|
204
206
|
}
|
|
205
207
|
`;
|
|
206
208
|
});
|
|
@@ -236,6 +238,7 @@ function generateFields(config, dbMetadata) {
|
|
|
236
238
|
joinTableName: "${m2m.joinTableName}",
|
|
237
239
|
columnNames: ["${m2m.columnName}", "${m2m.otherColumnName}"],
|
|
238
240
|
hasJoinTableId: ${m2m.hasJoinTableId},
|
|
241
|
+
${maybeSoftDeletes(m2m)}
|
|
239
242
|
}
|
|
240
243
|
`;
|
|
241
244
|
});
|
|
@@ -300,6 +303,10 @@ function maybeDefault(f) {
|
|
|
300
303
|
function maybeOrderBy(f) {
|
|
301
304
|
return f.orderBy ? (0, ts_poet_1.code) `orderBy: { field: "${f.orderBy.field}", direction: "${f.orderBy.direction}" },` : "";
|
|
302
305
|
}
|
|
306
|
+
/** Emits the `softDeletes` config, i.e. `softDeletes: "include",`, for relations that opt out of hiding soft-deletes. */
|
|
307
|
+
function maybeSoftDeletes(f) {
|
|
308
|
+
return f.softDeletes ? (0, ts_poet_1.code) `softDeletes: "${f.softDeletes}",` : "";
|
|
309
|
+
}
|
|
303
310
|
/** We sanitize/cleanStringValue all varchars, unless opted out by the column default/arrays/custom serdes. */
|
|
304
311
|
function maybeSanitize(config, f) {
|
|
305
312
|
// Only strings need to maybe turn off their cleanStringValue sanitization, if the default="" or its an array
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateMetadataFile.js","sourceRoot":"","sources":["../src/generateMetadataFile.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generateMetadataFile.js","sourceRoot":"","sources":["../src/generateMetadataFile.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
import { DbMetadata, EntityDbMetadata } from "./EntityDbMetadata";
|
|
2
3
|
import { Config } from "./config";
|
|
3
4
|
import { mapSimpleDbTypeToTypescriptType } from "./utils";
|
|
@@ -8,4 +9,3 @@ export declare function joistCodegen(): Promise<void>;
|
|
|
8
9
|
/** Uses entities and enums from the `db` schema and saves them into our entities directory. */
|
|
9
10
|
export declare function generateAndSaveFiles(config: Config, dbMeta: DbMetadata): Promise<void>;
|
|
10
11
|
export declare function maybeSetExitCode(): void;
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
package/build/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -21,6 +22,7 @@ const foreignKeyOrdering_1 = require("./foreignKeyOrdering");
|
|
|
21
22
|
const generate_1 = require("./generate");
|
|
22
23
|
const generateFlushFunction_1 = require("./generateFlushFunction");
|
|
23
24
|
const inheritance_1 = require("./inheritance");
|
|
25
|
+
const installSkills_1 = require("./installSkills");
|
|
24
26
|
const loadMetadata_1 = require("./loadMetadata");
|
|
25
27
|
const logger_1 = require("./logger");
|
|
26
28
|
const scanEntityFiles_1 = require("./scanEntityFiles");
|
|
@@ -50,6 +52,7 @@ async function joistCodegen() {
|
|
|
50
52
|
(0, EntityDbMetadata_1.resolveNameConflicts)(config, dbMetadata);
|
|
51
53
|
// Assign any new tags and write them back to the config file
|
|
52
54
|
(0, assignTags_1.assignTags)(config, dbMetadata);
|
|
55
|
+
validateTagDelimiter(config, entities);
|
|
53
56
|
// Scan `*.ts` files after we've expanded `Task` -> `TaskOld.ts`
|
|
54
57
|
await (0, scanEntityFiles_1.scanEntityFiles)(config, dbMetadata);
|
|
55
58
|
// If we're not using deferred FKs, determine our DAG insert order
|
|
@@ -65,6 +68,9 @@ async function joistCodegen() {
|
|
|
65
68
|
(0, config_1.warnInvalidConfigEntries)(config, dbMetadata);
|
|
66
69
|
// Finally actually generate the files (even if we found a fatal error)
|
|
67
70
|
await generateAndSaveFiles(config, dbMetadata);
|
|
71
|
+
// Install our bundled Agent Skills so coding agents can find them, unless explicitly disabled
|
|
72
|
+
if (config.skills !== false)
|
|
73
|
+
await (0, installSkills_1.installSkills)();
|
|
68
74
|
(0, config_1.stripStiPlaceholders)(config, entities);
|
|
69
75
|
await (0, config_1.writeConfig)(config);
|
|
70
76
|
}
|
|
@@ -131,6 +137,23 @@ function maybeSetExitCode() {
|
|
|
131
137
|
node_process_1.default.exitCode = 1;
|
|
132
138
|
}
|
|
133
139
|
}
|
|
140
|
+
/** Validates that tags can be parsed unambiguously with the configured delimiter. */
|
|
141
|
+
function validateTagDelimiter(config, entities) {
|
|
142
|
+
const tagDelimiter = config.tagDelimiter ?? ":";
|
|
143
|
+
for (const entity of entities) {
|
|
144
|
+
if (tagDelimiter !== "" && `${entity.tagName}${tagDelimiter}`.indexOf(tagDelimiter) !== entity.tagName.length) {
|
|
145
|
+
throw new Error(`Tagged id delimiter '${tagDelimiter}' cannot occur in or overlap tag '${entity.tagName}' for ${entity.name}`);
|
|
146
|
+
}
|
|
147
|
+
else if (tagDelimiter === "" && !/^[a-z]+$/i.test(entity.tagName)) {
|
|
148
|
+
throw new Error(`Delimiterless ids require an alphabetic tag, got '${entity.tagName}' for ${entity.name}`);
|
|
149
|
+
}
|
|
150
|
+
else if (tagDelimiter === "" &&
|
|
151
|
+
entity.primaryKey.columnType !== "int" &&
|
|
152
|
+
entity.primaryKey.columnType !== "bigint") {
|
|
153
|
+
throw new Error(`Delimiterless ids require an int or bigint primary key, got '${entity.primaryKey.columnType}' for ${entity.name}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
134
157
|
if (require.main === module) {
|
|
135
158
|
joistCodegen()
|
|
136
159
|
.then(() => maybeSetExitCode())
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/inheritance.d.ts
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copies Joist's bundled Agent Skills into the project so coding agents can
|
|
3
|
+
* discover them, then prunes any previously-installed Joist skills that no
|
|
4
|
+
* longer ship with this version.
|
|
5
|
+
*
|
|
6
|
+
* The skills are framework-owned and rewritten on every codegen run, so users
|
|
7
|
+
* should not hand-edit them (re-run codegen to pick up new Joist versions).
|
|
8
|
+
*
|
|
9
|
+
* Logs only what actually changed: the added and removed skill names, staying
|
|
10
|
+
* quiet when nothing changed.
|
|
11
|
+
*/
|
|
12
|
+
export declare function installSkills(rootDir?: string): Promise<void>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.installSkills = installSkills;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
/** The bundled skills live at the package root, alongside `build`/`src`. */
|
|
7
|
+
const bundledSkillsDir = (0, path_1.resolve)(__dirname, "../skills");
|
|
8
|
+
/**
|
|
9
|
+
* Targets that each get a full copy of every skill directory.
|
|
10
|
+
*
|
|
11
|
+
* `.claude/skills` is read by Claude Code (and opencode); `.agents/skills` is read
|
|
12
|
+
* by Codex (and opencode), so writing both gives native coverage across all three.
|
|
13
|
+
*/
|
|
14
|
+
const skillTargets = [".claude/skills", ".agents/skills"];
|
|
15
|
+
/** Joist owns the `joist-` skill namespace, so stale ones there are ours to prune. */
|
|
16
|
+
const skillPrefix = "joist-";
|
|
17
|
+
/**
|
|
18
|
+
* Copies Joist's bundled Agent Skills into the project so coding agents can
|
|
19
|
+
* discover them, then prunes any previously-installed Joist skills that no
|
|
20
|
+
* longer ship with this version.
|
|
21
|
+
*
|
|
22
|
+
* The skills are framework-owned and rewritten on every codegen run, so users
|
|
23
|
+
* should not hand-edit them (re-run codegen to pick up new Joist versions).
|
|
24
|
+
*
|
|
25
|
+
* Logs only what actually changed: the added and removed skill names, staying
|
|
26
|
+
* quiet when nothing changed.
|
|
27
|
+
*/
|
|
28
|
+
async function installSkills(rootDir = ".") {
|
|
29
|
+
const bundled = await readSkillNames(bundledSkillsDir);
|
|
30
|
+
if (bundled.length === 0)
|
|
31
|
+
return;
|
|
32
|
+
const bundledSet = new Set(bundled);
|
|
33
|
+
// Snapshot what each target already has before we copy/remove, so we can diff.
|
|
34
|
+
const existingPerTarget = await Promise.all(skillTargets.map((target) => readSkillNames((0, path_1.join)(rootDir, target))));
|
|
35
|
+
// Always `cp` the bundled skills into each target, overwriting any existing ones
|
|
36
|
+
await Promise.all(skillTargets.flatMap((target) => bundled.map((name) => fs_1.promises.cp((0, path_1.join)(bundledSkillsDir, name), (0, path_1.join)(rootDir, target, name), { recursive: true, force: true }))));
|
|
37
|
+
// Prune stale Joist skills (previously installed here, but no longer bundled).
|
|
38
|
+
const removed = new Set();
|
|
39
|
+
await Promise.all(skillTargets.map(async (target, i) => {
|
|
40
|
+
const stale = existingPerTarget[i].filter((name) => name.startsWith(skillPrefix) && !bundledSet.has(name));
|
|
41
|
+
await Promise.all(stale.map(async (name) => {
|
|
42
|
+
removed.add(name);
|
|
43
|
+
await fs_1.promises.rm((0, path_1.join)(rootDir, target, name), { recursive: true, force: true });
|
|
44
|
+
}));
|
|
45
|
+
}));
|
|
46
|
+
// A skill is "new" if it was missing from at least one target before this run.
|
|
47
|
+
const added = bundled.filter((name) => existingPerTarget.some((names) => !names.includes(name)));
|
|
48
|
+
if (added.length > 0) {
|
|
49
|
+
console.log(`Added ${added.length} Joist skill(s) to ${skillTargets.join(" and ")}:`);
|
|
50
|
+
for (const name of added)
|
|
51
|
+
console.log(` + ${name}`);
|
|
52
|
+
}
|
|
53
|
+
if (removed.size > 0) {
|
|
54
|
+
console.log(`Removed ${removed.size} stale Joist skill(s) from ${skillTargets.join(" and ")}:`);
|
|
55
|
+
for (const name of removed)
|
|
56
|
+
console.log(` - ${name}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** Lists the skill directory names in a dir, or `[]` if it's missing. I.e. ["joist-upsert", ...]. */
|
|
60
|
+
async function readSkillNames(dir) {
|
|
61
|
+
try {
|
|
62
|
+
const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
63
|
+
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=installSkills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installSkills.js","sourceRoot":"","sources":["../src/installSkills.ts"],"names":[],"mappings":"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"}
|
package/build/keywords.d.ts
CHANGED
package/build/loadMetadata.d.ts
CHANGED
|
@@ -23,4 +23,3 @@ export type EnumRow = {
|
|
|
23
23
|
};
|
|
24
24
|
export declare function loadEnumMetadata(db: Db, client: Client, config: Config): Promise<EnumMetadata>;
|
|
25
25
|
export declare function loadPgEnumMetadata(db: Db, client: Client, config: Config): Promise<PgEnumMetadata>;
|
|
26
|
-
//# sourceMappingURL=loadMetadata.d.ts.map
|
package/build/logger.d.ts
CHANGED
|
@@ -2,4 +2,3 @@ import { DbMetadata } from "./EntityDbMetadata";
|
|
|
2
2
|
import { Config } from "./config";
|
|
3
3
|
/** Scans the entity files themselves for usage hints (like `setDefault` calls) to drive our codegen output. */
|
|
4
4
|
export declare function scanEntityFiles(config: Config, dbMeta: DbMetadata): Promise<void>;
|
|
5
|
-
//# sourceMappingURL=scanEntityFiles.d.ts.map
|
package/build/symbols.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export declare const EnumMetadata: import("ts-poet").Import;
|
|
|
18
18
|
export declare const Lens: import("ts-poet").Import;
|
|
19
19
|
export declare const KeySerde: import("ts-poet").Import;
|
|
20
20
|
export declare const ManyToOneReference: import("ts-poet").Import;
|
|
21
|
+
export declare const LazyField: import("ts-poet").Import;
|
|
22
|
+
export declare const hasLazyField: import("ts-poet").Import;
|
|
21
23
|
export declare const ReadOnlyCollection: import("ts-poet").Import;
|
|
22
24
|
export declare const PolymorphicReference: import("ts-poet").Import;
|
|
23
25
|
export declare const OneToOneReference: import("ts-poet").Import;
|
|
@@ -64,6 +66,7 @@ export declare const ToJsonHint: import("ts-poet").Import;
|
|
|
64
66
|
export declare const JsonPayload: import("ts-poet").Import;
|
|
65
67
|
export declare const configureMetadata: import("ts-poet").Import;
|
|
66
68
|
export declare const newRequiredRule: import("ts-poet").Import;
|
|
69
|
+
export declare const newRequiredLazyFieldRule: import("ts-poet").Import;
|
|
67
70
|
export declare const cannotBeUpdated: import("ts-poet").Import;
|
|
68
71
|
export declare const mustBeSubType: import("ts-poet").Import;
|
|
69
72
|
export declare const cleanStringValue: import("ts-poet").Import;
|
|
@@ -105,4 +108,3 @@ export declare const ReactiveManyToManyOtherSide: import("ts-poet").Import;
|
|
|
105
108
|
export declare const hasReactiveManyToManyOtherSide: import("ts-poet").Import;
|
|
106
109
|
export declare const updatePartial: import("ts-poet").Import;
|
|
107
110
|
export declare const setRuntimeConfig: import("ts-poet").Import;
|
|
108
|
-
//# sourceMappingURL=symbols.d.ts.map
|
package/build/symbols.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.setRuntimeConfig = exports.updatePartial = exports.hasReactiveManyToManyOtherSide = exports.ReactiveManyToManyOtherSide = exports.ReactiveManyToMany = exports.ReactiveReference = exports.ReactiveField = void 0;
|
|
3
|
+
exports.FieldsOf = exports.OptsOf = exports.OrderBy = exports.setField = exports.getField = exports.setOpts = exports.failNoIdYet = exports.fail = exports.DecimalToNumberSerde = exports.CustomSerdeAdapter = exports.ZodSerde = exports.TaggedId = exports.SuperstructSerde = exports.JsonSerde = exports.ZonedDateTimeSerde = exports.PlainDateTimeSerde = exports.PlainTimeSerde = exports.PlainDateSerde = exports.DateSerde = exports.BigIntSerde = exports.PrimitiveSerde = exports.PolymorphicKeySerde = exports.EnumArrayFieldSerde = exports.EnumFieldSerde = exports.ManyToManyCollection = exports.OneToOneReference = exports.PolymorphicReference = exports.ReadOnlyCollection = exports.hasLazyField = exports.LazyField = exports.ManyToOneReference = exports.KeySerde = exports.Lens = exports.EnumMetadata = exports.EntityMetadata = exports.JoistEntityManager = exports.OneToManyCollection = exports.LargeCollection = exports.EnumCollection = exports.Collection = exports.Reference = exports.Flavor = exports.BaseEntity = exports.Entity = exports.FieldStatus = exports.Scope = exports.newScopeFn = exports.ConfigApi = exports.EntityManager = exports.ProjectEntity = void 0;
|
|
4
|
+
exports.MaybeAbstractEntityConstructor = exports.EntityConstructor = exports.Zod = exports.SSAssert = exports.FactoryOpts = exports.DeepNew = exports.New = exports.newTestInstance = exports.hasLargeManyToMany = exports.hasEnumCollection = exports.hasManyToMany = exports.hasOneToOne = exports.hasOnePolymorphic = exports.hasRecursiveParents = exports.hasRecursiveM2m = exports.hasRecursiveChildren = exports.hasOne = exports.hasLargeMany = exports.hasMany = exports.hasOneThrough = exports.loadLens = exports.isEntity = exports.getInstanceData = exports.isLoaded = exports.Loaded = exports.LoadHint = exports.newChangesProxy = exports.Changes = exports.cleanStringValue = exports.mustBeSubType = exports.cannotBeUpdated = exports.newRequiredLazyFieldRule = exports.newRequiredRule = exports.configureMetadata = exports.JsonPayload = exports.ToJsonHint = exports.JsonHint = exports.GraphQLFilterOf = exports.FilterOf = exports.ValueGraphQLFilter = exports.EnumGraphQLFilter = exports.EntityGraphQLFilter = exports.BooleanGraphQLFilter = exports.EntityFilter = exports.ValueFilter = exports.BooleanFilter = exports.DeepPartialOrNull = exports.PartialOrNull = exports.IdOf = exports.RelationsOf = void 0;
|
|
5
|
+
exports.setRuntimeConfig = exports.updatePartial = exports.hasReactiveManyToManyOtherSide = exports.ReactiveManyToManyOtherSide = exports.ReactiveManyToMany = exports.ReactiveReference = exports.ReactiveField = exports.toJSON = exports.toIdOf = exports.deTagId = void 0;
|
|
6
6
|
const ts_poet_1 = require("ts-poet");
|
|
7
7
|
exports.ProjectEntity = (0, ts_poet_1.imp)(`t:Entity@./entities.ts`);
|
|
8
8
|
exports.EntityManager = (0, ts_poet_1.imp)("EntityManager@./entities.ts");
|
|
@@ -24,6 +24,8 @@ exports.EnumMetadata = (0, ts_poet_1.imp)("t:EnumMetadata@joist-orm");
|
|
|
24
24
|
exports.Lens = (0, ts_poet_1.imp)("t:Lens@joist-orm");
|
|
25
25
|
exports.KeySerde = (0, ts_poet_1.imp)("KeySerde@joist-orm");
|
|
26
26
|
exports.ManyToOneReference = (0, ts_poet_1.imp)("t:ManyToOneReference@joist-orm");
|
|
27
|
+
exports.LazyField = (0, ts_poet_1.imp)("t:LazyField@joist-orm");
|
|
28
|
+
exports.hasLazyField = (0, ts_poet_1.imp)("hasLazyField@joist-orm");
|
|
27
29
|
exports.ReadOnlyCollection = (0, ts_poet_1.imp)("t:ReadOnlyCollection@joist-orm");
|
|
28
30
|
exports.PolymorphicReference = (0, ts_poet_1.imp)("t:PolymorphicReference@joist-orm");
|
|
29
31
|
exports.OneToOneReference = (0, ts_poet_1.imp)("t:OneToOneReference@joist-orm");
|
|
@@ -70,6 +72,7 @@ exports.ToJsonHint = (0, ts_poet_1.imp)("t:ToJsonHint@joist-orm");
|
|
|
70
72
|
exports.JsonPayload = (0, ts_poet_1.imp)("t:JsonPayload@joist-orm");
|
|
71
73
|
exports.configureMetadata = (0, ts_poet_1.imp)("configureMetadata@joist-orm");
|
|
72
74
|
exports.newRequiredRule = (0, ts_poet_1.imp)("newRequiredRule@joist-orm");
|
|
75
|
+
exports.newRequiredLazyFieldRule = (0, ts_poet_1.imp)("newRequiredLazyFieldRule@joist-orm");
|
|
73
76
|
exports.cannotBeUpdated = (0, ts_poet_1.imp)("cannotBeUpdated@joist-orm");
|
|
74
77
|
exports.mustBeSubType = (0, ts_poet_1.imp)("mustBeSubType@joist-orm");
|
|
75
78
|
exports.cleanStringValue = (0, ts_poet_1.imp)("cleanStringValue@joist-orm");
|
package/build/symbols.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":";;;;;AAAA,qCAA8B;AAEjB,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,wBAAwB,CAAC,CAAC;AAC9C,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,6BAA6B,CAAC,CAAC;AAEnD,QAAA,SAAS,GAAG,IAAA,aAAG,EAAC,qBAAqB,CAAC,CAAC;AACvC,QAAA,UAAU,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC;AACzC,QAAA,KAAK,GAAG,IAAA,aAAG,EAAC,mBAAmB,CAAC,CAAC;AACjC,QAAA,WAAW,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC7C,QAAA,MAAM,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACnC,QAAA,UAAU,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC;AACzC,QAAA,MAAM,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACnC,QAAA,SAAS,GAAG,IAAA,aAAG,EAAC,uBAAuB,CAAC,CAAC;AACzC,QAAA,UAAU,GAAG,IAAA,aAAG,EAAC,wBAAwB,CAAC,CAAC;AAC3C,QAAA,cAAc,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC;AACnD,QAAA,eAAe,GAAG,IAAA,aAAG,EAAC,6BAA6B,CAAC,CAAC;AACrD,QAAA,mBAAmB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AAC3D,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AACpD,QAAA,cAAc,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC;AACnD,QAAA,YAAY,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC;AAC/C,QAAA,IAAI,GAAG,IAAA,aAAG,EAAC,kBAAkB,CAAC,CAAC;AAC/B,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC;AAC3D,QAAA,SAAS,GAAG,IAAA,aAAG,EAAC,uBAAuB,CAAC,CAAC;AACzC,QAAA,YAAY,GAAG,IAAA,aAAG,EAAC,wBAAwB,CAAC,CAAC;AAC7C,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC;AAC3D,QAAA,oBAAoB,GAAG,IAAA,aAAG,EAAC,kCAAkC,CAAC,CAAC;AAC/D,QAAA,iBAAiB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AACzD,QAAA,oBAAoB,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC;AAC7D,QAAA,cAAc,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC;AACjD,QAAA,mBAAmB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AAC3D,QAAA,mBAAmB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AAC3D,QAAA,cAAc,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC;AACjD,QAAA,WAAW,GAAG,IAAA,aAAG,EAAC,uBAAuB,CAAC,CAAC;AAC3C,QAAA,SAAS,GAAG,IAAA,aAAG,EAAC,qBAAqB,CAAC,CAAC;AACvC,QAAA,cAAc,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC;AACjD,QAAA,cAAc,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC;AACjD,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,8BAA8B,CAAC,CAAC;AACzD,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,8BAA8B,CAAC,CAAC;AACzD,QAAA,SAAS,GAAG,IAAA,aAAG,EAAC,qBAAqB,CAAC,CAAC;AACvC,QAAA,gBAAgB,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC;AACrD,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC;AACvC,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,8BAA8B,CAAC,CAAC;AACzD,QAAA,oBAAoB,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC;AAC7D,QAAA,IAAI,GAAG,IAAA,aAAG,EAAC,gBAAgB,CAAC,CAAC;AAC7B,QAAA,WAAW,GAAG,IAAA,aAAG,EAAC,uBAAuB,CAAC,CAAC;AAC3C,QAAA,OAAO,GAAG,IAAA,aAAG,EAAC,mBAAmB,CAAC,CAAC;AACnC,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,OAAO,GAAG,IAAA,aAAG,EAAC,qBAAqB,CAAC,CAAC;AACrC,QAAA,MAAM,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACnC,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC;AACvC,QAAA,WAAW,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC7C,QAAA,IAAI,GAAG,IAAA,aAAG,EAAC,kBAAkB,CAAC,CAAC;AAC/B,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACjD,QAAA,iBAAiB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AACzD,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACjD,QAAA,WAAW,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC7C,QAAA,YAAY,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC;AAC/C,QAAA,oBAAoB,GAAG,IAAA,aAAG,EAAC,kCAAkC,CAAC,CAAC;AAC/D,QAAA,mBAAmB,GAAG,IAAA,aAAG,EAAC,iCAAiC,CAAC,CAAC;AAC7D,QAAA,iBAAiB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AACzD,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC;AAC3D,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC;AACvC,QAAA,eAAe,GAAG,IAAA,aAAG,EAAC,6BAA6B,CAAC,CAAC;AACrD,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC;AACvC,QAAA,UAAU,GAAG,IAAA,aAAG,EAAC,wBAAwB,CAAC,CAAC;AAC3C,QAAA,WAAW,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC7C,QAAA,iBAAiB,GAAG,IAAA,aAAG,EAAC,6BAA6B,CAAC,CAAC;AACvD,QAAA,eAAe,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACnD,QAAA,wBAAwB,GAAG,IAAA,aAAG,EAAC,oCAAoC,CAAC,CAAC;AACrE,QAAA,eAAe,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACnD,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC/C,QAAA,gBAAgB,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC;AACrD,QAAA,OAAO,GAAG,IAAA,aAAG,EAAC,qBAAqB,CAAC,CAAC;AACrC,QAAA,eAAe,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACnD,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC;AACvC,QAAA,MAAM,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACnC,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,eAAe,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACnD,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC/C,QAAA,OAAO,GAAG,IAAA,aAAG,EAAC,mBAAmB,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,IAAA,aAAG,EAAC,wBAAwB,CAAC,CAAC;AAC7C,QAAA,MAAM,GAAG,IAAA,aAAG,EAAC,kBAAkB,CAAC,CAAC;AACjC,QAAA,oBAAoB,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC;AAC7D,QAAA,eAAe,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACnD,QAAA,mBAAmB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AAC3D,QAAA,iBAAiB,GAAG,IAAA,aAAG,EAAC,6BAA6B,CAAC,CAAC;AACvD,QAAA,WAAW,GAAG,IAAA,aAAG,EAAC,uBAAuB,CAAC,CAAC;AAC3C,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC/C,QAAA,iBAAiB,GAAG,IAAA,aAAG,EAAC,6BAA6B,CAAC,CAAC;AACvD,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,8BAA8B,CAAC,CAAC;AACzD,QAAA,eAAe,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACnD,QAAA,GAAG,GAAG,IAAA,aAAG,EAAC,iBAAiB,CAAC,CAAC;AAC7B,QAAA,OAAO,GAAG,IAAA,aAAG,EAAC,qBAAqB,CAAC,CAAC;AACrC,QAAA,WAAW,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC7C,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,GAAG,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,CAAC;AACnB,QAAA,iBAAiB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AACzD,QAAA,8BAA8B,GAAG,IAAA,aAAG,EAAC,4CAA4C,CAAC,CAAC;AACnF,QAAA,OAAO,GAAG,IAAA,aAAG,EAAC,mBAAmB,CAAC,CAAC;AACnC,QAAA,MAAM,GAAG,IAAA,aAAG,EAAC,kBAAkB,CAAC,CAAC;AACjC,QAAA,MAAM,GAAG,IAAA,aAAG,EAAC,kBAAkB,CAAC,CAAC;AACjC,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC;AACjD,QAAA,iBAAiB,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC;AACzD,QAAA,kBAAkB,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC;AAC3D,QAAA,2BAA2B,GAAG,IAAA,aAAG,EAAC,yCAAyC,CAAC,CAAC;AAC7E,QAAA,8BAA8B,GAAG,IAAA,aAAG,EAAC,0CAA0C,CAAC,CAAC;AACjF,QAAA,aAAa,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC;AAC/C,QAAA,gBAAgB,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC"}
|
package/build/tsdoc.d.ts
CHANGED
package/build/utils.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joist-codegen",
|
|
3
|
-
"version": "2.3.0-next.
|
|
3
|
+
"version": "2.3.0-next.20",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
"format": "prettier --ignore-path ../../.prettierignore --write '{schema,migrations,src}/**/*.{ts,js,tsx,jsx,graphql}'"
|
|
15
15
|
},
|
|
16
16
|
"files": [
|
|
17
|
-
"build"
|
|
17
|
+
"build",
|
|
18
|
+
"skills"
|
|
18
19
|
],
|
|
19
20
|
"peerDependencies": {
|
|
20
|
-
"joist-utils": "2.3.0-next.
|
|
21
|
+
"joist-utils": "2.3.0-next.20",
|
|
21
22
|
"knex": "^3.1.0",
|
|
22
23
|
"pg": "^8.22.0"
|
|
23
24
|
},
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: entity-docs
|
|
3
|
+
description: Read and write the `src/entities/<Entity>.md` business-docs that sit next to each Joist entity. Use when working on ANY entity in `src/entities/` (its `.ts`, resolvers, jobs, or tests) — read the sibling `.md` first for the business rationale, worked scenarios, and gotchas the code can't show, and record any non-obvious domain knowledge you learn back into it. Also covers the codegen doc-sync: how `## Overview` and `## Fields`/`### fieldName` sections become entity JSDocs via `yarn joist-codegen`, and what belongs in field docs vs. free-form narrative.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Entity docs (`src/entities/<Entity>.md`)
|
|
7
|
+
|
|
8
|
+
Many Joist entities have a sibling Markdown doc — `src/entities/Author.ts` ↔
|
|
9
|
+
`src/entities/Author.md` (same basename; enums under `src/entities/enums/` too). These files hold the
|
|
10
|
+
**"why"** that code can't: business rationale, worked scenarios, gotchas, domain vocabulary, and
|
|
11
|
+
cross-entity workflows. They are written for **both humans and agents** — you are a primary audience.
|
|
12
|
+
|
|
13
|
+
Two jobs, and you should do both as a matter of course:
|
|
14
|
+
|
|
15
|
+
1. **Read** the sibling `.md` before/while you work on an entity, to get domain context.
|
|
16
|
+
2. **Write** back to it whenever you learn something useful, weird, or non-obvious.
|
|
17
|
+
|
|
18
|
+
## 1. Read it first
|
|
19
|
+
|
|
20
|
+
Before editing an entity — its `src/entities/<Entity>.ts`, its resolvers, a job that touches it, or its
|
|
21
|
+
tests — open `src/entities/<Entity>.md` if one exists. It routinely explains things you would otherwise
|
|
22
|
+
have to reverse-engineer or would get subtly wrong:
|
|
23
|
+
|
|
24
|
+
- **Business rationale** — *why* a field/entity exists and what real-world thing it models
|
|
25
|
+
(e.g. `PurchaseOrder.md` on tracking "what and why" a project's cost changed).
|
|
26
|
+
- **Worked scenarios** — concrete `I.e.` walkthroughs with real values ("when an `Employee` is termined, the status workflow is...").
|
|
27
|
+
- **Gotchas & edge cases** — footguns, "this looks stale but isn't", exemptions
|
|
28
|
+
- **Domain vocabulary** — statuses, flags, and other "esoteric unless you know it" domain concepts
|
|
29
|
+
|
|
30
|
+
Follow the cross-links (`[Book](Book.md)`, sometimes with anchors like
|
|
31
|
+
`Book.md#Definitions`) into related docs. If the doc is missing or thin, that's your cue to add
|
|
32
|
+
to it once you've figured things out (job #2).
|
|
33
|
+
|
|
34
|
+
## 2. How the file maps to code (the codegen doc-sync)
|
|
35
|
+
|
|
36
|
+
`joist-config.json` has `"docs": true`, so `yarn joist-codegen` keeps these `.md` files and the entity
|
|
37
|
+
JSDocs in sync. Understanding this is what makes your writing land in the right place.
|
|
38
|
+
|
|
39
|
+
**Only two heading shapes are parsed and synced; everything else is free-form narrative:**
|
|
40
|
+
|
|
41
|
+
| `.md` section | Syncs to | Notes |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| `## Overview` (body) | the entity **class** JSDoc | exact heading `## Overview` |
|
|
44
|
+
| `## Fields` → `### <fieldName>` (body) | that field/property/relation's JSDoc | `### ` heading must be the **exact member name** |
|
|
45
|
+
| any other `## Section` (e.g. `## Hard vs. Soft Costs`, `## DB Constraints`, mermaid) | **nothing** | free-form; lives only in the `.md`, preserved verbatim |
|
|
46
|
+
|
|
47
|
+
Synced JSDocs are tagged `@generated <Entity>.md` in the `.ts` — that tag means "this comment came from
|
|
48
|
+
the `.md`; edit the `.md`, not here."
|
|
49
|
+
|
|
50
|
+
**Sync is bidirectional, but the `.md` wins.** `yarn joist-codegen`:
|
|
51
|
+
|
|
52
|
+
1. **Backfills** the `.md` from any hand-written `.ts` JSDoc that isn't in the `.md` yet (so a jsdoc you
|
|
53
|
+
write directly on a field gets pulled into `## Fields` for you), then
|
|
54
|
+
2. **Writes the `.md` back into the `.ts`** JSDocs — so for anything already in the `.md`, the `.md` is
|
|
55
|
+
the source of truth and will overwrite a divergent `.ts` comment.
|
|
56
|
+
|
|
57
|
+
Net rule: **to durably document an entity or field, edit the `.md`.** Hand-editing a `@generated` JSDoc
|
|
58
|
+
in the `.ts` gets stomped on the next codegen.
|
|
59
|
+
|
|
60
|
+
### Field-heading constraints (easy to get wrong)
|
|
61
|
+
|
|
62
|
+
- `### <fieldName>` must be a **single word** — the parser matches `\w+` only. `### excludeFromBudget`
|
|
63
|
+
works; `### is excluded`, `` ### `excludeFromBudget` ``, or `### excludeFromBudget (derived)` are **not**
|
|
64
|
+
recognized as field docs.
|
|
65
|
+
- It must be the **exact** name of a field, relation, or property on the entity, and must sit **under the
|
|
66
|
+
`## Fields` heading**. Any other `##` heading ends the fields section — so keep all `### fieldName`
|
|
67
|
+
entries together under the one `## Fields` section (conventionally at the bottom of the file).
|
|
68
|
+
- **Methods don't sync** — only fields/getters/properties/relations get their JSDoc updated.
|
|
69
|
+
|
|
70
|
+
## 3. Write back what you learn
|
|
71
|
+
|
|
72
|
+
When you discover something useful/weird/non-obvious while working — record it. This is the point of the
|
|
73
|
+
files. Good triggers to write:
|
|
74
|
+
|
|
75
|
+
- You just figured out **why** an entity or field exists, or what it really models.
|
|
76
|
+
- A **non-obvious business rule**, invariant, or "this only applies to X clients" exemption.
|
|
77
|
+
- A **gotcha / footgun** — a value that looks stale but isn't, an ordering requirement, a special-cased
|
|
78
|
+
type.
|
|
79
|
+
- A **cross-entity interaction** or workflow that isn't visible from one file.
|
|
80
|
+
- **Domain vocabulary** a newcomer (human or agent) wouldn't know.
|
|
81
|
+
- A **worked scenario** that makes an abstract entity concrete.
|
|
82
|
+
|
|
83
|
+
**Don't** document what the code already says plainly (restating a type, signature, or an obvious
|
|
84
|
+
one-liner), or transient implementation detail that will rot.
|
|
85
|
+
|
|
86
|
+
**Where to put it:**
|
|
87
|
+
|
|
88
|
+
- Something specific to one field → a `### <fieldName>` block under `## Fields`. It syncs to that
|
|
89
|
+
member's JSDoc, so it shows on hover/`@generated` in the `.ts`.
|
|
90
|
+
- Broad rationale, scenarios, diagrams, cross-entity workflows, DB constraints, glossary → a free-form
|
|
91
|
+
`##` section (`## Overview` for the headline, or a custom section like `## Employee Onboarding Flow`).
|
|
92
|
+
|
|
93
|
+
**Style** (match the existing docs):
|
|
94
|
+
|
|
95
|
+
- Lead with business meaning and *why*, not mechanics.
|
|
96
|
+
- Use `I.e. ...` worked examples with concrete values.
|
|
97
|
+
- Cross-link related entities with relative links: `[Book](Book.md)`.
|
|
98
|
+
- Reference field/entity names in backticks.
|
|
99
|
+
|
|
100
|
+
## 4. Workflow to add or update a doc
|
|
101
|
+
|
|
102
|
+
1. Edit `src/entities/<Entity>.md` (create it if missing — basename must equal the entity, e.g.
|
|
103
|
+
`Author.md`). For field docs, use the exact member name as a `### ` heading under `## Fields`.
|
|
104
|
+
2. Sync into the JSDocs:
|
|
105
|
+
```bash
|
|
106
|
+
mise exec -- yarn joist-codegen
|
|
107
|
+
```
|
|
108
|
+
(or `mise exec -- yarn codegen` to also run graphql-codegen.)
|
|
109
|
+
3. Verify the `@generated <Entity>.md` JSDoc now appears on the class / field in `src/entities/<Entity>.ts`.
|
|
110
|
+
4. Commit the `.md` **and** the regenerated `.ts` JSDoc changes together.
|
|
111
|
+
|
|
112
|
+
Never hand-edit a `@generated <Entity>.md` JSDoc in the `.ts` — edit the `.md` and re-run codegen. Do not
|
|
113
|
+
touch files under `src/entities/codegen/` (see the repo's generated-files rules).
|
|
114
|
+
|
|
115
|
+
## Skeleton for a new doc
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
# <Entity>
|
|
119
|
+
|
|
120
|
+
## Overview
|
|
121
|
+
|
|
122
|
+
<What this entity models and *why* it exists, in business terms. One short paragraph.>
|
|
123
|
+
|
|
124
|
+
## <Some Business Concept> <!-- free-form: rationale, scenarios, gotchas, diagrams; NOT synced -->
|
|
125
|
+
|
|
126
|
+
<Prose, `I.e.` examples, mermaid, cross-links to [OtherEntity](OtherEntity.md).>
|
|
127
|
+
|
|
128
|
+
## Fields <!-- each ### below syncs into that member's JSDoc -->
|
|
129
|
+
|
|
130
|
+
### someField
|
|
131
|
+
|
|
132
|
+
<Why it exists / the non-obvious rule or gotcha. Exact field name, single word.>
|
|
133
|
+
```
|