@strapi/database 5.12.1 → 5.12.2
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/dist/connection.js +43 -0
- package/dist/connection.js.map +1 -0
- package/dist/connection.mjs +41 -0
- package/dist/connection.mjs.map +1 -0
- package/dist/dialects/dialect.js +54 -0
- package/dist/dialects/dialect.js.map +1 -0
- package/dist/dialects/dialect.mjs +52 -0
- package/dist/dialects/dialect.mjs.map +1 -0
- package/dist/dialects/index.js +44 -0
- package/dist/dialects/index.js.map +1 -0
- package/dist/dialects/index.mjs +42 -0
- package/dist/dialects/index.mjs.map +1 -0
- package/dist/dialects/mysql/constants.js +8 -0
- package/dist/dialects/mysql/constants.js.map +1 -0
- package/dist/dialects/mysql/constants.mjs +5 -0
- package/dist/dialects/mysql/constants.mjs.map +1 -0
- package/dist/dialects/mysql/database-inspector.js +35 -0
- package/dist/dialects/mysql/database-inspector.js.map +1 -0
- package/dist/dialects/mysql/database-inspector.mjs +33 -0
- package/dist/dialects/mysql/database-inspector.mjs.map +1 -0
- package/dist/dialects/mysql/index.js +75 -0
- package/dist/dialects/mysql/index.js.map +1 -0
- package/dist/dialects/mysql/index.mjs +73 -0
- package/dist/dialects/mysql/index.mjs.map +1 -0
- package/dist/dialects/mysql/schema-inspector.js +297 -0
- package/dist/dialects/mysql/schema-inspector.js.map +1 -0
- package/dist/dialects/mysql/schema-inspector.mjs +295 -0
- package/dist/dialects/mysql/schema-inspector.mjs.map +1 -0
- package/dist/dialects/postgresql/index.js +62 -0
- package/dist/dialects/postgresql/index.js.map +1 -0
- package/dist/dialects/postgresql/index.mjs +60 -0
- package/dist/dialects/postgresql/index.mjs.map +1 -0
- package/dist/dialects/postgresql/schema-inspector.js +316 -0
- package/dist/dialects/postgresql/schema-inspector.js.map +1 -0
- package/dist/dialects/postgresql/schema-inspector.mjs +314 -0
- package/dist/dialects/postgresql/schema-inspector.mjs.map +1 -0
- package/dist/dialects/sqlite/index.js +82 -0
- package/dist/dialects/sqlite/index.js.map +1 -0
- package/dist/dialects/sqlite/index.mjs +80 -0
- package/dist/dialects/sqlite/index.mjs.map +1 -0
- package/dist/dialects/sqlite/schema-inspector.js +211 -0
- package/dist/dialects/sqlite/schema-inspector.js.map +1 -0
- package/dist/dialects/sqlite/schema-inspector.mjs +209 -0
- package/dist/dialects/sqlite/schema-inspector.mjs.map +1 -0
- package/dist/entity-manager/entity-repository.js +139 -0
- package/dist/entity-manager/entity-repository.js.map +1 -0
- package/dist/entity-manager/entity-repository.mjs +137 -0
- package/dist/entity-manager/entity-repository.mjs.map +1 -0
- package/dist/entity-manager/index.js +1186 -0
- package/dist/entity-manager/index.js.map +1 -0
- package/dist/entity-manager/index.mjs +1184 -0
- package/dist/entity-manager/index.mjs.map +1 -0
- package/dist/entity-manager/morph-relations.js +73 -0
- package/dist/entity-manager/morph-relations.js.map +1 -0
- package/dist/entity-manager/morph-relations.mjs +69 -0
- package/dist/entity-manager/morph-relations.mjs.map +1 -0
- package/dist/entity-manager/regular-relations.js +247 -0
- package/dist/entity-manager/regular-relations.js.map +1 -0
- package/dist/entity-manager/regular-relations.mjs +242 -0
- package/dist/entity-manager/regular-relations.mjs.map +1 -0
- package/dist/entity-manager/relations-orderer.js +221 -0
- package/dist/entity-manager/relations-orderer.js.map +1 -0
- package/dist/entity-manager/relations-orderer.mjs +218 -0
- package/dist/entity-manager/relations-orderer.mjs.map +1 -0
- package/dist/errors/database.js +13 -0
- package/dist/errors/database.js.map +1 -0
- package/dist/errors/database.mjs +11 -0
- package/dist/errors/database.mjs.map +1 -0
- package/dist/errors/index.js +18 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/index.mjs +7 -0
- package/dist/errors/index.mjs.map +1 -0
- package/dist/errors/invalid-date.js +13 -0
- package/dist/errors/invalid-date.js.map +1 -0
- package/dist/errors/invalid-date.mjs +11 -0
- package/dist/errors/invalid-date.mjs.map +1 -0
- package/dist/errors/invalid-datetime.js +13 -0
- package/dist/errors/invalid-datetime.js.map +1 -0
- package/dist/errors/invalid-datetime.mjs +11 -0
- package/dist/errors/invalid-datetime.mjs.map +1 -0
- package/dist/errors/invalid-relation.js +13 -0
- package/dist/errors/invalid-relation.js.map +1 -0
- package/dist/errors/invalid-relation.mjs +11 -0
- package/dist/errors/invalid-relation.mjs.map +1 -0
- package/dist/errors/invalid-time.js +13 -0
- package/dist/errors/invalid-time.js.map +1 -0
- package/dist/errors/invalid-time.mjs +11 -0
- package/dist/errors/invalid-time.mjs.map +1 -0
- package/dist/errors/not-null.js +17 -0
- package/dist/errors/not-null.js.map +1 -0
- package/dist/errors/not-null.mjs +15 -0
- package/dist/errors/not-null.mjs.map +1 -0
- package/dist/fields/biginteger.js +9 -0
- package/dist/fields/biginteger.js.map +1 -0
- package/dist/fields/biginteger.mjs +7 -0
- package/dist/fields/biginteger.mjs.map +1 -0
- package/dist/fields/boolean.js +48 -0
- package/dist/fields/boolean.js.map +1 -0
- package/dist/fields/boolean.mjs +46 -0
- package/dist/fields/boolean.mjs.map +1 -0
- package/dist/fields/date.js +16 -0
- package/dist/fields/date.js.map +1 -0
- package/dist/fields/date.mjs +14 -0
- package/dist/fields/date.mjs.map +1 -0
- package/dist/fields/datetime.js +37 -0
- package/dist/fields/datetime.js.map +1 -0
- package/dist/fields/datetime.mjs +16 -0
- package/dist/fields/datetime.mjs.map +1 -0
- package/dist/fields/field.js +16 -0
- package/dist/fields/field.js.map +1 -0
- package/dist/fields/field.mjs +14 -0
- package/dist/fields/field.mjs.map +1 -0
- package/dist/fields/index.js +45 -0
- package/dist/fields/index.js.map +1 -0
- package/dist/fields/index.mjs +43 -0
- package/dist/fields/index.mjs.map +1 -0
- package/dist/fields/json.js +36 -0
- package/dist/fields/json.js.map +1 -0
- package/dist/fields/json.mjs +34 -0
- package/dist/fields/json.mjs.map +1 -0
- package/dist/fields/number.js +20 -0
- package/dist/fields/number.js.map +1 -0
- package/dist/fields/number.mjs +18 -0
- package/dist/fields/number.mjs.map +1 -0
- package/dist/fields/shared/parsers.js +91 -0
- package/dist/fields/shared/parsers.js.map +1 -0
- package/dist/fields/shared/parsers.mjs +68 -0
- package/dist/fields/shared/parsers.mjs.map +1 -0
- package/dist/fields/string.js +16 -0
- package/dist/fields/string.js.map +1 -0
- package/dist/fields/string.mjs +14 -0
- package/dist/fields/string.mjs.map +1 -0
- package/dist/fields/time.js +17 -0
- package/dist/fields/time.js.map +1 -0
- package/dist/fields/time.mjs +15 -0
- package/dist/fields/time.mjs.map +1 -0
- package/dist/fields/timestamp.js +37 -0
- package/dist/fields/timestamp.js.map +1 -0
- package/dist/fields/timestamp.mjs +16 -0
- package/dist/fields/timestamp.mjs.map +1 -0
- package/dist/index.js +33 -8569
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -8532
- package/dist/index.mjs.map +1 -1
- package/dist/lifecycles/index.js +73 -0
- package/dist/lifecycles/index.js.map +1 -0
- package/dist/lifecycles/index.mjs +71 -0
- package/dist/lifecycles/index.mjs.map +1 -0
- package/dist/lifecycles/subscribers/index.js +10 -0
- package/dist/lifecycles/subscribers/index.js.map +1 -0
- package/dist/lifecycles/subscribers/index.mjs +8 -0
- package/dist/lifecycles/subscribers/index.mjs.map +1 -0
- package/dist/lifecycles/subscribers/models-lifecycles.js +13 -0
- package/dist/lifecycles/subscribers/models-lifecycles.js.map +1 -0
- package/dist/lifecycles/subscribers/models-lifecycles.mjs +11 -0
- package/dist/lifecycles/subscribers/models-lifecycles.mjs.map +1 -0
- package/dist/lifecycles/subscribers/timestamps.js +55 -0
- package/dist/lifecycles/subscribers/timestamps.js.map +1 -0
- package/dist/lifecycles/subscribers/timestamps.mjs +53 -0
- package/dist/lifecycles/subscribers/timestamps.mjs.map +1 -0
- package/dist/metadata/index.js +24 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/index.mjs +16 -0
- package/dist/metadata/index.mjs.map +1 -0
- package/dist/metadata/metadata.js +100 -0
- package/dist/metadata/metadata.js.map +1 -0
- package/dist/metadata/metadata.mjs +98 -0
- package/dist/metadata/metadata.mjs.map +1 -0
- package/dist/metadata/relations.js +545 -0
- package/dist/metadata/relations.js.map +1 -0
- package/dist/metadata/relations.mjs +536 -0
- package/dist/metadata/relations.mjs.map +1 -0
- package/dist/migrations/common.js +8 -0
- package/dist/migrations/common.js.map +1 -0
- package/dist/migrations/common.mjs +6 -0
- package/dist/migrations/common.mjs.map +1 -0
- package/dist/migrations/index.js +39 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/index.mjs +37 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-01-convert-identifiers-long-than-max-length.js +179 -0
- package/dist/migrations/internal-migrations/5.0.0-01-convert-identifiers-long-than-max-length.js.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-01-convert-identifiers-long-than-max-length.mjs +177 -0
- package/dist/migrations/internal-migrations/5.0.0-01-convert-identifiers-long-than-max-length.mjs.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-02-document-id.js +125 -0
- package/dist/migrations/internal-migrations/5.0.0-02-document-id.js.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-02-document-id.mjs +123 -0
- package/dist/migrations/internal-migrations/5.0.0-02-document-id.mjs.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-03-locale.js +41 -0
- package/dist/migrations/internal-migrations/5.0.0-03-locale.js.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-03-locale.mjs +39 -0
- package/dist/migrations/internal-migrations/5.0.0-03-locale.mjs.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-04-published-at.js +45 -0
- package/dist/migrations/internal-migrations/5.0.0-04-published-at.js.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-04-published-at.mjs +43 -0
- package/dist/migrations/internal-migrations/5.0.0-04-published-at.mjs.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-05-drop-slug-unique-index.js +43 -0
- package/dist/migrations/internal-migrations/5.0.0-05-drop-slug-unique-index.js.map +1 -0
- package/dist/migrations/internal-migrations/5.0.0-05-drop-slug-unique-index.mjs +41 -0
- package/dist/migrations/internal-migrations/5.0.0-05-drop-slug-unique-index.mjs.map +1 -0
- package/dist/migrations/internal-migrations/index.js +26 -0
- package/dist/migrations/internal-migrations/index.js.map +1 -0
- package/dist/migrations/internal-migrations/index.mjs +24 -0
- package/dist/migrations/internal-migrations/index.mjs.map +1 -0
- package/dist/migrations/internal.js +63 -0
- package/dist/migrations/internal.js.map +1 -0
- package/dist/migrations/internal.mjs +61 -0
- package/dist/migrations/internal.mjs.map +1 -0
- package/dist/migrations/logger.js +24 -0
- package/dist/migrations/logger.js.map +1 -0
- package/dist/migrations/logger.mjs +22 -0
- package/dist/migrations/logger.mjs.map +1 -0
- package/dist/migrations/storage.js +39 -0
- package/dist/migrations/storage.js.map +1 -0
- package/dist/migrations/storage.mjs +37 -0
- package/dist/migrations/storage.mjs.map +1 -0
- package/dist/migrations/users.js +87 -0
- package/dist/migrations/users.js.map +1 -0
- package/dist/migrations/users.mjs +85 -0
- package/dist/migrations/users.mjs.map +1 -0
- package/dist/query/helpers/join.js +127 -0
- package/dist/query/helpers/join.js.map +1 -0
- package/dist/query/helpers/join.mjs +122 -0
- package/dist/query/helpers/join.mjs.map +1 -0
- package/dist/query/helpers/order-by.js +167 -0
- package/dist/query/helpers/order-by.js.map +1 -0
- package/dist/query/helpers/order-by.mjs +163 -0
- package/dist/query/helpers/order-by.mjs.map +1 -0
- package/dist/query/helpers/populate/apply.js +592 -0
- package/dist/query/helpers/populate/apply.js.map +1 -0
- package/dist/query/helpers/populate/apply.mjs +590 -0
- package/dist/query/helpers/populate/apply.mjs.map +1 -0
- package/dist/query/helpers/populate/process.js +92 -0
- package/dist/query/helpers/populate/process.js.map +1 -0
- package/dist/query/helpers/populate/process.mjs +90 -0
- package/dist/query/helpers/populate/process.mjs.map +1 -0
- package/dist/query/helpers/search.js +67 -0
- package/dist/query/helpers/search.js.map +1 -0
- package/dist/query/helpers/search.mjs +65 -0
- package/dist/query/helpers/search.mjs.map +1 -0
- package/dist/query/helpers/streams/readable.js +131 -0
- package/dist/query/helpers/streams/readable.js.map +1 -0
- package/dist/query/helpers/streams/readable.mjs +129 -0
- package/dist/query/helpers/streams/readable.mjs.map +1 -0
- package/dist/query/helpers/transform.js +77 -0
- package/dist/query/helpers/transform.js.map +1 -0
- package/dist/query/helpers/transform.mjs +73 -0
- package/dist/query/helpers/transform.mjs.map +1 -0
- package/dist/query/helpers/where.js +372 -0
- package/dist/query/helpers/where.js.map +1 -0
- package/dist/query/helpers/where.mjs +369 -0
- package/dist/query/helpers/where.mjs.map +1 -0
- package/dist/query/query-builder.js +507 -0
- package/dist/query/query-builder.js.map +1 -0
- package/dist/query/query-builder.mjs +505 -0
- package/dist/query/query-builder.mjs.map +1 -0
- package/dist/repairs/index.js +13 -0
- package/dist/repairs/index.js.map +1 -0
- package/dist/repairs/index.mjs +11 -0
- package/dist/repairs/index.mjs.map +1 -0
- package/dist/repairs/operations/remove-orphan-morph-types.js +54 -0
- package/dist/repairs/operations/remove-orphan-morph-types.js.map +1 -0
- package/dist/repairs/operations/remove-orphan-morph-types.mjs +52 -0
- package/dist/repairs/operations/remove-orphan-morph-types.mjs.map +1 -0
- package/dist/schema/builder.js +354 -0
- package/dist/schema/builder.js.map +1 -0
- package/dist/schema/builder.mjs +352 -0
- package/dist/schema/builder.mjs.map +1 -0
- package/dist/schema/diff.js +379 -0
- package/dist/schema/diff.js.map +1 -0
- package/dist/schema/diff.mjs +377 -0
- package/dist/schema/diff.mjs.map +1 -0
- package/dist/schema/index.js +93 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/index.mjs +91 -0
- package/dist/schema/index.mjs.map +1 -0
- package/dist/schema/schema.js +266 -0
- package/dist/schema/schema.js.map +1 -0
- package/dist/schema/schema.mjs +264 -0
- package/dist/schema/schema.mjs.map +1 -0
- package/dist/schema/storage.js +58 -0
- package/dist/schema/storage.js.map +1 -0
- package/dist/schema/storage.mjs +56 -0
- package/dist/schema/storage.mjs.map +1 -0
- package/dist/transaction-context.js +65 -0
- package/dist/transaction-context.js.map +1 -0
- package/dist/transaction-context.mjs +63 -0
- package/dist/transaction-context.mjs.map +1 -0
- package/dist/utils/async-curry.js +19 -0
- package/dist/utils/async-curry.js.map +1 -0
- package/dist/utils/async-curry.mjs +17 -0
- package/dist/utils/async-curry.mjs.map +1 -0
- package/dist/utils/identifiers/hash.js +30 -0
- package/dist/utils/identifiers/hash.js.map +1 -0
- package/dist/utils/identifiers/hash.mjs +28 -0
- package/dist/utils/identifiers/hash.mjs.map +1 -0
- package/dist/utils/identifiers/index.js +414 -0
- package/dist/utils/identifiers/index.js.map +1 -0
- package/dist/utils/identifiers/index.mjs +411 -0
- package/dist/utils/identifiers/index.mjs.map +1 -0
- package/dist/utils/knex.js +21 -0
- package/dist/utils/knex.js.map +1 -0
- package/dist/utils/knex.mjs +18 -0
- package/dist/utils/knex.mjs.map +1 -0
- package/dist/utils/types.js +51 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/types.mjs +44 -0
- package/dist/utils/types.mjs.map +1 -0
- package/dist/validations/index.js +12 -0
- package/dist/validations/index.js.map +1 -0
- package/dist/validations/index.mjs +10 -0
- package/dist/validations/index.mjs.map +1 -0
- package/dist/validations/relations/bidirectional.js +64 -0
- package/dist/validations/relations/bidirectional.js.map +1 -0
- package/dist/validations/relations/bidirectional.mjs +62 -0
- package/dist/validations/relations/bidirectional.mjs.map +1 -0
- package/dist/validations/relations/index.js +13 -0
- package/dist/validations/relations/index.js.map +1 -0
- package/dist/validations/relations/index.mjs +11 -0
- package/dist/validations/relations/index.mjs.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { isString } from 'lodash/fp';
|
|
2
|
+
|
|
3
|
+
const withDefaultPagination = (params)=>{
|
|
4
|
+
const { page = 1, pageSize = 10, ...rest } = params;
|
|
5
|
+
return {
|
|
6
|
+
page: Number(page),
|
|
7
|
+
pageSize: Number(pageSize),
|
|
8
|
+
...rest
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
const withOffsetLimit = (params)=>{
|
|
12
|
+
const { page, pageSize, ...rest } = withDefaultPagination(params);
|
|
13
|
+
const offset = Math.max(page - 1, 0) * pageSize;
|
|
14
|
+
const limit = pageSize;
|
|
15
|
+
const query = {
|
|
16
|
+
...rest,
|
|
17
|
+
limit,
|
|
18
|
+
offset
|
|
19
|
+
};
|
|
20
|
+
return [
|
|
21
|
+
query,
|
|
22
|
+
{
|
|
23
|
+
page,
|
|
24
|
+
pageSize
|
|
25
|
+
}
|
|
26
|
+
];
|
|
27
|
+
};
|
|
28
|
+
const createRepository = (uid, db)=>{
|
|
29
|
+
return {
|
|
30
|
+
findOne (params = {}) {
|
|
31
|
+
return db.entityManager.findOne(uid, params);
|
|
32
|
+
},
|
|
33
|
+
findMany (params = {}) {
|
|
34
|
+
return db.entityManager.findMany(uid, params);
|
|
35
|
+
},
|
|
36
|
+
findWithCount (params = {}) {
|
|
37
|
+
return Promise.all([
|
|
38
|
+
db.entityManager.findMany(uid, params),
|
|
39
|
+
db.entityManager.count(uid, params)
|
|
40
|
+
]);
|
|
41
|
+
},
|
|
42
|
+
async findPage (params) {
|
|
43
|
+
const [query, { page, pageSize }] = withOffsetLimit(params);
|
|
44
|
+
const [results, total] = await Promise.all([
|
|
45
|
+
db.entityManager.findMany(uid, query),
|
|
46
|
+
db.entityManager.count(uid, query)
|
|
47
|
+
]);
|
|
48
|
+
return {
|
|
49
|
+
results,
|
|
50
|
+
pagination: {
|
|
51
|
+
page,
|
|
52
|
+
pageSize,
|
|
53
|
+
pageCount: Math.ceil(total / pageSize),
|
|
54
|
+
total
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
create (params) {
|
|
59
|
+
return db.entityManager.create(uid, params);
|
|
60
|
+
},
|
|
61
|
+
createMany (params) {
|
|
62
|
+
return db.entityManager.createMany(uid, params);
|
|
63
|
+
},
|
|
64
|
+
update (params) {
|
|
65
|
+
return db.entityManager.update(uid, params);
|
|
66
|
+
},
|
|
67
|
+
updateMany (params) {
|
|
68
|
+
return db.entityManager.updateMany(uid, params);
|
|
69
|
+
},
|
|
70
|
+
delete (params) {
|
|
71
|
+
return db.entityManager.delete(uid, params);
|
|
72
|
+
},
|
|
73
|
+
deleteMany (params = {}) {
|
|
74
|
+
return db.entityManager.deleteMany(uid, params);
|
|
75
|
+
},
|
|
76
|
+
count (params) {
|
|
77
|
+
return db.entityManager.count(uid, params);
|
|
78
|
+
},
|
|
79
|
+
attachRelations (id, data) {
|
|
80
|
+
return db.entityManager.attachRelations(uid, id, data);
|
|
81
|
+
},
|
|
82
|
+
async updateRelations (id, data) {
|
|
83
|
+
const trx = await db.transaction();
|
|
84
|
+
try {
|
|
85
|
+
await db.entityManager.updateRelations(uid, id, data, {
|
|
86
|
+
transaction: trx.get()
|
|
87
|
+
});
|
|
88
|
+
return await trx.commit();
|
|
89
|
+
} catch (e) {
|
|
90
|
+
await trx.rollback();
|
|
91
|
+
throw e;
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
deleteRelations (id) {
|
|
95
|
+
return db.entityManager.deleteRelations(uid, id);
|
|
96
|
+
},
|
|
97
|
+
populate (entity, populate) {
|
|
98
|
+
return db.entityManager.populate(uid, entity, populate);
|
|
99
|
+
},
|
|
100
|
+
load (entity, fields, params) {
|
|
101
|
+
return db.entityManager.load(uid, entity, fields, params);
|
|
102
|
+
},
|
|
103
|
+
async loadPages (entity, field, params) {
|
|
104
|
+
if (!isString(field)) {
|
|
105
|
+
throw new Error(`Invalid load. Expected ${field} to be a string`);
|
|
106
|
+
}
|
|
107
|
+
const { attributes } = db.metadata.get(uid);
|
|
108
|
+
const attribute = attributes[field];
|
|
109
|
+
if (!attribute || attribute.type !== 'relation' || !attribute.relation || ![
|
|
110
|
+
'oneToMany',
|
|
111
|
+
'manyToMany'
|
|
112
|
+
].includes(attribute.relation)) {
|
|
113
|
+
throw new Error(`Invalid load. Expected ${field} to be an anyToMany relational attribute`);
|
|
114
|
+
}
|
|
115
|
+
const [query, { page, pageSize }] = withOffsetLimit(params);
|
|
116
|
+
const [results, { count: total }] = await Promise.all([
|
|
117
|
+
db.entityManager.load(uid, entity, field, query),
|
|
118
|
+
db.entityManager.load(uid, entity, field, {
|
|
119
|
+
...query,
|
|
120
|
+
count: true
|
|
121
|
+
})
|
|
122
|
+
]);
|
|
123
|
+
return {
|
|
124
|
+
results,
|
|
125
|
+
pagination: {
|
|
126
|
+
page,
|
|
127
|
+
pageSize,
|
|
128
|
+
pageCount: Math.ceil(total / pageSize),
|
|
129
|
+
total
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
export { createRepository };
|
|
137
|
+
//# sourceMappingURL=entity-repository.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-repository.mjs","sources":["../../src/entity-manager/entity-repository.ts"],"sourcesContent":["import { isString } from 'lodash/fp';\nimport type { Database } from '..';\nimport type { Repository, Params } from './types';\n\nconst withDefaultPagination = (params: Params) => {\n const { page = 1, pageSize = 10, ...rest } = params;\n\n return {\n page: Number(page),\n pageSize: Number(pageSize),\n ...rest,\n };\n};\n\ntype ParamsWithLimits = Omit<Params, 'page' | 'pageSize'> & {\n limit: number;\n offset: number;\n};\n\nconst withOffsetLimit = (\n params: Params\n): [ParamsWithLimits, { page: number; pageSize: number }] => {\n const { page, pageSize, ...rest } = withDefaultPagination(params);\n\n const offset = Math.max(page - 1, 0) * pageSize;\n const limit = pageSize;\n\n const query = {\n ...rest,\n limit,\n offset,\n };\n\n return [query, { page, pageSize }];\n};\n\nexport const createRepository = (uid: string, db: Database): Repository => {\n return {\n findOne(params = {}) {\n return db.entityManager.findOne(uid, params);\n },\n\n findMany(params = {}) {\n return db.entityManager.findMany(uid, params);\n },\n\n findWithCount(params = {}) {\n return Promise.all([\n db.entityManager.findMany(uid, params),\n db.entityManager.count(uid, params),\n ]);\n },\n\n async findPage(params) {\n const [query, { page, pageSize }] = withOffsetLimit(params);\n\n const [results, total] = await Promise.all([\n db.entityManager.findMany(uid, query),\n db.entityManager.count(uid, query),\n ]);\n\n return {\n results,\n pagination: {\n page,\n pageSize,\n pageCount: Math.ceil(total / pageSize),\n total,\n },\n };\n },\n\n create(params) {\n return db.entityManager.create(uid, params);\n },\n\n createMany(params) {\n return db.entityManager.createMany(uid, params);\n },\n\n update(params) {\n return db.entityManager.update(uid, params);\n },\n\n updateMany(params) {\n return db.entityManager.updateMany(uid, params);\n },\n\n delete(params) {\n return db.entityManager.delete(uid, params);\n },\n\n deleteMany(params = {}) {\n return db.entityManager.deleteMany(uid, params);\n },\n\n count(params) {\n return db.entityManager.count(uid, params);\n },\n\n attachRelations(id, data) {\n return db.entityManager.attachRelations(uid, id, data);\n },\n\n async updateRelations(id, data) {\n const trx = await db.transaction();\n try {\n await db.entityManager.updateRelations(uid, id, data, { transaction: trx.get() });\n return await trx.commit();\n } catch (e) {\n await trx.rollback();\n throw e;\n }\n },\n\n deleteRelations(id) {\n return db.entityManager.deleteRelations(uid, id);\n },\n\n populate(entity, populate) {\n return db.entityManager.populate(uid, entity, populate);\n },\n\n load(entity, fields, params) {\n return db.entityManager.load(uid, entity, fields, params);\n },\n\n async loadPages(entity, field, params) {\n if (!isString(field)) {\n throw new Error(`Invalid load. Expected ${field} to be a string`);\n }\n\n const { attributes } = db.metadata.get(uid);\n const attribute = attributes[field];\n\n if (\n !attribute ||\n attribute.type !== 'relation' ||\n !attribute.relation ||\n !['oneToMany', 'manyToMany'].includes(attribute.relation)\n ) {\n throw new Error(`Invalid load. Expected ${field} to be an anyToMany relational attribute`);\n }\n\n const [query, { page, pageSize }] = withOffsetLimit(params);\n\n const [results, { count: total }] = await Promise.all([\n db.entityManager.load(uid, entity, field, query),\n db.entityManager.load(uid, entity, field, { ...query, count: true }),\n ]);\n\n return {\n results,\n pagination: {\n page,\n pageSize,\n pageCount: Math.ceil(total / pageSize),\n total,\n },\n };\n },\n };\n};\n"],"names":["withDefaultPagination","params","page","pageSize","rest","Number","withOffsetLimit","offset","Math","max","limit","query","createRepository","uid","db","findOne","entityManager","findMany","findWithCount","Promise","all","count","findPage","results","total","pagination","pageCount","ceil","create","createMany","update","updateMany","delete","deleteMany","attachRelations","id","data","updateRelations","trx","transaction","get","commit","e","rollback","deleteRelations","populate","entity","load","fields","loadPages","field","isString","Error","attributes","metadata","attribute","type","relation","includes"],"mappings":";;AAIA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAM,EAAEC,OAAO,CAAC,EAAEC,WAAW,EAAE,EAAE,GAAGC,IAAAA,EAAM,GAAGH,MAAAA;IAE7C,OAAO;AACLC,QAAAA,IAAAA,EAAMG,MAAOH,CAAAA,IAAAA,CAAAA;AACbC,QAAAA,QAAAA,EAAUE,MAAOF,CAAAA,QAAAA,CAAAA;AACjB,QAAA,GAAGC;AACL,KAAA;AACF,CAAA;AAOA,MAAME,kBAAkB,CACtBL,MAAAA,GAAAA;IAEA,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAGC,IAAAA,EAAM,GAAGJ,qBAAsBC,CAAAA,MAAAA,CAAAA;AAE1D,IAAA,MAAMM,SAASC,IAAKC,CAAAA,GAAG,CAACP,IAAAA,GAAO,GAAG,CAAKC,CAAAA,GAAAA,QAAAA;AACvC,IAAA,MAAMO,KAAQP,GAAAA,QAAAA;AAEd,IAAA,MAAMQ,KAAQ,GAAA;AACZ,QAAA,GAAGP,IAAI;AACPM,QAAAA,KAAAA;AACAH,QAAAA;AACF,KAAA;IAEA,OAAO;AAACI,QAAAA,KAAAA;AAAO,QAAA;AAAET,YAAAA,IAAAA;AAAMC,YAAAA;AAAS;AAAE,KAAA;AACpC,CAAA;AAEO,MAAMS,gBAAmB,GAAA,CAACC,GAAaC,EAAAA,EAAAA,GAAAA;IAC5C,OAAO;QACLC,OAAQd,CAAAA,CAAAA,MAAAA,GAAS,EAAE,EAAA;AACjB,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACD,OAAO,CAACF,GAAKZ,EAAAA,MAAAA,CAAAA;AACvC,SAAA;QAEAgB,QAAShB,CAAAA,CAAAA,MAAAA,GAAS,EAAE,EAAA;AAClB,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACC,QAAQ,CAACJ,GAAKZ,EAAAA,MAAAA,CAAAA;AACxC,SAAA;QAEAiB,aAAcjB,CAAAA,CAAAA,MAAAA,GAAS,EAAE,EAAA;YACvB,OAAOkB,OAAAA,CAAQC,GAAG,CAAC;AACjBN,gBAAAA,EAAAA,CAAGE,aAAa,CAACC,QAAQ,CAACJ,GAAKZ,EAAAA,MAAAA,CAAAA;AAC/Ba,gBAAAA,EAAAA,CAAGE,aAAa,CAACK,KAAK,CAACR,GAAKZ,EAAAA,MAAAA;AAC7B,aAAA,CAAA;AACH,SAAA;AAEA,QAAA,MAAMqB,UAASrB,MAAM,EAAA;YACnB,MAAM,CAACU,OAAO,EAAET,IAAI,EAAEC,QAAQ,EAAE,CAAC,GAAGG,eAAgBL,CAAAA,MAAAA,CAAAA;AAEpD,YAAA,MAAM,CAACsB,OAASC,EAAAA,KAAAA,CAAM,GAAG,MAAML,OAAAA,CAAQC,GAAG,CAAC;AACzCN,gBAAAA,EAAAA,CAAGE,aAAa,CAACC,QAAQ,CAACJ,GAAKF,EAAAA,KAAAA,CAAAA;AAC/BG,gBAAAA,EAAAA,CAAGE,aAAa,CAACK,KAAK,CAACR,GAAKF,EAAAA,KAAAA;AAC7B,aAAA,CAAA;YAED,OAAO;AACLY,gBAAAA,OAAAA;gBACAE,UAAY,EAAA;AACVvB,oBAAAA,IAAAA;AACAC,oBAAAA,QAAAA;oBACAuB,SAAWlB,EAAAA,IAAAA,CAAKmB,IAAI,CAACH,KAAQrB,GAAAA,QAAAA,CAAAA;AAC7BqB,oBAAAA;AACF;AACF,aAAA;AACF,SAAA;AAEAI,QAAAA,MAAAA,CAAAA,CAAO3B,MAAM,EAAA;AACX,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACY,MAAM,CAACf,GAAKZ,EAAAA,MAAAA,CAAAA;AACtC,SAAA;AAEA4B,QAAAA,UAAAA,CAAAA,CAAW5B,MAAM,EAAA;AACf,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACa,UAAU,CAAChB,GAAKZ,EAAAA,MAAAA,CAAAA;AAC1C,SAAA;AAEA6B,QAAAA,MAAAA,CAAAA,CAAO7B,MAAM,EAAA;AACX,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACc,MAAM,CAACjB,GAAKZ,EAAAA,MAAAA,CAAAA;AACtC,SAAA;AAEA8B,QAAAA,UAAAA,CAAAA,CAAW9B,MAAM,EAAA;AACf,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACe,UAAU,CAAClB,GAAKZ,EAAAA,MAAAA,CAAAA;AAC1C,SAAA;AAEA+B,QAAAA,MAAAA,CAAAA,CAAO/B,MAAM,EAAA;AACX,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACgB,MAAM,CAACnB,GAAKZ,EAAAA,MAAAA,CAAAA;AACtC,SAAA;QAEAgC,UAAWhC,CAAAA,CAAAA,MAAAA,GAAS,EAAE,EAAA;AACpB,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACiB,UAAU,CAACpB,GAAKZ,EAAAA,MAAAA,CAAAA;AAC1C,SAAA;AAEAoB,QAAAA,KAAAA,CAAAA,CAAMpB,MAAM,EAAA;AACV,YAAA,OAAOa,EAAGE,CAAAA,aAAa,CAACK,KAAK,CAACR,GAAKZ,EAAAA,MAAAA,CAAAA;AACrC,SAAA;QAEAiC,eAAgBC,CAAAA,CAAAA,EAAE,EAAEC,IAAI,EAAA;AACtB,YAAA,OAAOtB,GAAGE,aAAa,CAACkB,eAAe,CAACrB,KAAKsB,EAAIC,EAAAA,IAAAA,CAAAA;AACnD,SAAA;QAEA,MAAMC,eAAAA,CAAAA,CAAgBF,EAAE,EAAEC,IAAI,EAAA;YAC5B,MAAME,GAAAA,GAAM,MAAMxB,EAAAA,CAAGyB,WAAW,EAAA;YAChC,IAAI;AACF,gBAAA,MAAMzB,GAAGE,aAAa,CAACqB,eAAe,CAACxB,GAAAA,EAAKsB,IAAIC,IAAM,EAAA;AAAEG,oBAAAA,WAAAA,EAAaD,IAAIE,GAAG;AAAG,iBAAA,CAAA;gBAC/E,OAAO,MAAMF,IAAIG,MAAM,EAAA;AACzB,aAAA,CAAE,OAAOC,CAAG,EAAA;AACV,gBAAA,MAAMJ,IAAIK,QAAQ,EAAA;gBAClB,MAAMD,CAAAA;AACR;AACF,SAAA;AAEAE,QAAAA,eAAAA,CAAAA,CAAgBT,EAAE,EAAA;AAChB,YAAA,OAAOrB,EAAGE,CAAAA,aAAa,CAAC4B,eAAe,CAAC/B,GAAKsB,EAAAA,EAAAA,CAAAA;AAC/C,SAAA;QAEAU,QAASC,CAAAA,CAAAA,MAAM,EAAED,QAAQ,EAAA;AACvB,YAAA,OAAO/B,GAAGE,aAAa,CAAC6B,QAAQ,CAAChC,KAAKiC,MAAQD,EAAAA,QAAAA,CAAAA;AAChD,SAAA;AAEAE,QAAAA,IAAAA,CAAAA,CAAKD,MAAM,EAAEE,MAAM,EAAE/C,MAAM,EAAA;AACzB,YAAA,OAAOa,GAAGE,aAAa,CAAC+B,IAAI,CAAClC,GAAAA,EAAKiC,QAAQE,MAAQ/C,EAAAA,MAAAA,CAAAA;AACpD,SAAA;AAEA,QAAA,MAAMgD,SAAUH,CAAAA,CAAAA,MAAM,EAAEI,KAAK,EAAEjD,MAAM,EAAA;YACnC,IAAI,CAACkD,SAASD,KAAQ,CAAA,EAAA;AACpB,gBAAA,MAAM,IAAIE,KAAM,CAAA,CAAC,uBAAuB,EAAEF,KAAAA,CAAM,eAAe,CAAC,CAAA;AAClE;YAEA,MAAM,EAAEG,UAAU,EAAE,GAAGvC,GAAGwC,QAAQ,CAACd,GAAG,CAAC3B,GAAAA,CAAAA;YACvC,MAAM0C,SAAAA,GAAYF,UAAU,CAACH,KAAM,CAAA;YAEnC,IACE,CAACK,SACDA,IAAAA,SAAAA,CAAUC,IAAI,KAAK,cACnB,CAACD,SAAAA,CAAUE,QAAQ,IACnB,CAAC;AAAC,gBAAA,WAAA;AAAa,gBAAA;AAAa,aAAA,CAACC,QAAQ,CAACH,SAAUE,CAAAA,QAAQ,CACxD,EAAA;AACA,gBAAA,MAAM,IAAIL,KAAM,CAAA,CAAC,uBAAuB,EAAEF,KAAAA,CAAM,wCAAwC,CAAC,CAAA;AAC3F;YAEA,MAAM,CAACvC,OAAO,EAAET,IAAI,EAAEC,QAAQ,EAAE,CAAC,GAAGG,eAAgBL,CAAAA,MAAAA,CAAAA;YAEpD,MAAM,CAACsB,OAAS,EAAA,EAAEF,KAAOG,EAAAA,KAAK,EAAE,CAAC,GAAG,MAAML,OAAQC,CAAAA,GAAG,CAAC;AACpDN,gBAAAA,EAAAA,CAAGE,aAAa,CAAC+B,IAAI,CAAClC,GAAAA,EAAKiC,QAAQI,KAAOvC,EAAAA,KAAAA,CAAAA;AAC1CG,gBAAAA,EAAAA,CAAGE,aAAa,CAAC+B,IAAI,CAAClC,GAAAA,EAAKiC,QAAQI,KAAO,EAAA;AAAE,oBAAA,GAAGvC,KAAK;oBAAEU,KAAO,EAAA;AAAK,iBAAA;AACnE,aAAA,CAAA;YAED,OAAO;AACLE,gBAAAA,OAAAA;gBACAE,UAAY,EAAA;AACVvB,oBAAAA,IAAAA;AACAC,oBAAAA,QAAAA;oBACAuB,SAAWlB,EAAAA,IAAAA,CAAKmB,IAAI,CAACH,KAAQrB,GAAAA,QAAAA,CAAAA;AAC7BqB,oBAAAA;AACF;AACF,aAAA;AACF;AACF,KAAA;AACF;;;;"}
|