joist-orm 0.1.538 → 1.0.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/{BaseEntity.d.ts → src/BaseEntity.d.ts} +2 -1
- package/build/{BaseEntity.js → src/BaseEntity.js} +13 -9
- package/build/src/BaseEntity.js.map +1 -0
- package/build/{EntityManager.d.ts → src/EntityManager.d.ts} +139 -110
- package/build/{EntityManager.js → src/EntityManager.js} +281 -262
- package/build/src/EntityManager.js.map +1 -0
- package/build/{QueryBuilder.d.ts → src/QueryBuilder.d.ts} +53 -3
- package/build/src/QueryBuilder.js +341 -0
- package/build/src/QueryBuilder.js.map +1 -0
- package/build/src/Todo.d.ts +25 -0
- package/build/src/Todo.js +52 -0
- package/build/src/Todo.js.map +1 -0
- package/build/src/changes.d.ts +34 -0
- package/build/src/changes.js +37 -0
- package/build/src/changes.js.map +1 -0
- package/build/src/config.d.ts +43 -0
- package/build/src/config.js +114 -0
- package/build/src/config.js.map +1 -0
- package/build/{createOrUpdatePartial.d.ts → src/createOrUpdatePartial.d.ts} +2 -1
- package/build/{createOrUpdatePartial.js → src/createOrUpdatePartial.js} +42 -10
- package/build/src/createOrUpdatePartial.js.map +1 -0
- package/build/src/dataloaders/findDataLoader.d.ts +5 -0
- package/build/src/dataloaders/findDataLoader.js +28 -0
- package/build/src/dataloaders/findDataLoader.js.map +1 -0
- package/build/src/dataloaders/loadDataLoader.d.ts +3 -0
- package/build/src/dataloaders/loadDataLoader.js +37 -0
- package/build/src/dataloaders/loadDataLoader.js.map +1 -0
- package/build/src/dataloaders/manyToManyDataLoader.d.ts +5 -0
- package/build/src/dataloaders/manyToManyDataLoader.js +78 -0
- package/build/src/dataloaders/manyToManyDataLoader.js.map +1 -0
- package/build/src/dataloaders/manyToManyFindDataLoader.d.ts +5 -0
- package/build/src/dataloaders/manyToManyFindDataLoader.js +33 -0
- package/build/src/dataloaders/manyToManyFindDataLoader.js.map +1 -0
- package/build/src/dataloaders/oneToManyDataLoader.d.ts +4 -0
- package/build/src/dataloaders/oneToManyDataLoader.js +40 -0
- package/build/src/dataloaders/oneToManyDataLoader.js.map +1 -0
- package/build/src/dataloaders/oneToManyFindDataLoader.d.ts +5 -0
- package/build/src/dataloaders/oneToManyFindDataLoader.js +32 -0
- package/build/src/dataloaders/oneToManyFindDataLoader.js.map +1 -0
- package/build/src/dataloaders/oneToOneDataLoader.d.ts +4 -0
- package/build/src/dataloaders/oneToOneDataLoader.js +40 -0
- package/build/src/dataloaders/oneToOneDataLoader.js.map +1 -0
- package/build/src/drivers/IdAssigner.d.ts +33 -0
- package/build/src/drivers/IdAssigner.js +106 -0
- package/build/src/drivers/IdAssigner.js.map +1 -0
- package/build/src/drivers/InMemoryDriver.d.ts +29 -0
- package/build/src/drivers/InMemoryDriver.js +306 -0
- package/build/src/drivers/InMemoryDriver.js.map +1 -0
- package/build/src/drivers/PostgresDriver.d.ts +40 -0
- package/build/src/drivers/PostgresDriver.js +376 -0
- package/build/src/drivers/PostgresDriver.js.map +1 -0
- package/build/src/drivers/driver.d.ts +23 -0
- package/build/src/drivers/driver.js +3 -0
- package/build/src/drivers/driver.js.map +1 -0
- package/build/src/drivers/index.d.ts +4 -0
- package/build/src/drivers/index.js +17 -0
- package/build/src/drivers/index.js.map +1 -0
- package/build/{getProperties.d.ts → src/getProperties.d.ts} +0 -0
- package/build/{getProperties.js → src/getProperties.js} +1 -1
- package/build/src/getProperties.js.map +1 -0
- package/build/src/index.d.ts +62 -0
- package/build/src/index.js +263 -0
- package/build/src/index.js.map +1 -0
- package/build/src/keys.d.ts +30 -0
- package/build/{keys.js → src/keys.js} +48 -16
- package/build/src/keys.js.map +1 -0
- package/build/{loadLens.d.ts → src/loadLens.d.ts} +2 -2
- package/build/{loadLens.js → src/loadLens.js} +1 -1
- package/build/src/loadLens.js.map +1 -0
- package/build/src/loaded.d.ts +49 -0
- package/build/src/loaded.js +9 -0
- package/build/src/loaded.js.map +1 -0
- package/build/{newTestInstance.d.ts → src/newTestInstance.d.ts} +37 -3
- package/build/src/newTestInstance.js +342 -0
- package/build/src/newTestInstance.js.map +1 -0
- package/build/{collections → src/relations}/AbstractRelationImpl.d.ts +6 -5
- package/build/{collections → src/relations}/AbstractRelationImpl.js +0 -0
- package/build/src/relations/AbstractRelationImpl.js.map +1 -0
- package/build/src/relations/Collection.d.ts +26 -0
- package/build/src/relations/Collection.js +19 -0
- package/build/src/relations/Collection.js.map +1 -0
- package/build/{collections → src/relations}/CustomCollection.d.ts +6 -2
- package/build/{collections → src/relations}/CustomCollection.js +17 -9
- package/build/src/relations/CustomCollection.js.map +1 -0
- package/build/{collections → src/relations}/CustomReference.d.ts +7 -2
- package/build/{collections → src/relations}/CustomReference.js +16 -9
- package/build/src/relations/CustomReference.js.map +1 -0
- package/build/src/relations/LargeCollection.d.ts +17 -0
- package/build/src/relations/LargeCollection.js +3 -0
- package/build/src/relations/LargeCollection.js.map +1 -0
- package/build/{collections → src/relations}/ManyToManyCollection.d.ts +9 -2
- package/build/src/relations/ManyToManyCollection.js +249 -0
- package/build/src/relations/ManyToManyCollection.js.map +1 -0
- package/build/src/relations/ManyToManyLargeCollection.d.ts +25 -0
- package/build/src/relations/ManyToManyLargeCollection.js +97 -0
- package/build/src/relations/ManyToManyLargeCollection.js.map +1 -0
- package/build/src/relations/ManyToOneReference.d.ts +77 -0
- package/build/{collections → src/relations}/ManyToOneReference.js +101 -48
- package/build/src/relations/ManyToOneReference.js.map +1 -0
- package/build/{collections → src/relations}/OneToManyCollection.d.ts +10 -2
- package/build/{collections → src/relations}/OneToManyCollection.js +54 -59
- package/build/src/relations/OneToManyCollection.js.map +1 -0
- package/build/src/relations/OneToManyLargeCollection.d.ts +25 -0
- package/build/src/relations/OneToManyLargeCollection.js +83 -0
- package/build/src/relations/OneToManyLargeCollection.js.map +1 -0
- package/build/src/relations/OneToOneReference.d.ts +82 -0
- package/build/src/relations/OneToOneReference.js +168 -0
- package/build/src/relations/OneToOneReference.js.map +1 -0
- package/build/src/relations/PolymorphicReference.d.ts +69 -0
- package/build/src/relations/PolymorphicReference.js +210 -0
- package/build/src/relations/PolymorphicReference.js.map +1 -0
- package/build/src/relations/Reference.d.ts +29 -0
- package/build/src/relations/Reference.js +23 -0
- package/build/src/relations/Reference.js.map +1 -0
- package/build/src/relations/Relation.d.ts +10 -0
- package/build/src/relations/Relation.js +13 -0
- package/build/src/relations/Relation.js.map +1 -0
- package/build/src/relations/hasAsyncProperty.d.ts +36 -0
- package/build/src/relations/hasAsyncProperty.js +55 -0
- package/build/src/relations/hasAsyncProperty.js.map +1 -0
- package/build/{collections → src/relations}/hasManyDerived.d.ts +2 -1
- package/build/{collections → src/relations}/hasManyDerived.js +1 -1
- package/build/src/relations/hasManyDerived.js.map +1 -0
- package/build/{collections → src/relations}/hasManyThrough.d.ts +0 -0
- package/build/{collections → src/relations}/hasManyThrough.js +2 -2
- package/build/src/relations/hasManyThrough.js.map +1 -0
- package/build/{collections → src/relations}/hasOneDerived.d.ts +3 -2
- package/build/{collections → src/relations}/hasOneDerived.js +1 -1
- package/build/src/relations/hasOneDerived.js.map +1 -0
- package/build/{collections → src/relations}/hasOneThrough.d.ts +0 -0
- package/build/{collections → src/relations}/hasOneThrough.js +2 -2
- package/build/src/relations/hasOneThrough.js.map +1 -0
- package/build/src/relations/index.d.ts +18 -0
- package/build/src/relations/index.js +53 -0
- package/build/src/relations/index.js.map +1 -0
- package/build/{reverseHint.d.ts → src/reverseHint.d.ts} +2 -1
- package/build/{reverseHint.js → src/reverseHint.js} +13 -9
- package/build/src/reverseHint.js.map +1 -0
- package/build/src/rules.d.ts +23 -0
- package/build/src/rules.js +23 -0
- package/build/src/rules.js.map +1 -0
- package/build/src/serde.d.ts +121 -0
- package/build/src/serde.js +190 -0
- package/build/src/serde.js.map +1 -0
- package/build/{utils.d.ts → src/utils.d.ts} +2 -0
- package/build/{utils.js → src/utils.js} +10 -1
- package/build/src/utils.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/package.json +30 -15
- package/build/BaseEntity.js.map +0 -1
- package/build/EntityManager.js.map +0 -1
- package/build/EntityPersister.d.ts +0 -30
- package/build/EntityPersister.js +0 -197
- package/build/EntityPersister.js.map +0 -1
- package/build/QueryBuilder.js +0 -195
- package/build/QueryBuilder.js.map +0 -1
- package/build/changes.d.ts +0 -23
- package/build/changes.js +0 -14
- package/build/changes.js.map +0 -1
- package/build/collections/AbstractRelationImpl.js.map +0 -1
- package/build/collections/CustomCollection.js.map +0 -1
- package/build/collections/CustomReference.js.map +0 -1
- package/build/collections/ManyToManyCollection.js +0 -288
- package/build/collections/ManyToManyCollection.js.map +0 -1
- package/build/collections/ManyToOneReference.d.ts +0 -50
- package/build/collections/ManyToOneReference.js.map +0 -1
- package/build/collections/OneToManyCollection.js.map +0 -1
- package/build/collections/OneToOneReference.d.ts +0 -51
- package/build/collections/OneToOneReference.js +0 -132
- package/build/collections/OneToOneReference.js.map +0 -1
- package/build/collections/hasManyDerived.js.map +0 -1
- package/build/collections/hasManyThrough.js.map +0 -1
- package/build/collections/hasOneDerived.js.map +0 -1
- package/build/collections/hasOneThrough.js.map +0 -1
- package/build/collections/index.d.ts +0 -19
- package/build/collections/index.js +0 -49
- package/build/collections/index.js.map +0 -1
- package/build/createOrUpdatePartial.js.map +0 -1
- package/build/getProperties.js.map +0 -1
- package/build/index.d.ts +0 -140
- package/build/index.js +0 -278
- package/build/index.js.map +0 -1
- package/build/keys.d.ts +0 -21
- package/build/keys.js.map +0 -1
- package/build/loadLens.js.map +0 -1
- package/build/newTestInstance.js +0 -153
- package/build/newTestInstance.js.map +0 -1
- package/build/reverseHint.js.map +0 -1
- package/build/serde.d.ts +0 -47
- package/build/serde.js +0 -93
- package/build/serde.js.map +0 -1
- package/build/utils.js.map +0 -1
- package/package.json.bak +0 -27
- package/src/BaseEntity.ts +0 -104
- package/src/EntityManager.ts +0 -1263
- package/src/EntityPersister.ts +0 -240
- package/src/QueryBuilder.ts +0 -289
- package/src/changes.ts +0 -40
- package/src/collections/AbstractRelationImpl.ts +0 -28
- package/src/collections/CustomCollection.ts +0 -152
- package/src/collections/CustomReference.ts +0 -138
- package/src/collections/ManyToManyCollection.ts +0 -346
- package/src/collections/ManyToOneReference.ts +0 -215
- package/src/collections/OneToManyCollection.ts +0 -254
- package/src/collections/OneToOneReference.ts +0 -153
- package/src/collections/hasManyDerived.ts +0 -29
- package/src/collections/hasManyThrough.ts +0 -20
- package/src/collections/hasOneDerived.ts +0 -26
- package/src/collections/hasOneThrough.ts +0 -20
- package/src/collections/index.ts +0 -74
- package/src/createOrUpdatePartial.ts +0 -144
- package/src/getProperties.ts +0 -27
- package/src/index.ts +0 -400
- package/src/keys.ts +0 -75
- package/src/loadLens.ts +0 -126
- package/src/newTestInstance.ts +0 -205
- package/src/reverseHint.ts +0 -43
- package/src/serde.ts +0 -97
- package/src/utils.ts +0 -63
- package/tsconfig.json +0 -21
- package/tsconfig.tsbuildinfo +0 -2646
package/build/newTestInstance.js
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getTestIndex = exports.testIndex = exports.newTestInstance = exports.testDate = exports.jan1 = void 0;
|
|
7
|
-
const is_plain_object_1 = __importDefault(require("is-plain-object"));
|
|
8
|
-
const EntityManager_1 = require("./EntityManager");
|
|
9
|
-
const keys_1 = require("./keys");
|
|
10
|
-
const utils_1 = require("./utils");
|
|
11
|
-
// Chosen b/c it's a monday https://www.timeanddate.com/calendar/monthly.html?year=2018&month=1&country=1
|
|
12
|
-
exports.jan1 = new Date(2018, 0, 1);
|
|
13
|
-
exports.testDate = exports.jan1;
|
|
14
|
-
/** Creates a test instance of `T`. */
|
|
15
|
-
function newTestInstance(em, cstr, opts = {}) {
|
|
16
|
-
const meta = EntityManager_1.getMetadata(cstr);
|
|
17
|
-
// fullOpts will end up being a full/type-safe opts with every required field
|
|
18
|
-
// filled in, either driven by the passed-in opts or by making new entities as-needed
|
|
19
|
-
const fullOpts = Object.fromEntries(meta.fields
|
|
20
|
-
.map((field) => {
|
|
21
|
-
var _a;
|
|
22
|
-
const { fieldName } = field;
|
|
23
|
-
// Use the opts value if they passed one in
|
|
24
|
-
if (fieldName in opts) {
|
|
25
|
-
const optValue = opts[fieldName];
|
|
26
|
-
// Watch for our "the parent is not yet created" null marker
|
|
27
|
-
if (optValue === null) {
|
|
28
|
-
return [];
|
|
29
|
-
}
|
|
30
|
-
// If this is a partial with defaults for the entity, call newTestInstance to get it created
|
|
31
|
-
if (field.kind === "m2o") {
|
|
32
|
-
if (EntityManager_1.isEntity(optValue)) {
|
|
33
|
-
return [fieldName, optValue];
|
|
34
|
-
}
|
|
35
|
-
else if (optValue && typeof optValue === "string") {
|
|
36
|
-
return [
|
|
37
|
-
fieldName,
|
|
38
|
-
em.entities.find((e) => e.id === optValue || getTestId(em, e) === optValue) ||
|
|
39
|
-
utils_1.fail(`Did not find tagged id ${optValue}`),
|
|
40
|
-
];
|
|
41
|
-
}
|
|
42
|
-
else if (optValue && !is_plain_object_1.default(optValue)) {
|
|
43
|
-
return field.otherMetadata().factory(em, opts);
|
|
44
|
-
}
|
|
45
|
-
return [fieldName, field.otherMetadata().factory(em, { ...optValue, use: opts.use })];
|
|
46
|
-
}
|
|
47
|
-
// If this is a list of children, watch for partials that should be newTestInstance'd
|
|
48
|
-
if (field.kind === "o2m" || field.kind == "m2m") {
|
|
49
|
-
const values = optValue.map((optValue) => {
|
|
50
|
-
if (EntityManager_1.isEntity(optValue)) {
|
|
51
|
-
return optValue;
|
|
52
|
-
}
|
|
53
|
-
else if (optValue && typeof optValue === "string") {
|
|
54
|
-
return (em.entities.find((e) => e.id === optValue || getTestId(em, e) === optValue) ||
|
|
55
|
-
utils_1.fail(`Did not find tagged id ${optValue}`));
|
|
56
|
-
}
|
|
57
|
-
else if (optValue && !is_plain_object_1.default(optValue)) {
|
|
58
|
-
return field.otherMetadata().factory(em, optValue);
|
|
59
|
-
}
|
|
60
|
-
return field.otherMetadata().factory(em, {
|
|
61
|
-
...optValue,
|
|
62
|
-
// We include null as a marker for "don't create the parent"; even if it's required,
|
|
63
|
-
// once the child has been created, the act of adding it to our collection will get the
|
|
64
|
-
// parent set. It might be better to do o2ms as a 2nd-pass, after we've done the em.create
|
|
65
|
-
// call and could directly pass this entity instead of null.
|
|
66
|
-
[field.otherFieldName]: null,
|
|
67
|
-
use: opts.use,
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
return [fieldName, values];
|
|
71
|
-
}
|
|
72
|
-
// Look for strings that want to use the test index
|
|
73
|
-
if (typeof optValue === "string" && optValue.includes(exports.testIndex)) {
|
|
74
|
-
const actualIndex = getTestIndex(em, meta.cstr);
|
|
75
|
-
return [fieldName, optValue.replace(exports.testIndex, String(actualIndex))];
|
|
76
|
-
}
|
|
77
|
-
// Otherwise just use the user's opt value as-is
|
|
78
|
-
return [fieldName, optValue];
|
|
79
|
-
}
|
|
80
|
-
if (field.kind === "primitive" && field.required && !field.derived && !field.protected) {
|
|
81
|
-
return [fieldName, defaultValue(field)];
|
|
82
|
-
}
|
|
83
|
-
else if (field.kind === "m2o") {
|
|
84
|
-
const otherMeta = field.otherMetadata();
|
|
85
|
-
// If there is a single existing instance of this type, assume the caller is fine with that,
|
|
86
|
-
// even if the field is not required.
|
|
87
|
-
const existing = em.entities.filter((e) => e instanceof otherMeta.cstr);
|
|
88
|
-
if (existing.length === 1) {
|
|
89
|
-
return [fieldName, existing[0]];
|
|
90
|
-
}
|
|
91
|
-
// If there is a use type, assume the caller is fine with that, even if the field is not required
|
|
92
|
-
const useEntity = (_a = maybeArray(opts.use)) === null || _a === void 0 ? void 0 : _a.find((e) => e instanceof otherMeta.cstr);
|
|
93
|
-
if (useEntity) {
|
|
94
|
-
return [fieldName, useEntity];
|
|
95
|
-
}
|
|
96
|
-
// Otherwise only make a new entity only if the field is required
|
|
97
|
-
if (field.required) {
|
|
98
|
-
return [fieldName, otherMeta.factory(em, { use: opts.use })];
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else if (field.kind === "enum" && field.required) {
|
|
102
|
-
return [fieldName, field.enumDetailType.getValues()[0]];
|
|
103
|
-
}
|
|
104
|
-
return [];
|
|
105
|
-
})
|
|
106
|
-
.filter((t) => t.length > 0));
|
|
107
|
-
return em.create(meta.cstr, fullOpts);
|
|
108
|
-
}
|
|
109
|
-
exports.newTestInstance = newTestInstance;
|
|
110
|
-
/**
|
|
111
|
-
* A marker value for later replacement with the test instance's "unique-ish" index.
|
|
112
|
-
*
|
|
113
|
-
* This is meant to just be a helpful identifier in fields like entity names/descriptions for
|
|
114
|
-
* debugging purposes.
|
|
115
|
-
*/
|
|
116
|
-
exports.testIndex = "TEST_INDEX";
|
|
117
|
-
/**
|
|
118
|
-
* Returns a unique-ish test index for putting in `name` fields.
|
|
119
|
-
*
|
|
120
|
-
* Note that `testIndex` is easier to just include in a string, because it doesn't require passing
|
|
121
|
-
* the `EntityManger` and `type`. But if a factory really wants the test index as a number, they can
|
|
122
|
-
* call this method.
|
|
123
|
-
*
|
|
124
|
-
* Despite the name, these are 1-based, i.e. the first `Author` is `a1`.
|
|
125
|
-
*/
|
|
126
|
-
function getTestIndex(em, type) {
|
|
127
|
-
const existing = em.entities.filter((e) => e instanceof type);
|
|
128
|
-
return existing.length + 1;
|
|
129
|
-
}
|
|
130
|
-
exports.getTestIndex = getTestIndex;
|
|
131
|
-
/** Fakes a probably-right id for un-persisted entities. Solely used for quick lookups in tests/factories. */
|
|
132
|
-
function getTestId(em, entity) {
|
|
133
|
-
const meta = EntityManager_1.getMetadata(entity);
|
|
134
|
-
const sameType = em.entities.filter((e) => e instanceof meta.cstr);
|
|
135
|
-
return keys_1.tagIfNeeded(meta, String(sameType.indexOf(entity) + 1));
|
|
136
|
-
}
|
|
137
|
-
function defaultValue(field) {
|
|
138
|
-
switch (field.type) {
|
|
139
|
-
case "string":
|
|
140
|
-
return field.fieldName;
|
|
141
|
-
case "number":
|
|
142
|
-
return 0;
|
|
143
|
-
case "Date":
|
|
144
|
-
return exports.testDate;
|
|
145
|
-
case "boolean":
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
return null;
|
|
149
|
-
}
|
|
150
|
-
function maybeArray(array) {
|
|
151
|
-
return array ? (Array.isArray(array) ? array : [array]) : undefined;
|
|
152
|
-
}
|
|
153
|
-
//# sourceMappingURL=newTestInstance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"newTestInstance.js","sourceRoot":"","sources":["../src/newTestInstance.ts"],"names":[],"mappings":"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"}
|
package/build/reverseHint.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reverseHint.js","sourceRoot":"","sources":["../src/reverseHint.ts"],"names":[],"mappings":";;;AAAA,mDAAmF;AACnF,mCAA+B;AAE/B;;;;GAIG;AACH,SAAgB,WAAW,CACzB,UAAgC,EAChC,IAAiB;IAEjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,4EAA4E;QAC5E,sEAAsE;QACtE,MAAM,IAAI,GAAG,2BAAW,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,YAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5G,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;YACxE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;SACjC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACnD;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,uEAAuE;QACvE,uEAAuE;QACvE,wBAAwB;QACxB,OAAQ,IAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,IAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACtF;SAAM;QACL,wEAAwE;QACxE,oCAAoC;QACpC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,2BAAW,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,YAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3G,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;gBACxE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;aACjC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACxC,OAAO,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;gBACzD,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAuC,CAAC;YACpF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAlCD,kCAkCC"}
|
package/build/serde.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { EntityMetadata } from "./index";
|
|
2
|
-
export interface ColumnSerde {
|
|
3
|
-
setOnEntity(data: any, row: any): void;
|
|
4
|
-
setOnRow(data: any, row: any): void;
|
|
5
|
-
getFromEntity(data: any): any;
|
|
6
|
-
mapToDb(value: any): any;
|
|
7
|
-
}
|
|
8
|
-
export declare class SimpleSerde implements ColumnSerde {
|
|
9
|
-
private fieldName;
|
|
10
|
-
private columnName;
|
|
11
|
-
constructor(fieldName: string, columnName: string);
|
|
12
|
-
setOnEntity(data: any, row: any): void;
|
|
13
|
-
setOnRow(data: any, row: any): void;
|
|
14
|
-
getFromEntity(data: any): any;
|
|
15
|
-
mapToDb(value: any): any;
|
|
16
|
-
}
|
|
17
|
-
/** Maps integer primary keys ot strings "because GraphQL". */
|
|
18
|
-
export declare class PrimaryKeySerde implements ColumnSerde {
|
|
19
|
-
private meta;
|
|
20
|
-
private fieldName;
|
|
21
|
-
private columnName;
|
|
22
|
-
constructor(meta: () => EntityMetadata<any>, fieldName: string, columnName: string);
|
|
23
|
-
setOnEntity(data: any, row: any): void;
|
|
24
|
-
setOnRow(data: any, row: any): void;
|
|
25
|
-
getFromEntity(data: any): number | undefined;
|
|
26
|
-
mapToDb(value: any): number | undefined;
|
|
27
|
-
}
|
|
28
|
-
export declare class ForeignKeySerde implements ColumnSerde {
|
|
29
|
-
private fieldName;
|
|
30
|
-
private columnName;
|
|
31
|
-
otherMeta: () => EntityMetadata<any>;
|
|
32
|
-
constructor(fieldName: string, columnName: string, otherMeta: () => EntityMetadata<any>);
|
|
33
|
-
setOnEntity(data: any, row: any): void;
|
|
34
|
-
setOnRow(data: any, row: any): void;
|
|
35
|
-
getFromEntity(data: any): number | undefined;
|
|
36
|
-
mapToDb(value: any): any;
|
|
37
|
-
}
|
|
38
|
-
export declare class EnumFieldSerde implements ColumnSerde {
|
|
39
|
-
private fieldName;
|
|
40
|
-
private columnName;
|
|
41
|
-
private enumObject;
|
|
42
|
-
constructor(fieldName: string, columnName: string, enumObject: any);
|
|
43
|
-
setOnEntity(data: any, row: any): void;
|
|
44
|
-
setOnRow(data: any, row: any): void;
|
|
45
|
-
getFromEntity(data: any): any;
|
|
46
|
-
mapToDb(value: any): any;
|
|
47
|
-
}
|
package/build/serde.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EnumFieldSerde = exports.ForeignKeySerde = exports.PrimaryKeySerde = exports.SimpleSerde = void 0;
|
|
4
|
-
const index_1 = require("./index");
|
|
5
|
-
class SimpleSerde {
|
|
6
|
-
constructor(fieldName, columnName) {
|
|
7
|
-
this.fieldName = fieldName;
|
|
8
|
-
this.columnName = columnName;
|
|
9
|
-
}
|
|
10
|
-
setOnEntity(data, row) {
|
|
11
|
-
data[this.fieldName] = maybeNullToUndefined(row[this.columnName]);
|
|
12
|
-
}
|
|
13
|
-
setOnRow(data, row) {
|
|
14
|
-
row[this.columnName] = data[this.fieldName];
|
|
15
|
-
}
|
|
16
|
-
getFromEntity(data) {
|
|
17
|
-
return data[this.fieldName];
|
|
18
|
-
}
|
|
19
|
-
mapToDb(value) {
|
|
20
|
-
return value;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.SimpleSerde = SimpleSerde;
|
|
24
|
-
/** Maps integer primary keys ot strings "because GraphQL". */
|
|
25
|
-
class PrimaryKeySerde {
|
|
26
|
-
constructor(meta, fieldName, columnName) {
|
|
27
|
-
this.meta = meta;
|
|
28
|
-
this.fieldName = fieldName;
|
|
29
|
-
this.columnName = columnName;
|
|
30
|
-
}
|
|
31
|
-
setOnEntity(data, row) {
|
|
32
|
-
data[this.fieldName] = index_1.keyToString(this.meta(), row[this.columnName]);
|
|
33
|
-
}
|
|
34
|
-
setOnRow(data, row) {
|
|
35
|
-
row[this.columnName] = index_1.keyToNumber(this.meta(), data[this.fieldName]);
|
|
36
|
-
}
|
|
37
|
-
getFromEntity(data) {
|
|
38
|
-
return index_1.keyToNumber(this.meta(), data[this.fieldName]);
|
|
39
|
-
}
|
|
40
|
-
mapToDb(value) {
|
|
41
|
-
return index_1.keyToNumber(this.meta(), value);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.PrimaryKeySerde = PrimaryKeySerde;
|
|
45
|
-
class ForeignKeySerde {
|
|
46
|
-
// TODO EntityMetadata being in here is weird.
|
|
47
|
-
constructor(fieldName, columnName, otherMeta) {
|
|
48
|
-
this.fieldName = fieldName;
|
|
49
|
-
this.columnName = columnName;
|
|
50
|
-
this.otherMeta = otherMeta;
|
|
51
|
-
}
|
|
52
|
-
setOnEntity(data, row) {
|
|
53
|
-
data[this.fieldName] = index_1.keyToString(this.otherMeta(), row[this.columnName]);
|
|
54
|
-
}
|
|
55
|
-
setOnRow(data, row) {
|
|
56
|
-
row[this.columnName] = index_1.keyToNumber(this.otherMeta(), index_1.maybeResolveReferenceToId(data[this.fieldName]));
|
|
57
|
-
}
|
|
58
|
-
getFromEntity(data) {
|
|
59
|
-
return index_1.keyToNumber(this.otherMeta(), index_1.maybeResolveReferenceToId(data[this.fieldName]));
|
|
60
|
-
}
|
|
61
|
-
mapToDb(value) {
|
|
62
|
-
return index_1.keyToNumber(this.otherMeta(), index_1.maybeResolveReferenceToId(value));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.ForeignKeySerde = ForeignKeySerde;
|
|
66
|
-
class EnumFieldSerde {
|
|
67
|
-
constructor(fieldName, columnName, enumObject) {
|
|
68
|
-
this.fieldName = fieldName;
|
|
69
|
-
this.columnName = columnName;
|
|
70
|
-
this.enumObject = enumObject;
|
|
71
|
-
}
|
|
72
|
-
setOnEntity(data, row) {
|
|
73
|
-
var _a;
|
|
74
|
-
data[this.fieldName] = (_a = this.enumObject.findById(row[this.columnName])) === null || _a === void 0 ? void 0 : _a.code;
|
|
75
|
-
}
|
|
76
|
-
setOnRow(data, row) {
|
|
77
|
-
var _a;
|
|
78
|
-
row[this.columnName] = (_a = this.enumObject.findByCode(data[this.fieldName])) === null || _a === void 0 ? void 0 : _a.id;
|
|
79
|
-
}
|
|
80
|
-
getFromEntity(data) {
|
|
81
|
-
var _a;
|
|
82
|
-
return (_a = this.enumObject.findByCode(data[this.fieldName])) === null || _a === void 0 ? void 0 : _a.id;
|
|
83
|
-
}
|
|
84
|
-
mapToDb(value) {
|
|
85
|
-
var _a;
|
|
86
|
-
return (_a = this.enumObject.findByCode(value)) === null || _a === void 0 ? void 0 : _a.id;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
exports.EnumFieldSerde = EnumFieldSerde;
|
|
90
|
-
function maybeNullToUndefined(value) {
|
|
91
|
-
return value === null ? undefined : value;
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=serde.js.map
|
package/build/serde.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serde.js","sourceRoot":"","sources":["../src/serde.ts"],"names":[],"mappings":"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"}
|
package/build/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CACtB,MAAS,EACT,GAAY,EACZ,YAA6C;IAE7C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;QAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,YAAY,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;KAChF;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AATD,4BASC;AAED,SAAgB,IAAI,CAAC,OAAgB;IACnC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC;AACvC,CAAC;AAFD,oBAEC;AAED,SAAgB,MAAM,CAAI,KAAU,EAAE,CAAI;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;QACd,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACxB;AACH,CAAC;AALD,wBAKC;AAED,0CAA0C;AAC1C,SAAgB,MAAM,CAAC,CAAS;IAC9B,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC;AAFD,wBAEC;AAED,SAAgB,OAAO,CAAW,IAAS,EAAE,EAAoB,EAAE,OAAqB;IACtF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACtB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SACvB;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAG,CAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAVD,0BAUC;AAED,SAAgB,OAAO,CAAW,IAAS,EAAE,EAAoB,EAAE,OAAqB;IACtF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAa,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAG,CAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAPD,0BAOC;AAED,SAAgB,SAAS,CAAI,KAAuB,EAAE,CAAqB;IACzE,MAAM,YAAY,GAAQ,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAQ,EAAE,CAAC;IAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;YACT,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACvB;aAAM;YACL,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC;AAXD,8BAWC"}
|
package/package.json.bak
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "joist-orm",
|
|
3
|
-
"version": "0.1.0-bump",
|
|
4
|
-
"license": "MIT",
|
|
5
|
-
"main": "build/index.js",
|
|
6
|
-
"types": "build/index.d.ts",
|
|
7
|
-
"dependencies": {
|
|
8
|
-
"@types/object-hash": "^1.3.1",
|
|
9
|
-
"contexty": "^1.0.0",
|
|
10
|
-
"dataloader": "^2.0.0",
|
|
11
|
-
"is-plain-object": "^3.0.1",
|
|
12
|
-
"joist-utils": "0.1.0-bump",
|
|
13
|
-
"knex": "^0.21.4",
|
|
14
|
-
"object-hash": "^2.0.3",
|
|
15
|
-
"pg": "^8.3.0"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@types/jest": "^25.2.1",
|
|
19
|
-
"@types/node": "^13.13.4",
|
|
20
|
-
"jest": "^25.5.3",
|
|
21
|
-
"prettier": "^2.0.5",
|
|
22
|
-
"ts-jest": "^25.4.0",
|
|
23
|
-
"ts-node-dev": "^1.0.0-pre.44",
|
|
24
|
-
"tsconfig-paths": "^3.9.0",
|
|
25
|
-
"typescript": "^3.9.5"
|
|
26
|
-
}
|
|
27
|
-
}
|
package/src/BaseEntity.ts
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
deTagIds,
|
|
3
|
-
Entity,
|
|
4
|
-
EntityManager,
|
|
5
|
-
EntityOrmField,
|
|
6
|
-
fail,
|
|
7
|
-
getMetadata,
|
|
8
|
-
IdOf,
|
|
9
|
-
isEntity,
|
|
10
|
-
keyToNumber,
|
|
11
|
-
OptsOf,
|
|
12
|
-
PartialOrNull,
|
|
13
|
-
} from "./index";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* The base class for all entities.
|
|
17
|
-
*
|
|
18
|
-
* Currently this just adds the `.load(lensFn)` method for declarative reference traversal.
|
|
19
|
-
*/
|
|
20
|
-
export abstract class BaseEntity implements Entity {
|
|
21
|
-
abstract id: string | undefined;
|
|
22
|
-
readonly __orm: EntityOrmField;
|
|
23
|
-
|
|
24
|
-
protected constructor(em: EntityManager, metadata: any, defaultValues: object, opts: any) {
|
|
25
|
-
this.__orm = { em, metadata, data: { ...defaultValues }, originalData: {} };
|
|
26
|
-
// Ensure we have at least id set so the `EntityManager.register` works
|
|
27
|
-
if (typeof opts === "string") {
|
|
28
|
-
this.__orm.data["id"] = opts;
|
|
29
|
-
}
|
|
30
|
-
em.register(metadata, this);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
get idUntagged(): string | undefined {
|
|
34
|
-
if (this.id) {
|
|
35
|
-
return deTagIds(getMetadata(this), [this.id])[0];
|
|
36
|
-
}
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
get idUntaggedOrFail(): string {
|
|
41
|
-
return this.idUntagged || fail("Entity has no id yet");
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
abstract set(values: Partial<OptsOf<this>>): void;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Similar to `set` but applies "Partial API" semantics, i.e. `null` means unset and `undefined` means don't change.
|
|
48
|
-
*/
|
|
49
|
-
abstract setPartial(values: PartialOrNull<OptsOf<this>>): void;
|
|
50
|
-
|
|
51
|
-
/** @returns the current entity id or a runtime error if it's unassigned, i.e. it's not been assigned from the db yet. */
|
|
52
|
-
get idOrFail(): IdOf<this> {
|
|
53
|
-
return this.__orm.data["id"] || fail("Entity has no id yet");
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
get isNewEntity(): boolean {
|
|
57
|
-
return this.id === undefined;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
get isDeletedEntity(): boolean {
|
|
61
|
-
return this.__orm.deleted !== undefined;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
get isDirtyEntity(): boolean {
|
|
65
|
-
return Object.keys(this.__orm.originalData).length > 0;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
get isPendingFlush(): boolean {
|
|
69
|
-
return this.isNewEntity || this.isDirtyEntity || this.isPendingDelete;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
get isPendingDelete(): boolean {
|
|
73
|
-
return this.__orm.deleted === "pending";
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
toString(): string {
|
|
77
|
-
const meta = getMetadata(this);
|
|
78
|
-
// Strip the tag because we add back the entity prefix
|
|
79
|
-
const id = keyToNumber(meta, this.id) || "new";
|
|
80
|
-
// Returns `Author:1` instead of `author:1` to differentiate the instance's toString from the tagged id itself
|
|
81
|
-
return `${meta.type}:${id}`;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* A very simple toJSON.
|
|
86
|
-
*
|
|
87
|
-
* This is not really meant as something you would actually put on the
|
|
88
|
-
* wire as an API response, but instead is to keep accidental/debugging
|
|
89
|
-
* JSON-ification of an Entity (i.e. by a logger like pino) to not
|
|
90
|
-
* recurse into all of our References/Collections/EntityManager/etc.
|
|
91
|
-
* */
|
|
92
|
-
public toJSON(): object {
|
|
93
|
-
return Object.fromEntries(
|
|
94
|
-
Object.entries(this.__orm.data).map(([key, value]) => {
|
|
95
|
-
// Don't recurse into new entities b/c the point is to stay shallow
|
|
96
|
-
return [key, isEntity(value) ? value.toString() : value];
|
|
97
|
-
}),
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
[Symbol.toStringTag](): string {
|
|
102
|
-
return this.toString();
|
|
103
|
-
}
|
|
104
|
-
}
|