joist-codegen 1.138.0 → 1.139.0
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/generate.d.ts.map +1 -1
- package/build/generate.js +23 -2
- package/build/generate.js.map +1 -1
- package/build/{generateInitialEntityFile.d.ts → generateEntityFile.d.ts} +2 -2
- package/build/generateEntityFile.d.ts.map +1 -0
- package/build/{generateInitialEntityFile.js → generateEntityFile.js} +4 -4
- package/build/generateEntityFile.js.map +1 -0
- package/build/generateEntityTestFile.d.ts +5 -0
- package/build/generateEntityTestFile.d.ts.map +1 -0
- package/build/generateEntityTestFile.js +21 -0
- package/build/generateEntityTestFile.js.map +1 -0
- package/package.json +2 -2
- package/build/generateInitialEntityFile.d.ts.map +0 -1
- package/build/generateInitialEntityFile.js.map +0 -1
package/build/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,WAAW,EAAY,MAAM,SAAS,CAAC;AAStD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI7C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,uFAAuF;AACvF,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAyH9F"}
|
package/build/generate.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateFiles = void 0;
|
|
4
|
+
const promises_1 = require("fs/promises");
|
|
4
5
|
const ts_poet_1 = require("ts-poet");
|
|
5
6
|
const generateEntitiesFile_1 = require("./generateEntitiesFile");
|
|
6
7
|
const generateEntityCodegenFile_1 = require("./generateEntityCodegenFile");
|
|
8
|
+
const generateEntityFile_1 = require("./generateEntityFile");
|
|
9
|
+
const generateEntityTestFile_1 = require("./generateEntityTestFile");
|
|
7
10
|
const generateEnumFile_1 = require("./generateEnumFile");
|
|
8
11
|
const generateFactoriesFiles_1 = require("./generateFactoriesFiles");
|
|
9
|
-
const generateInitialEntityFile_1 = require("./generateInitialEntityFile");
|
|
10
12
|
const generateMetadataFile_1 = require("./generateMetadataFile");
|
|
11
13
|
const generatePgEnumFile_1 = require("./generatePgEnumFile");
|
|
12
14
|
const symbols_1 = require("./symbols");
|
|
@@ -14,16 +16,26 @@ const utils_1 = require("./utils");
|
|
|
14
16
|
/** Generates our `${Entity}` and `${Entity}Codegen` files based on the `db` schema. */
|
|
15
17
|
async function generateFiles(config, dbMeta) {
|
|
16
18
|
const { entities, enums, pgEnums } = dbMeta;
|
|
19
|
+
// Find existing entities so that, besides just using `overwrite: false`, we can completely
|
|
20
|
+
// skip making test files except for the _first_ time we create an entity. This achieves
|
|
21
|
+
// `.history`-like "create once" behavior without the need for the `.history` file.
|
|
22
|
+
const files = await readExistingFiles(config);
|
|
17
23
|
const entityFiles = entities
|
|
18
24
|
.map((meta) => {
|
|
19
25
|
const entityName = meta.entity.name;
|
|
26
|
+
const hasEntityFile = files.includes(`${entityName}.ts`);
|
|
20
27
|
return [
|
|
21
28
|
{
|
|
22
29
|
name: `${entityName}Codegen.ts`,
|
|
23
30
|
contents: (0, generateEntityCodegenFile_1.generateEntityCodegenFile)(config, dbMeta, meta),
|
|
24
31
|
overwrite: true,
|
|
25
32
|
},
|
|
26
|
-
|
|
33
|
+
...(hasEntityFile
|
|
34
|
+
? []
|
|
35
|
+
: [
|
|
36
|
+
{ name: `${entityName}.ts`, contents: (0, generateEntityFile_1.generateEntityFile)(meta), overwrite: false },
|
|
37
|
+
{ name: `${entityName}.test.ts`, contents: (0, generateEntityTestFile_1.generateEntityTestFile)(meta), overwrite: false },
|
|
38
|
+
]),
|
|
27
39
|
];
|
|
28
40
|
})
|
|
29
41
|
.reduce(utils_1.merge, []);
|
|
@@ -107,4 +119,13 @@ async function generateFiles(config, dbMeta) {
|
|
|
107
119
|
];
|
|
108
120
|
}
|
|
109
121
|
exports.generateFiles = generateFiles;
|
|
122
|
+
/** Reads the `entitiesDirectory` but just ignores if it doesn't exist yet. */
|
|
123
|
+
async function readExistingFiles(config) {
|
|
124
|
+
try {
|
|
125
|
+
return await (0, promises_1.readdir)(config.entitiesDirectory);
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
return [];
|
|
129
|
+
}
|
|
130
|
+
}
|
|
110
131
|
//# sourceMappingURL=generate.js.map
|
package/build/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":";;;AAAA,qCAAsD;AACtD,iEAA8D;AAC9D,2EAAmF;AACnF,yDAAsD;AACtD,qEAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":";;;AAAA,0CAAsC;AACtC,qCAAsD;AACtD,iEAA8D;AAC9D,2EAAmF;AACnF,6DAA0D;AAC1D,qEAAkE;AAClE,yDAAsD;AACtD,qEAAkE;AAClE,iEAA8D;AAC9D,6DAA0D;AAE1D,uCAA0E;AAC1E,mCAAmD;AAInD,uFAAuF;AAChF,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,MAAkB;IACpE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE5C,2FAA2F;IAC3F,wFAAwF;IACxF,mFAAmF;IACnF,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,QAAQ;SACzB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,UAAU,KAAK,CAAC,CAAC;QACzD,OAAO;YACL;gBACE,IAAI,EAAE,GAAG,UAAU,YAAY;gBAC/B,QAAQ,EAAE,IAAA,qDAAyB,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;gBACzD,SAAS,EAAE,IAAI;aAChB;YACD,GAAG,CAAC,aAAa;gBACf,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,EAAE,IAAI,EAAE,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,IAAA,uCAAkB,EAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;oBAClF,EAAE,IAAI,EAAE,GAAG,UAAU,UAAU,EAAE,QAAQ,EAAE,IAAA,+CAAsB,EAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;iBAC5F,CAAC;SACP,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,aAAK,EAAE,EAAE,CAAC,CAAC;IAErB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SACnC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,IAAA,yBAAiB,EAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3D,OAAO;YACL;gBACE,IAAI,EAAE,GAAG,QAAQ,KAAK;gBACtB,QAAQ,EAAE,IAAA,mCAAgB,EAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBACtD,SAAS,EAAE,IAAI;aAChB;SACF,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,aAAK,EAAE,EAAE,CAAC,CAAC;IACrB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SACvC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,KAAK;gBAC3B,QAAQ,EAAE,IAAA,uCAAkB,EAAC,MAAM,EAAE,QAAQ,CAAC;gBAC9C,SAAS,EAAE,IAAI;aAChB;SACF,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,aAAK,EAAE,EAAE,CAAC,CAAC;IAErB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,aAAG,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACpE,MAAM,YAAY,GAAgB;QAChC,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,IAAA,cAAI,EAAA;MAEZ,eAAe,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,gFAAgF,eAAe;iBAC5F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,GAAG,CAAC,KAAK;YACnB,CAAC,CAAC,EACN;qBACiB,IAAA,aAAG,EAAC,eAAe,CAAC,YAAY,4BAAkB,IAAI,WAAW;;yBAE7D,IAAA,aAAG,EAAC,QAAQ,CAAC,YAAY,gBAAM;cAC1C,IAAA,qCAAS,EAAC,MAAM,CAAC;;;;QAIvB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,2CAAoB,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;;oCAEtC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACnF,2BAAiB;KACpB;QACD,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE;KACpD,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SACrC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;SACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,MAAM,YAAY,GAAgB;QAChC,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,IAAA,2CAAoB,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrF,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,EAAE,aAAa,EAAE,EAAE,+BAA+B,EAAE,UAAU,EAAE,EAAE;KACjF,CAAC;IAEF,MAAM,cAAc,GAAkB,IAAA,+CAAsB,EAAC,QAAQ,CAAC,CAAC;IAEvE,MAAM,SAAS,GAAgB;QAC7B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,IAAA,cAAI,EAAA,4BAA4B;QAC1C,SAAS,EAAE,KAAK;KACjB,CAAC;IAEF,+FAA+F;IAE/F,MAAM,WAAW,GAAkB,CACjC,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;IAET,OAAO;QACL,GAAG,WAAW;QACd,GAAG,SAAS;QACZ,GAAG,WAAW;QACd,YAAY;QACZ,GAAG,cAAc;QACjB,YAAY;QACZ,SAAS;QACT,GAAG,WAAW;KACf,CAAC;AACJ,CAAC;AAzHD,sCAyHC;AAED,8EAA8E;AAC9E,KAAK,UAAU,iBAAiB,CAAC,MAAc;IAC7C,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,kBAAO,EAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Code } from "ts-poet";
|
|
2
2
|
import { EntityDbMetadata } from "./EntityDbMetadata";
|
|
3
3
|
/** Creates the placeholder file for our per-entity custom business logic in. */
|
|
4
|
-
export declare function
|
|
5
|
-
//# sourceMappingURL=
|
|
4
|
+
export declare function generateEntityFile(meta: EntityDbMetadata): Code;
|
|
5
|
+
//# sourceMappingURL=generateEntityFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityFile.d.ts","sourceRoot":"","sources":["../src/generateEntityFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAO,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAW/D"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.generateEntityFile = void 0;
|
|
4
4
|
const ts_poet_1 = require("ts-poet");
|
|
5
5
|
/** Creates the placeholder file for our per-entity custom business logic in. */
|
|
6
|
-
function
|
|
6
|
+
function generateEntityFile(meta) {
|
|
7
7
|
const entityName = meta.entity.name;
|
|
8
8
|
const codegenClass = (0, ts_poet_1.imp)(`${entityName}Codegen@./entities`);
|
|
9
9
|
return (0, ts_poet_1.code) `
|
|
@@ -15,5 +15,5 @@ function generateInitialEntityFile(meta) {
|
|
|
15
15
|
config.placeholder();
|
|
16
16
|
`;
|
|
17
17
|
}
|
|
18
|
-
exports.
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
exports.generateEntityFile = generateEntityFile;
|
|
19
|
+
//# sourceMappingURL=generateEntityFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityFile.js","sourceRoot":"","sources":["../src/generateEntityFile.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAG1C,gFAAgF;AAChF,SAAgB,kBAAkB,CAAC,IAAsB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,MAAM,YAAY,GAAG,IAAA,aAAG,EAAC,GAAG,UAAU,oBAAoB,CAAC,CAAC;IAC5D,OAAO,IAAA,cAAI,EAAA;eACE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM;;mBAE1B,UAAU,YAAY,YAAY;;;;GAIlD,CAAC;AACJ,CAAC;AAXD,gDAWC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Code } from "ts-poet";
|
|
2
|
+
import { EntityDbMetadata } from "./EntityDbMetadata";
|
|
3
|
+
/** Creates the placeholder file for our entity's test. */
|
|
4
|
+
export declare function generateEntityTestFile(meta: EntityDbMetadata): Code;
|
|
5
|
+
//# sourceMappingURL=generateEntityTestFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityTestFile.d.ts","sourceRoot":"","sources":["../src/generateEntityTestFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAanE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateEntityTestFile = void 0;
|
|
4
|
+
const ts_poet_1 = require("ts-poet");
|
|
5
|
+
/** Creates the placeholder file for our entity's test. */
|
|
6
|
+
function generateEntityTestFile(meta) {
|
|
7
|
+
const entityName = meta.entity.name;
|
|
8
|
+
return (0, ts_poet_1.code) `
|
|
9
|
+
import { new${entityName} } from "./entities";
|
|
10
|
+
|
|
11
|
+
describe("${entityName}", () => {
|
|
12
|
+
it("works", async () => {
|
|
13
|
+
const em = newEntityManager();
|
|
14
|
+
new${entityName}(em);
|
|
15
|
+
await em.flush();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
`;
|
|
19
|
+
}
|
|
20
|
+
exports.generateEntityTestFile = generateEntityTestFile;
|
|
21
|
+
//# sourceMappingURL=generateEntityTestFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityTestFile.js","sourceRoot":"","sources":["../src/generateEntityTestFile.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAGrC,0DAA0D;AAC1D,SAAgB,sBAAsB,CAAC,IAAsB;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,OAAO,IAAA,cAAI,EAAA;kBACK,UAAU;;gBAEZ,UAAU;;;aAGb,UAAU;;;;GAIpB,CAAC;AACJ,CAAC;AAbD,wDAaC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joist-codegen",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.139.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@dprint/json": "0.15.6",
|
|
21
21
|
"@types/pluralize": "0.0.33",
|
|
22
22
|
"change-case": "^4.1.2",
|
|
23
|
-
"joist-utils": "1.
|
|
23
|
+
"joist-utils": "1.139.0",
|
|
24
24
|
"knex": "^3.1.0",
|
|
25
25
|
"pg": "^8.11.3",
|
|
26
26
|
"pg-structure": "^7.15.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateInitialEntityFile.d.ts","sourceRoot":"","sources":["../src/generateInitialEntityFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAO,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAWtE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateInitialEntityFile.js","sourceRoot":"","sources":["../src/generateInitialEntityFile.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAG1C,gFAAgF;AAChF,SAAgB,yBAAyB,CAAC,IAAsB;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,MAAM,YAAY,GAAG,IAAA,aAAG,EAAC,GAAG,UAAU,oBAAoB,CAAC,CAAC;IAC5D,OAAO,IAAA,cAAI,EAAA;eACE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM;;mBAE1B,UAAU,YAAY,YAAY;;;;GAIlD,CAAC;AACJ,CAAC;AAXD,8DAWC"}
|