@payloadcms/db-postgres 0.1.0-beta.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/connect.js +82 -0
- package/dist/create.js +32 -0
- package/dist/createGlobal.js +32 -0
- package/dist/createGlobalVersion.js +48 -0
- package/dist/createMigration.js +85 -0
- package/dist/createVersion.js +54 -0
- package/dist/deleteMany.js +44 -0
- package/dist/deleteOne.js +47 -0
- package/dist/deleteVersions.js +46 -0
- package/dist/destroy.js +16 -0
- package/dist/find/buildFindManyArgs.js +61 -0
- package/dist/find/chainMethods.js +21 -0
- package/dist/find/findMany.js +197 -0
- package/dist/find/traverseFields.js +118 -0
- package/dist/find.js +35 -0
- package/dist/findGlobal.js +38 -0
- package/dist/findGlobalVersions.js +39 -0
- package/dist/findOne.js +49 -0
- package/dist/findVersions.js +39 -0
- package/dist/index.js +95 -0
- package/dist/init.js +74 -0
- package/dist/migrate.js +81 -0
- package/dist/migrateStatus.js +54 -0
- package/dist/mock.js +13 -0
- package/dist/queries/buildAndOrConditions.js +39 -0
- package/dist/queries/buildQuery.js +80 -0
- package/dist/queries/createJSONQuery/convertPathToJSONTraversal.js +24 -0
- package/dist/queries/createJSONQuery/formatJSONPathSegment.js +15 -0
- package/dist/queries/createJSONQuery/index.js +64 -0
- package/dist/queries/getTableColumnFromPath.js +333 -0
- package/dist/queries/operatorMap.js +34 -0
- package/dist/queries/parseParams.js +146 -0
- package/dist/queries/sanitizeQueryValue.js +79 -0
- package/dist/queryDrafts.js +56 -0
- package/dist/reference.js +76 -0
- package/dist/schema/build.js +245 -0
- package/dist/schema/createIndex.js +19 -0
- package/dist/schema/parentIDColumnMap.js +18 -0
- package/dist/schema/traverseFields.js +430 -0
- package/dist/schema/validateExistingBlockIsIdentical.js +34 -0
- package/dist/transactions/beginTransaction.js +51 -0
- package/dist/transactions/commitTransaction.js +24 -0
- package/dist/transactions/rollbackTransaction.js +20 -0
- package/dist/transform/read/hasManyNumber.js +20 -0
- package/dist/transform/read/index.js +42 -0
- package/dist/transform/read/relationship.js +74 -0
- package/dist/transform/read/traverseFields.js +325 -0
- package/dist/transform/write/array.js +55 -0
- package/dist/transform/write/blocks.js +56 -0
- package/dist/transform/write/index.js +46 -0
- package/dist/transform/write/numbers.js +21 -0
- package/dist/transform/write/relationships.js +33 -0
- package/dist/transform/write/selects.js +29 -0
- package/dist/transform/write/traverseFields.js +379 -0
- package/dist/transform/write/types.js +6 -0
- package/dist/types.js +6 -0
- package/dist/update.js +48 -0
- package/dist/updateGlobal.js +39 -0
- package/dist/updateGlobalVersion.js +50 -0
- package/dist/updateVersion.js +50 -0
- package/dist/upsertRow/deleteExistingArrayRows.js +20 -0
- package/dist/upsertRow/deleteExistingRowsByPath.js +43 -0
- package/dist/upsertRow/index.js +243 -0
- package/dist/upsertRow/insertArrays.js +64 -0
- package/dist/upsertRow/types.js +6 -0
- package/dist/utilities/appendPrefixToKeys.js +16 -0
- package/dist/utilities/createBlocksMap.js +39 -0
- package/dist/utilities/createMigrationTable.js +23 -0
- package/dist/utilities/createRelationshipMap.js +29 -0
- package/dist/utilities/hasLocalesTable.js +21 -0
- package/dist/utilities/isArrayOfRows.js +15 -0
- package/dist/utilities/migrationTableExists.js +19 -0
- package/dist/webpack.js +30 -0
- package/package.json +47 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "sanitizeQueryValue", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return sanitizeQueryValue;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
const _errors = require("payload/errors");
|
12
|
+
const _types = require("payload/types");
|
13
|
+
const _utilities = require("payload/utilities");
|
14
|
+
const sanitizeQueryValue = ({ field, operator: operatorArg, val })=>{
|
15
|
+
let operator = operatorArg;
|
16
|
+
let formattedValue = val;
|
17
|
+
if (!(0, _types.fieldAffectsData)(field)) return {
|
18
|
+
operator,
|
19
|
+
value: formattedValue
|
20
|
+
};
|
21
|
+
// Cast incoming values as proper searchable types
|
22
|
+
if (field.type === 'checkbox' && typeof val === 'string') {
|
23
|
+
if (val.toLowerCase() === 'true') formattedValue = true;
|
24
|
+
if (val.toLowerCase() === 'false') formattedValue = false;
|
25
|
+
}
|
26
|
+
if ([
|
27
|
+
'all',
|
28
|
+
'in',
|
29
|
+
'not_in'
|
30
|
+
].includes(operator) && typeof formattedValue === 'string') {
|
31
|
+
formattedValue = (0, _utilities.createArrayFromCommaDelineated)(formattedValue);
|
32
|
+
if (field.type === 'number') {
|
33
|
+
formattedValue = formattedValue.map((arrayVal)=>parseFloat(arrayVal));
|
34
|
+
}
|
35
|
+
}
|
36
|
+
if (field.type === 'number' && typeof formattedValue === 'string') {
|
37
|
+
formattedValue = Number(val);
|
38
|
+
}
|
39
|
+
if (field.type === 'date') {
|
40
|
+
if (typeof val === 'string') {
|
41
|
+
formattedValue = new Date(val);
|
42
|
+
if (Number.isNaN(Date.parse(formattedValue))) {
|
43
|
+
return {
|
44
|
+
operator,
|
45
|
+
value: undefined
|
46
|
+
};
|
47
|
+
}
|
48
|
+
}
|
49
|
+
if (typeof val === 'number') {
|
50
|
+
formattedValue = new Date(val);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
if ([
|
54
|
+
'relationship',
|
55
|
+
'upload'
|
56
|
+
].includes(field.type)) {
|
57
|
+
if (val === 'null') {
|
58
|
+
formattedValue = null;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
if (operator === 'near' || operator === 'within' || operator === 'intersects') {
|
62
|
+
throw new _errors.APIError(`Querying with '${operator}' is not supported with the postgres database adapter.`);
|
63
|
+
}
|
64
|
+
if (operator === 'contains') {
|
65
|
+
formattedValue = `%${formattedValue}%`;
|
66
|
+
}
|
67
|
+
if (operator === 'exists') {
|
68
|
+
formattedValue = formattedValue === 'true' || formattedValue === true;
|
69
|
+
if (formattedValue === false) {
|
70
|
+
operator = 'isNull';
|
71
|
+
}
|
72
|
+
}
|
73
|
+
return {
|
74
|
+
operator,
|
75
|
+
value: formattedValue
|
76
|
+
};
|
77
|
+
};
|
78
|
+
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgdHlwZSBGaWVsZCwgdHlwZSBUYWJBc0ZpZWxkLCBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB7IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG50eXBlIFNhbml0aXplUXVlcnlWYWx1ZUFyZ3MgPSB7XG4gIGZpZWxkOiBGaWVsZCB8IFRhYkFzRmllbGRcbiAgb3BlcmF0b3I6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgZmllbGQsXG4gIG9wZXJhdG9yOiBvcGVyYXRvckFyZyxcbiAgdmFsLFxufTogU2FuaXRpemVRdWVyeVZhbHVlQXJncyk6IHsgb3BlcmF0b3I6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSA9PiB7XG4gIGxldCBvcGVyYXRvciA9IG9wZXJhdG9yQXJnXG4gIGxldCBmb3JtYXR0ZWRWYWx1ZSA9IHZhbFxuXG4gIGlmICghZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHJldHVybiB7IG9wZXJhdG9yLCB2YWx1ZTogZm9ybWF0dGVkVmFsdWUgfVxuXG4gIC8vIENhc3QgaW5jb21pbmcgdmFsdWVzIGFzIHByb3BlciBzZWFyY2hhYmxlIHR5cGVzXG4gIGlmIChmaWVsZC50eXBlID09PSAnY2hlY2tib3gnICYmIHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHZhbC50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpIGZvcm1hdHRlZFZhbHVlID0gdHJ1ZVxuICAgIGlmICh2YWwudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykgZm9ybWF0dGVkVmFsdWUgPSBmYWxzZVxuICB9XG5cbiAgaWYgKFsnYWxsJywgJ2luJywgJ25vdF9pbiddLmluY2x1ZGVzKG9wZXJhdG9yKSAmJiB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBjcmVhdGVBcnJheUZyb21Db21tYURlbGluZWF0ZWQoZm9ybWF0dGVkVmFsdWUpXG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUubWFwKChhcnJheVZhbCkgPT4gcGFyc2VGbG9hdChhcnJheVZhbCkpXG4gICAgfVxuICB9XG5cbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdudW1iZXInICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IE51bWJlcih2YWwpXG4gIH1cblxuICBpZiAoZmllbGQudHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBmb3JtYXR0ZWRWYWx1ZSA9IG5ldyBEYXRlKHZhbClcbiAgICAgIGlmIChOdW1iZXIuaXNOYU4oRGF0ZS5wYXJzZShmb3JtYXR0ZWRWYWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiB7IG9wZXJhdG9yLCB2YWx1ZTogdW5kZWZpbmVkIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gbmV3IERhdGUodmFsKVxuICAgIH1cbiAgfVxuXG4gIGlmIChbJ3JlbGF0aW9uc2hpcCcsICd1cGxvYWQnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgIGlmICh2YWwgPT09ICdudWxsJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnbmVhcicgfHwgb3BlcmF0b3IgPT09ICd3aXRoaW4nIHx8IG9wZXJhdG9yID09PSAnaW50ZXJzZWN0cycpIHtcbiAgICB0aHJvdyBuZXcgQVBJRXJyb3IoXG4gICAgICBgUXVlcnlpbmcgd2l0aCAnJHtvcGVyYXRvcn0nIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGUgcG9zdGdyZXMgZGF0YWJhc2UgYWRhcHRlci5gLFxuICAgIClcbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ2NvbnRhaW5zJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gYCUke2Zvcm1hdHRlZFZhbHVlfSVgXG4gIH1cblxuICBpZiAob3BlcmF0b3IgPT09ICdleGlzdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3RydWUnIHx8IGZvcm1hdHRlZFZhbHVlID09PSB0cnVlXG4gICAgaWYgKGZvcm1hdHRlZFZhbHVlID09PSBmYWxzZSkge1xuICAgICAgb3BlcmF0b3IgPSAnaXNOdWxsJ1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IG9wZXJhdG9yLCB2YWx1ZTogZm9ybWF0dGVkVmFsdWUgfVxufVxuIl0sIm5hbWVzIjpbInNhbml0aXplUXVlcnlWYWx1ZSIsImZpZWxkIiwib3BlcmF0b3IiLCJvcGVyYXRvckFyZyIsInZhbCIsImZvcm1hdHRlZFZhbHVlIiwiZmllbGRBZmZlY3RzRGF0YSIsInZhbHVlIiwidHlwZSIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJjcmVhdGVBcnJheUZyb21Db21tYURlbGluZWF0ZWQiLCJtYXAiLCJhcnJheVZhbCIsInBhcnNlRmxvYXQiLCJOdW1iZXIiLCJEYXRlIiwiaXNOYU4iLCJwYXJzZSIsInVuZGVmaW5lZCIsIkFQSUVycm9yIl0sIm1hcHBpbmdzIjoiOzs7OytCQVVhQTs7O2VBQUFBOzs7d0JBVlk7dUJBQ3FDOzJCQUNmO0FBUXhDLE1BQU1BLHFCQUFxQixDQUFDLEVBQ2pDQyxLQUFLLEVBQ0xDLFVBQVVDLFdBQVcsRUFDckJDLEdBQUcsRUFDb0I7SUFDdkIsSUFBSUYsV0FBV0M7SUFDZixJQUFJRSxpQkFBaUJEO0lBRXJCLElBQUksQ0FBQ0UsSUFBQUEsdUJBQWdCLEVBQUNMLFFBQVEsT0FBTztRQUFFQztRQUFVSyxPQUFPRjtJQUFlO0lBRXZFLGtEQUFrRDtJQUNsRCxJQUFJSixNQUFNTyxJQUFJLEtBQUssY0FBYyxPQUFPSixRQUFRLFVBQVU7UUFDeEQsSUFBSUEsSUFBSUssV0FBVyxPQUFPLFFBQVFKLGlCQUFpQjtRQUNuRCxJQUFJRCxJQUFJSyxXQUFXLE9BQU8sU0FBU0osaUJBQWlCO0lBQ3REO0lBRUEsSUFBSTtRQUFDO1FBQU87UUFBTTtLQUFTLENBQUNLLFFBQVEsQ0FBQ1IsYUFBYSxPQUFPRyxtQkFBbUIsVUFBVTtRQUNwRkEsaUJBQWlCTSxJQUFBQSx5Q0FBOEIsRUFBQ047UUFFaEQsSUFBSUosTUFBTU8sSUFBSSxLQUFLLFVBQVU7WUFDM0JILGlCQUFpQkEsZUFBZU8sR0FBRyxDQUFDLENBQUNDLFdBQWFDLFdBQVdEO1FBQy9EO0lBQ0Y7SUFFQSxJQUFJWixNQUFNTyxJQUFJLEtBQUssWUFBWSxPQUFPSCxtQkFBbUIsVUFBVTtRQUNqRUEsaUJBQWlCVSxPQUFPWDtJQUMxQjtJQUVBLElBQUlILE1BQU1PLElBQUksS0FBSyxRQUFRO1FBQ3pCLElBQUksT0FBT0osUUFBUSxVQUFVO1lBQzNCQyxpQkFBaUIsSUFBSVcsS0FBS1o7WUFDMUIsSUFBSVcsT0FBT0UsS0FBSyxDQUFDRCxLQUFLRSxLQUFLLENBQUNiLGtCQUFrQjtnQkFDNUMsT0FBTztvQkFBRUg7b0JBQVVLLE9BQU9ZO2dCQUFVO1lBQ3RDO1FBQ0Y7UUFFQSxJQUFJLE9BQU9mLFFBQVEsVUFBVTtZQUMzQkMsaUJBQWlCLElBQUlXLEtBQUtaO1FBQzVCO0lBQ0Y7SUFFQSxJQUFJO1FBQUM7UUFBZ0I7S0FBUyxDQUFDTSxRQUFRLENBQUNULE1BQU1PLElBQUksR0FBRztRQUNuRCxJQUFJSixRQUFRLFFBQVE7WUFDbEJDLGlCQUFpQjtRQUNuQjtJQUNGO0lBRUEsSUFBSUgsYUFBYSxVQUFVQSxhQUFhLFlBQVlBLGFBQWEsY0FBYztRQUM3RSxNQUFNLElBQUlrQixnQkFBUSxDQUNoQixDQUFDLGVBQWUsRUFBRWxCLFNBQVMsc0RBQXNELENBQUM7SUFFdEY7SUFFQSxJQUFJQSxhQUFhLFlBQVk7UUFDM0JHLGlCQUFpQixDQUFDLENBQUMsRUFBRUEsZUFBZSxDQUFDLENBQUM7SUFDeEM7SUFFQSxJQUFJSCxhQUFhLFVBQVU7UUFDekJHLGlCQUFpQkEsbUJBQW1CLFVBQVVBLG1CQUFtQjtRQUNqRSxJQUFJQSxtQkFBbUIsT0FBTztZQUM1QkgsV0FBVztRQUNiO0lBQ0Y7SUFFQSxPQUFPO1FBQUVBO1FBQVVLLE9BQU9GO0lBQWU7QUFDM0MifQ==
|
@@ -0,0 +1,56 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "queryDrafts", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return queryDrafts;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
const _database = require("payload/database");
|
12
|
+
const _versions = require("payload/versions");
|
13
|
+
const _tosnakecase = /*#__PURE__*/ _interop_require_default(require("to-snake-case"));
|
14
|
+
const _findMany = require("./find/findMany");
|
15
|
+
function _interop_require_default(obj) {
|
16
|
+
return obj && obj.__esModule ? obj : {
|
17
|
+
default: obj
|
18
|
+
};
|
19
|
+
}
|
20
|
+
const queryDrafts = async function queryDrafts({ collection, limit, locale, page = 1, pagination, req = {}, sort, where }) {
|
21
|
+
const collectionConfig = this.payload.collections[collection].config;
|
22
|
+
const tableName = `_${(0, _tosnakecase.default)(collection)}_v`;
|
23
|
+
const fields = (0, _versions.buildVersionCollectionFields)(collectionConfig);
|
24
|
+
const combinedWhere = (0, _database.combineQueries)({
|
25
|
+
latest: {
|
26
|
+
equals: true
|
27
|
+
}
|
28
|
+
}, where);
|
29
|
+
const result = await (0, _findMany.findMany)({
|
30
|
+
adapter: this,
|
31
|
+
fields,
|
32
|
+
limit,
|
33
|
+
locale,
|
34
|
+
page,
|
35
|
+
pagination,
|
36
|
+
req,
|
37
|
+
sort,
|
38
|
+
tableName,
|
39
|
+
where: combinedWhere
|
40
|
+
});
|
41
|
+
return {
|
42
|
+
...result,
|
43
|
+
docs: result.docs.map((doc)=>{
|
44
|
+
// eslint-disable-next-line no-param-reassign
|
45
|
+
doc = {
|
46
|
+
id: doc.parent,
|
47
|
+
...doc.version,
|
48
|
+
createdAt: doc.createdAt,
|
49
|
+
updatedAt: doc.updatedAt
|
50
|
+
};
|
51
|
+
return doc;
|
52
|
+
})
|
53
|
+
};
|
54
|
+
};
|
55
|
+
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWVyeURyYWZ0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0LCBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgdHlwZSBRdWVyeURyYWZ0cywgY29tYmluZVF1ZXJpZXMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHsgYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyB9IGZyb20gJ3BheWxvYWQvdmVyc2lvbnMnXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHsgZmluZE1hbnkgfSBmcm9tICcuL2ZpbmQvZmluZE1hbnknXG5cbmV4cG9ydCBjb25zdCBxdWVyeURyYWZ0czogUXVlcnlEcmFmdHMgPSBhc3luYyBmdW5jdGlvbiBxdWVyeURyYWZ0cyh7XG4gIGNvbGxlY3Rpb24sXG4gIGxpbWl0LFxuICBsb2NhbGUsXG4gIHBhZ2UgPSAxLFxuICBwYWdpbmF0aW9uLFxuICByZXEgPSB7fSBhcyBQYXlsb2FkUmVxdWVzdCxcbiAgc29ydCxcbiAgd2hlcmUsXG59KSB7XG4gIGNvbnN0IGNvbGxlY3Rpb25Db25maWc6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgPSB0aGlzLnBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvbl0uY29uZmlnXG4gIGNvbnN0IHRhYmxlTmFtZSA9IGBfJHt0b1NuYWtlQ2FzZShjb2xsZWN0aW9uKX1fdmBcbiAgY29uc3QgZmllbGRzID0gYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb2xsZWN0aW9uQ29uZmlnKVxuXG4gIGNvbnN0IGNvbWJpbmVkV2hlcmUgPSBjb21iaW5lUXVlcmllcyh7IGxhdGVzdDogeyBlcXVhbHM6IHRydWUgfSB9LCB3aGVyZSlcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaW5kTWFueSh7XG4gICAgYWRhcHRlcjogdGhpcyxcbiAgICBmaWVsZHMsXG4gICAgbGltaXQsXG4gICAgbG9jYWxlLFxuICAgIHBhZ2UsXG4gICAgcGFnaW5hdGlvbixcbiAgICByZXEsXG4gICAgc29ydCxcbiAgICB0YWJsZU5hbWUsXG4gICAgd2hlcmU6IGNvbWJpbmVkV2hlcmUsXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN1bHQsXG4gICAgZG9jczogcmVzdWx0LmRvY3MubWFwKChkb2MpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgZG9jID0ge1xuICAgICAgICBpZDogZG9jLnBhcmVudCxcbiAgICAgICAgLi4uZG9jLnZlcnNpb24sXG4gICAgICAgIGNyZWF0ZWRBdDogZG9jLmNyZWF0ZWRBdCxcbiAgICAgICAgdXBkYXRlZEF0OiBkb2MudXBkYXRlZEF0LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZG9jXG4gICAgfSksXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJxdWVyeURyYWZ0cyIsImNvbGxlY3Rpb24iLCJsaW1pdCIsImxvY2FsZSIsInBhZ2UiLCJwYWdpbmF0aW9uIiwicmVxIiwic29ydCIsIndoZXJlIiwiY29sbGVjdGlvbkNvbmZpZyIsInBheWxvYWQiLCJjb2xsZWN0aW9ucyIsImNvbmZpZyIsInRhYmxlTmFtZSIsInRvU25ha2VDYXNlIiwiZmllbGRzIiwiYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyIsImNvbWJpbmVkV2hlcmUiLCJjb21iaW5lUXVlcmllcyIsImxhdGVzdCIsImVxdWFscyIsInJlc3VsdCIsImZpbmRNYW55IiwiYWRhcHRlciIsImRvY3MiLCJtYXAiLCJkb2MiLCJpZCIsInBhcmVudCIsInZlcnNpb24iLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBUWFBOzs7ZUFBQUE7OzswQkFOb0M7MEJBQ0o7b0VBQ3JCOzBCQUVDOzs7Ozs7QUFFbEIsTUFBTUEsY0FBMkIsZUFBZUEsWUFBWSxFQUNqRUMsVUFBVSxFQUNWQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTkMsT0FBTyxDQUFDLEVBQ1JDLFVBQVUsRUFDVkMsTUFBTSxDQUFDLENBQW1CLEVBQzFCQyxJQUFJLEVBQ0pDLEtBQUssRUFDTjtJQUNDLE1BQU1DLG1CQUE4QyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDVixXQUFXLENBQUNXLE1BQU07SUFDL0YsTUFBTUMsWUFBWSxDQUFDLENBQUMsRUFBRUMsSUFBQUEsb0JBQVcsRUFBQ2IsWUFBWSxFQUFFLENBQUM7SUFDakQsTUFBTWMsU0FBU0MsSUFBQUEsc0NBQTRCLEVBQUNQO0lBRTVDLE1BQU1RLGdCQUFnQkMsSUFBQUEsd0JBQWMsRUFBQztRQUFFQyxRQUFRO1lBQUVDLFFBQVE7UUFBSztJQUFFLEdBQUdaO0lBRW5FLE1BQU1hLFNBQVMsTUFBTUMsSUFBQUEsa0JBQVEsRUFBQztRQUM1QkMsU0FBUyxJQUFJO1FBQ2JSO1FBQ0FiO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FNO1FBQ0FMLE9BQU9TO0lBQ1Q7SUFFQSxPQUFPO1FBQ0wsR0FBR0ksTUFBTTtRQUNURyxNQUFNSCxPQUFPRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDQztZQUNyQiw2Q0FBNkM7WUFDN0NBLE1BQU07Z0JBQ0pDLElBQUlELElBQUlFLE1BQU07Z0JBQ2QsR0FBR0YsSUFBSUcsT0FBTztnQkFDZEMsV0FBV0osSUFBSUksU0FBUztnQkFDeEJDLFdBQVdMLElBQUlLLFNBQVM7WUFDMUI7WUFFQSxPQUFPTDtRQUNUO0lBQ0Y7QUFDRiJ9
|
@@ -0,0 +1,76 @@
|
|
1
|
+
// type GenerateMigration = (before: DrizzleSnapshotJSON, after: DrizzleSnapshotJSON) => string[]
|
2
|
+
// type GenerateDrizzleJSON = (schema: DrizzleSchemaExports) => DrizzleSnapshotJSON
|
3
|
+
// type PushDiff = (schema: DrizzleSchemaExports) => Promise<{ warnings: string[], apply: () => Promise<void> }>
|
4
|
+
// drizzle-kit@utils
|
5
|
+
"use strict";
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
7
|
+
value: true
|
8
|
+
});
|
9
|
+
const _utils = require("drizzle-kit/utils");
|
10
|
+
const _nodepostgres = require("drizzle-orm/node-postgres");
|
11
|
+
const _pg = require("pg");
|
12
|
+
function _getRequireWildcardCache(nodeInterop) {
|
13
|
+
if (typeof WeakMap !== "function") return null;
|
14
|
+
var cacheBabelInterop = new WeakMap();
|
15
|
+
var cacheNodeInterop = new WeakMap();
|
16
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
17
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
18
|
+
})(nodeInterop);
|
19
|
+
}
|
20
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
21
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
22
|
+
return obj;
|
23
|
+
}
|
24
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
25
|
+
return {
|
26
|
+
default: obj
|
27
|
+
};
|
28
|
+
}
|
29
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
30
|
+
if (cache && cache.has(obj)) {
|
31
|
+
return cache.get(obj);
|
32
|
+
}
|
33
|
+
var newObj = {};
|
34
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
35
|
+
for(var key in obj){
|
36
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
37
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
38
|
+
if (desc && (desc.get || desc.set)) {
|
39
|
+
Object.defineProperty(newObj, key, desc);
|
40
|
+
} else {
|
41
|
+
newObj[key] = obj[key];
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
newObj.default = obj;
|
46
|
+
if (cache) {
|
47
|
+
cache.set(obj, newObj);
|
48
|
+
}
|
49
|
+
return newObj;
|
50
|
+
}
|
51
|
+
async function generateUsage() {
|
52
|
+
// @ts-expect-error Just TypeScript being broken // TODO: Open TypeScript issue
|
53
|
+
const schema = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./data/users")));
|
54
|
+
// @ts-expect-error Just TypeScript being broken // TODO: Open TypeScript issue
|
55
|
+
const schemaAfter = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./data/users-after")));
|
56
|
+
const drizzleJsonBefore = (0, _utils.generateDrizzleJson)(schema);
|
57
|
+
const drizzleJsonAfter = (0, _utils.generateDrizzleJson)(schemaAfter);
|
58
|
+
const sqlStatements = await (0, _utils.generateMigration)(drizzleJsonBefore, drizzleJsonAfter);
|
59
|
+
console.log(sqlStatements);
|
60
|
+
}
|
61
|
+
async function pushUsage() {
|
62
|
+
// @ts-expect-error Just TypeScript being broken // TODO: Open TypeScript issue
|
63
|
+
const schemaAfter = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./data/users-after")));
|
64
|
+
const db = (0, _nodepostgres.drizzle)(new _pg.Pool({
|
65
|
+
connectionString: ''
|
66
|
+
}));
|
67
|
+
const response = await (0, _utils.pushSchema)(schemaAfter, db);
|
68
|
+
console.log('\n');
|
69
|
+
console.log('hasDataLoss: ', response.hasDataLoss);
|
70
|
+
console.log('warnings: ', response.warnings);
|
71
|
+
console.log('statements: ', response.statementsToExecute);
|
72
|
+
await response.apply();
|
73
|
+
process.exit(0);
|
74
|
+
}
|
75
|
+
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWZlcmVuY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdHlwZSBHZW5lcmF0ZU1pZ3JhdGlvbiA9IChiZWZvcmU6IERyaXp6bGVTbmFwc2hvdEpTT04sIGFmdGVyOiBEcml6emxlU25hcHNob3RKU09OKSA9PiBzdHJpbmdbXVxuXG4vLyB0eXBlIEdlbmVyYXRlRHJpenpsZUpTT04gPSAoc2NoZW1hOiBEcml6emxlU2NoZW1hRXhwb3J0cykgPT4gRHJpenpsZVNuYXBzaG90SlNPTlxuXG4vLyB0eXBlIFB1c2hEaWZmID0gKHNjaGVtYTogRHJpenpsZVNjaGVtYUV4cG9ydHMpID0+IFByb21pc2U8eyB3YXJuaW5nczogc3RyaW5nW10sIGFwcGx5OiAoKSA9PiBQcm9taXNlPHZvaWQ+IH0+XG5cbi8vIGRyaXp6bGUta2l0QHV0aWxzXG5cbmltcG9ydCB7IGdlbmVyYXRlRHJpenpsZUpzb24sIGdlbmVyYXRlTWlncmF0aW9uLCBwdXNoU2NoZW1hIH0gZnJvbSAnZHJpenpsZS1raXQvdXRpbHMnXG5pbXBvcnQgeyBkcml6emxlIH0gZnJvbSAnZHJpenpsZS1vcm0vbm9kZS1wb3N0Z3JlcydcbmltcG9ydCB7IFBvb2wgfSBmcm9tICdwZydcblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVVc2FnZSgpIHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBKdXN0IFR5cGVTY3JpcHQgYmVpbmcgYnJva2VuIC8vIFRPRE86IE9wZW4gVHlwZVNjcmlwdCBpc3N1ZVxuICBjb25zdCBzY2hlbWEgPSBhd2FpdCBpbXBvcnQoJy4vZGF0YS91c2VycycpXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgSnVzdCBUeXBlU2NyaXB0IGJlaW5nIGJyb2tlbiAvLyBUT0RPOiBPcGVuIFR5cGVTY3JpcHQgaXNzdWVcbiAgY29uc3Qgc2NoZW1hQWZ0ZXIgPSBhd2FpdCBpbXBvcnQoJy4vZGF0YS91c2Vycy1hZnRlcicpXG5cbiAgY29uc3QgZHJpenpsZUpzb25CZWZvcmUgPSBnZW5lcmF0ZURyaXp6bGVKc29uKHNjaGVtYSlcbiAgY29uc3QgZHJpenpsZUpzb25BZnRlciA9IGdlbmVyYXRlRHJpenpsZUpzb24oc2NoZW1hQWZ0ZXIpXG5cbiAgY29uc3Qgc3FsU3RhdGVtZW50cyA9IGF3YWl0IGdlbmVyYXRlTWlncmF0aW9uKGRyaXp6bGVKc29uQmVmb3JlLCBkcml6emxlSnNvbkFmdGVyKVxuXG4gIGNvbnNvbGUubG9nKHNxbFN0YXRlbWVudHMpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHB1c2hVc2FnZSgpIHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBKdXN0IFR5cGVTY3JpcHQgYmVpbmcgYnJva2VuIC8vIFRPRE86IE9wZW4gVHlwZVNjcmlwdCBpc3N1ZVxuICBjb25zdCBzY2hlbWFBZnRlciA9IGF3YWl0IGltcG9ydCgnLi9kYXRhL3VzZXJzLWFmdGVyJylcblxuICBjb25zdCBkYiA9IGRyaXp6bGUobmV3IFBvb2woeyBjb25uZWN0aW9uU3RyaW5nOiAnJyB9KSlcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHB1c2hTY2hlbWEoc2NoZW1hQWZ0ZXIsIGRiKVxuXG4gIGNvbnNvbGUubG9nKCdcXG4nKVxuICBjb25zb2xlLmxvZygnaGFzRGF0YUxvc3M6ICcsIHJlc3BvbnNlLmhhc0RhdGFMb3NzKVxuICBjb25zb2xlLmxvZygnd2FybmluZ3M6ICcsIHJlc3BvbnNlLndhcm5pbmdzKVxuICBjb25zb2xlLmxvZygnc3RhdGVtZW50czogJywgcmVzcG9uc2Uuc3RhdGVtZW50c1RvRXhlY3V0ZSlcblxuICBhd2FpdCByZXNwb25zZS5hcHBseSgpXG5cbiAgcHJvY2Vzcy5leGl0KDApXG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVVc2FnZSIsInNjaGVtYSIsInNjaGVtYUFmdGVyIiwiZHJpenpsZUpzb25CZWZvcmUiLCJnZW5lcmF0ZURyaXp6bGVKc29uIiwiZHJpenpsZUpzb25BZnRlciIsInNxbFN0YXRlbWVudHMiLCJnZW5lcmF0ZU1pZ3JhdGlvbiIsImNvbnNvbGUiLCJsb2ciLCJwdXNoVXNhZ2UiLCJkYiIsImRyaXp6bGUiLCJQb29sIiwiY29ubmVjdGlvblN0cmluZyIsInJlc3BvbnNlIiwicHVzaFNjaGVtYSIsImhhc0RhdGFMb3NzIiwid2FybmluZ3MiLCJzdGF0ZW1lbnRzVG9FeGVjdXRlIiwiYXBwbHkiLCJwcm9jZXNzIiwiZXhpdCJdLCJtYXBwaW5ncyI6IkFBQUEsaUdBQWlHO0FBRWpHLG1GQUFtRjtBQUVuRixnSEFBZ0g7QUFFaEgsb0JBQW9COzs7Ozt1QkFFK0M7OEJBQzNDO29CQUNIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJCLGVBQWVBO0lBQ2IsK0VBQStFO0lBQy9FLE1BQU1DLFNBQVMsTUFBTSxtRUFBQSxRQUFPO0lBQzVCLCtFQUErRTtJQUMvRSxNQUFNQyxjQUFjLE1BQU0sbUVBQUEsUUFBTztJQUVqQyxNQUFNQyxvQkFBb0JDLElBQUFBLDBCQUFtQixFQUFDSDtJQUM5QyxNQUFNSSxtQkFBbUJELElBQUFBLDBCQUFtQixFQUFDRjtJQUU3QyxNQUFNSSxnQkFBZ0IsTUFBTUMsSUFBQUEsd0JBQWlCLEVBQUNKLG1CQUFtQkU7SUFFakVHLFFBQVFDLEdBQUcsQ0FBQ0g7QUFDZDtBQUVBLGVBQWVJO0lBQ2IsK0VBQStFO0lBQy9FLE1BQU1SLGNBQWMsTUFBTSxtRUFBQSxRQUFPO0lBRWpDLE1BQU1TLEtBQUtDLElBQUFBLHFCQUFPLEVBQUMsSUFBSUMsUUFBSSxDQUFDO1FBQUVDLGtCQUFrQjtJQUFHO0lBRW5ELE1BQU1DLFdBQVcsTUFBTUMsSUFBQUEsaUJBQVUsRUFBQ2QsYUFBYVM7SUFFL0NILFFBQVFDLEdBQUcsQ0FBQztJQUNaRCxRQUFRQyxHQUFHLENBQUMsaUJBQWlCTSxTQUFTRSxXQUFXO0lBQ2pEVCxRQUFRQyxHQUFHLENBQUMsY0FBY00sU0FBU0csUUFBUTtJQUMzQ1YsUUFBUUMsR0FBRyxDQUFDLGdCQUFnQk0sU0FBU0ksbUJBQW1CO0lBRXhELE1BQU1KLFNBQVNLLEtBQUs7SUFFcEJDLFFBQVFDLElBQUksQ0FBQztBQUNmIn0=
|
@@ -0,0 +1,245 @@
|
|
1
|
+
/* eslint-disable no-param-reassign */ "use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "buildTable", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return buildTable;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
const _drizzleorm = require("drizzle-orm");
|
12
|
+
const _pgcore = require("drizzle-orm/pg-core");
|
13
|
+
const _types = require("payload/types");
|
14
|
+
const _tosnakecase = /*#__PURE__*/ _interop_require_default(require("to-snake-case"));
|
15
|
+
const _parentIDColumnMap = require("./parentIDColumnMap");
|
16
|
+
const _traverseFields = require("./traverseFields");
|
17
|
+
function _interop_require_default(obj) {
|
18
|
+
return obj && obj.__esModule ? obj : {
|
19
|
+
default: obj
|
20
|
+
};
|
21
|
+
}
|
22
|
+
const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, buildRelationships, disableUnique = false, fields, rootRelationsToBuild, rootTableIDColType, rootTableName, tableName, timestamps })=>{
|
23
|
+
const columns = baseColumns;
|
24
|
+
const indexes = {};
|
25
|
+
let hasLocalizedField = false;
|
26
|
+
let hasLocalizedRelationshipField = false;
|
27
|
+
let hasManyNumberField = false;
|
28
|
+
let hasLocalizedManyNumberField = false;
|
29
|
+
const localesColumns = {};
|
30
|
+
const localesIndexes = {};
|
31
|
+
let localesTable;
|
32
|
+
let numbersTable;
|
33
|
+
const relationships = new Set();
|
34
|
+
let relationshipsTable;
|
35
|
+
const relationsToBuild = new Map();
|
36
|
+
const idField = fields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
|
37
|
+
let idColType = 'integer';
|
38
|
+
if (idField) {
|
39
|
+
if (idField.type === 'number') {
|
40
|
+
idColType = 'numeric';
|
41
|
+
columns.id = (0, _pgcore.numeric)('id').primaryKey();
|
42
|
+
}
|
43
|
+
if (idField.type === 'text') {
|
44
|
+
idColType = 'varchar';
|
45
|
+
columns.id = (0, _pgcore.varchar)('id').primaryKey();
|
46
|
+
}
|
47
|
+
} else {
|
48
|
+
columns.id = (0, _pgcore.serial)('id').primaryKey();
|
49
|
+
}
|
50
|
+
({ hasLocalizedField, hasLocalizedManyNumberField, hasLocalizedRelationshipField, hasManyNumberField } = (0, _traverseFields.traverseFields)({
|
51
|
+
adapter,
|
52
|
+
buildRelationships,
|
53
|
+
columns,
|
54
|
+
disableUnique,
|
55
|
+
fields,
|
56
|
+
indexes,
|
57
|
+
localesColumns,
|
58
|
+
localesIndexes,
|
59
|
+
newTableName: tableName,
|
60
|
+
parentTableName: tableName,
|
61
|
+
relationsToBuild,
|
62
|
+
relationships,
|
63
|
+
rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,
|
64
|
+
rootTableIDColType: rootTableIDColType || idColType,
|
65
|
+
rootTableName: rootTableName || tableName
|
66
|
+
}));
|
67
|
+
if (timestamps) {
|
68
|
+
columns.createdAt = (0, _pgcore.timestamp)('created_at', {
|
69
|
+
mode: 'string',
|
70
|
+
precision: 3,
|
71
|
+
withTimezone: true
|
72
|
+
}).defaultNow().notNull();
|
73
|
+
columns.updatedAt = (0, _pgcore.timestamp)('updated_at', {
|
74
|
+
mode: 'string',
|
75
|
+
precision: 3,
|
76
|
+
withTimezone: true
|
77
|
+
}).defaultNow().notNull();
|
78
|
+
}
|
79
|
+
const table = (0, _pgcore.pgTable)(tableName, columns, (cols)=>{
|
80
|
+
const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func])=>{
|
81
|
+
config[key] = func(cols);
|
82
|
+
return config;
|
83
|
+
}, {});
|
84
|
+
return Object.entries(indexes).reduce((acc, [colName, func])=>{
|
85
|
+
acc[colName] = func(cols);
|
86
|
+
return acc;
|
87
|
+
}, extraConfig);
|
88
|
+
});
|
89
|
+
adapter.tables[tableName] = table;
|
90
|
+
if (hasLocalizedField) {
|
91
|
+
const localeTableName = `${tableName}_locales`;
|
92
|
+
localesColumns.id = (0, _pgcore.serial)('id').primaryKey();
|
93
|
+
localesColumns._locale = adapter.enums.enum__locales('_locale').notNull();
|
94
|
+
localesColumns._parentID = _parentIDColumnMap.parentIDColumnMap[idColType]('_parent_id').references(()=>table.id, {
|
95
|
+
onDelete: 'cascade'
|
96
|
+
}).notNull();
|
97
|
+
localesTable = (0, _pgcore.pgTable)(localeTableName, localesColumns, (cols)=>{
|
98
|
+
return Object.entries(localesIndexes).reduce((acc, [colName, func])=>{
|
99
|
+
acc[colName] = func(cols);
|
100
|
+
return acc;
|
101
|
+
}, {
|
102
|
+
_localeParent: (0, _pgcore.unique)().on(cols._locale, cols._parentID)
|
103
|
+
});
|
104
|
+
});
|
105
|
+
adapter.tables[localeTableName] = localesTable;
|
106
|
+
const localesTableRelations = (0, _drizzleorm.relations)(localesTable, ({ one })=>({
|
107
|
+
_parentID: one(table, {
|
108
|
+
fields: [
|
109
|
+
localesTable._parentID
|
110
|
+
],
|
111
|
+
references: [
|
112
|
+
table.id
|
113
|
+
]
|
114
|
+
})
|
115
|
+
}));
|
116
|
+
adapter.relations[`relations_${localeTableName}`] = localesTableRelations;
|
117
|
+
}
|
118
|
+
if (hasManyNumberField) {
|
119
|
+
const numbersTableName = `${tableName}_numbers`;
|
120
|
+
const columns = {
|
121
|
+
id: (0, _pgcore.serial)('id').primaryKey(),
|
122
|
+
number: (0, _pgcore.numeric)('number'),
|
123
|
+
order: (0, _pgcore.integer)('order').notNull(),
|
124
|
+
parent: _parentIDColumnMap.parentIDColumnMap[idColType]('parent_id').references(()=>table.id, {
|
125
|
+
onDelete: 'cascade'
|
126
|
+
}).notNull(),
|
127
|
+
path: (0, _pgcore.varchar)('path').notNull()
|
128
|
+
};
|
129
|
+
if (hasLocalizedManyNumberField) {
|
130
|
+
columns.locale = adapter.enums.enum__locales('locale');
|
131
|
+
}
|
132
|
+
numbersTable = (0, _pgcore.pgTable)(numbersTableName, columns, (cols)=>{
|
133
|
+
const indexes = {
|
134
|
+
orderParentIdx: (0, _pgcore.index)('order_parent_idx').on(cols.order, cols.parent)
|
135
|
+
};
|
136
|
+
if (hasManyNumberField === 'index') {
|
137
|
+
indexes.numberIdx = (0, _pgcore.index)('number_idx').on(cols.number);
|
138
|
+
}
|
139
|
+
if (hasLocalizedManyNumberField) {
|
140
|
+
indexes.localeParent = (0, _pgcore.index)('locale_parent').on(cols.locale, cols.parent);
|
141
|
+
}
|
142
|
+
return indexes;
|
143
|
+
});
|
144
|
+
adapter.tables[numbersTableName] = numbersTable;
|
145
|
+
const numbersTableRelations = (0, _drizzleorm.relations)(numbersTable, ({ one })=>({
|
146
|
+
parent: one(table, {
|
147
|
+
fields: [
|
148
|
+
numbersTable.parent
|
149
|
+
],
|
150
|
+
references: [
|
151
|
+
table.id
|
152
|
+
]
|
153
|
+
})
|
154
|
+
}));
|
155
|
+
adapter.relations[`relations_${numbersTableName}`] = numbersTableRelations;
|
156
|
+
}
|
157
|
+
if (buildRelationships) {
|
158
|
+
if (relationships.size) {
|
159
|
+
const relationshipColumns = {
|
160
|
+
id: (0, _pgcore.serial)('id').primaryKey(),
|
161
|
+
order: (0, _pgcore.integer)('order'),
|
162
|
+
parent: _parentIDColumnMap.parentIDColumnMap[idColType]('parent_id').references(()=>table.id, {
|
163
|
+
onDelete: 'cascade'
|
164
|
+
}).notNull(),
|
165
|
+
path: (0, _pgcore.varchar)('path').notNull()
|
166
|
+
};
|
167
|
+
if (hasLocalizedRelationshipField) {
|
168
|
+
relationshipColumns.locale = adapter.enums.enum__locales('locale');
|
169
|
+
}
|
170
|
+
relationships.forEach((relationTo)=>{
|
171
|
+
const formattedRelationTo = (0, _tosnakecase.default)(relationTo);
|
172
|
+
let colType = 'integer';
|
173
|
+
const relatedCollectionCustomID = adapter.payload.collections[relationTo].config.fields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
|
174
|
+
if (relatedCollectionCustomID?.type === 'number') colType = 'numeric';
|
175
|
+
if (relatedCollectionCustomID?.type === 'text') colType = 'varchar';
|
176
|
+
relationshipColumns[`${relationTo}ID`] = _parentIDColumnMap.parentIDColumnMap[colType](`${formattedRelationTo}_id`).references(()=>adapter.tables[formattedRelationTo].id, {
|
177
|
+
onDelete: 'cascade'
|
178
|
+
});
|
179
|
+
});
|
180
|
+
const relationshipsTableName = `${tableName}_relationships`;
|
181
|
+
relationshipsTable = (0, _pgcore.pgTable)(relationshipsTableName, relationshipColumns, (cols)=>{
|
182
|
+
const result = {};
|
183
|
+
if (hasLocalizedRelationshipField) {
|
184
|
+
result.localeIdx = (0, _pgcore.index)('locale_idx').on(cols.locale);
|
185
|
+
result.parentPathOrderLocale = (0, _pgcore.unique)().on(cols.parent, cols.path, cols.order, cols.locale);
|
186
|
+
} else {
|
187
|
+
result.parentPathOrder = (0, _pgcore.unique)().on(cols.parent, cols.path, cols.order);
|
188
|
+
}
|
189
|
+
return result;
|
190
|
+
});
|
191
|
+
adapter.tables[relationshipsTableName] = relationshipsTable;
|
192
|
+
const relationshipsTableRelations = (0, _drizzleorm.relations)(relationshipsTable, ({ one })=>{
|
193
|
+
const result = {
|
194
|
+
parent: one(table, {
|
195
|
+
fields: [
|
196
|
+
relationshipsTable.parent
|
197
|
+
],
|
198
|
+
references: [
|
199
|
+
table.id
|
200
|
+
],
|
201
|
+
relationName: '_relationships'
|
202
|
+
})
|
203
|
+
};
|
204
|
+
relationships.forEach((relationTo)=>{
|
205
|
+
const relatedTableName = (0, _tosnakecase.default)(relationTo);
|
206
|
+
const idColumnName = `${relationTo}ID`;
|
207
|
+
result[idColumnName] = one(adapter.tables[relatedTableName], {
|
208
|
+
fields: [
|
209
|
+
relationshipsTable[idColumnName]
|
210
|
+
],
|
211
|
+
references: [
|
212
|
+
adapter.tables[relatedTableName].id
|
213
|
+
]
|
214
|
+
});
|
215
|
+
});
|
216
|
+
return result;
|
217
|
+
});
|
218
|
+
adapter.relations[`relations_${relationshipsTableName}`] = relationshipsTableRelations;
|
219
|
+
}
|
220
|
+
}
|
221
|
+
const tableRelations = (0, _drizzleorm.relations)(table, ({ many })=>{
|
222
|
+
const result = {};
|
223
|
+
relationsToBuild.forEach((val, key)=>{
|
224
|
+
result[key] = many(adapter.tables[val]);
|
225
|
+
});
|
226
|
+
if (hasLocalizedField) {
|
227
|
+
result._locales = many(localesTable);
|
228
|
+
}
|
229
|
+
if (hasManyNumberField) {
|
230
|
+
result._numbers = many(numbersTable);
|
231
|
+
}
|
232
|
+
if (relationships.size && relationshipsTable) {
|
233
|
+
result._relationships = many(relationshipsTable, {
|
234
|
+
relationName: '_relationships'
|
235
|
+
});
|
236
|
+
}
|
237
|
+
return result;
|
238
|
+
});
|
239
|
+
adapter.relations[`relations_${tableName}`] = tableRelations;
|
240
|
+
return {
|
241
|
+
relationsToBuild
|
242
|
+
};
|
243
|
+
};
|
244
|
+
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvYnVpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHsgSW5kZXhCdWlsZGVyLCBQZ0NvbHVtbkJ1aWxkZXIsIFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnMgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7XG4gIGluZGV4LFxuICBpbnRlZ2VyLFxuICBudW1lcmljLFxuICBwZ1RhYmxlLFxuICBzZXJpYWwsXG4gIHRpbWVzdGFtcCxcbiAgdW5pcXVlLFxuICB2YXJjaGFyLFxufSBmcm9tICdkcml6emxlLW9ybS9wZy1jb3JlJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1ucywgR2VuZXJpY1RhYmxlLCBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgcGFyZW50SURDb2x1bW5NYXAgfSBmcm9tICcuL3BhcmVudElEQ29sdW1uTWFwJ1xuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBiYXNlQ29sdW1ucz86IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj5cbiAgYmFzZUV4dHJhQ29uZmlnPzogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXIgfCBVbmlxdWVDb25zdHJhaW50QnVpbGRlcj5cbiAgYnVpbGRSZWxhdGlvbnNoaXBzPzogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlOiBib29sZWFuXG4gIGZpZWxkczogRmllbGRbXVxuICByb290UmVsYXRpb25zVG9CdWlsZD86IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgcm9vdFRhYmxlSURDb2xUeXBlPzogc3RyaW5nXG4gIHJvb3RUYWJsZU5hbWU/OiBzdHJpbmdcbiAgdGFibGVOYW1lOiBzdHJpbmdcbiAgdGltZXN0YW1wcz86IGJvb2xlYW5cbn1cblxudHlwZSBSZXN1bHQgPSB7XG4gIHJlbGF0aW9uc1RvQnVpbGQ6IE1hcDxzdHJpbmcsIHN0cmluZz5cbn1cblxuZXhwb3J0IGNvbnN0IGJ1aWxkVGFibGUgPSAoe1xuICBhZGFwdGVyLFxuICBiYXNlQ29sdW1ucyA9IHt9LFxuICBiYXNlRXh0cmFDb25maWcgPSB7fSxcbiAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICBkaXNhYmxlVW5pcXVlID0gZmFsc2UsXG4gIGZpZWxkcyxcbiAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgcm9vdFRhYmxlTmFtZSxcbiAgdGFibGVOYW1lLFxuICB0aW1lc3RhbXBzLFxufTogQXJncyk6IFJlc3VsdCA9PiB7XG4gIGNvbnN0IGNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSBiYXNlQ29sdW1uc1xuICBjb25zdCBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlcj4gPSB7fVxuXG4gIGxldCBoYXNMb2NhbGl6ZWRGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNNYW55TnVtYmVyRmllbGQ6ICdpbmRleCcgfCBib29sZWFuID0gZmFsc2VcbiAgbGV0IGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IGZhbHNlXG5cbiAgY29uc3QgbG9jYWxlc0NvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7fVxuICBjb25zdCBsb2NhbGVzSW5kZXhlczogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXI+ID0ge31cbiAgbGV0IGxvY2FsZXNUYWJsZTogR2VuZXJpY1RhYmxlXG4gIGxldCBudW1iZXJzVGFibGU6IEdlbmVyaWNUYWJsZVxuXG4gIGNvbnN0IHJlbGF0aW9uc2hpcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpXG4gIGxldCByZWxhdGlvbnNoaXBzVGFibGU6IEdlbmVyaWNUYWJsZVxuXG4gIGNvbnN0IHJlbGF0aW9uc1RvQnVpbGQ6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKClcblxuICBjb25zdCBpZEZpZWxkID0gZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuICBsZXQgaWRDb2xUeXBlID0gJ2ludGVnZXInXG5cbiAgaWYgKGlkRmllbGQpIHtcbiAgICBpZiAoaWRGaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgaWRDb2xUeXBlID0gJ251bWVyaWMnXG4gICAgICBjb2x1bW5zLmlkID0gbnVtZXJpYygnaWQnKS5wcmltYXJ5S2V5KClcbiAgICB9XG5cbiAgICBpZiAoaWRGaWVsZC50eXBlID09PSAndGV4dCcpIHtcbiAgICAgIGlkQ29sVHlwZSA9ICd2YXJjaGFyJ1xuICAgICAgY29sdW1ucy5pZCA9IHZhcmNoYXIoJ2lkJykucHJpbWFyeUtleSgpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbHVtbnMuaWQgPSBzZXJpYWwoJ2lkJykucHJpbWFyeUtleSgpXG4gIH1cblxuICA7KHtcbiAgICBoYXNMb2NhbGl6ZWRGaWVsZCxcbiAgICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgaGFzTWFueU51bWJlckZpZWxkLFxuICB9ID0gdHJhdmVyc2VGaWVsZHMoe1xuICAgIGFkYXB0ZXIsXG4gICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgIGNvbHVtbnMsXG4gICAgZGlzYWJsZVVuaXF1ZSxcbiAgICBmaWVsZHMsXG4gICAgaW5kZXhlcyxcbiAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICBuZXdUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICBwYXJlbnRUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQ6IHJvb3RSZWxhdGlvbnNUb0J1aWxkIHx8IHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgcm9vdFRhYmxlSURDb2xUeXBlOiByb290VGFibGVJRENvbFR5cGUgfHwgaWRDb2xUeXBlLFxuICAgIHJvb3RUYWJsZU5hbWU6IHJvb3RUYWJsZU5hbWUgfHwgdGFibGVOYW1lLFxuICB9KSlcblxuICBpZiAodGltZXN0YW1wcykge1xuICAgIGNvbHVtbnMuY3JlYXRlZEF0ID0gdGltZXN0YW1wKCdjcmVhdGVkX2F0Jywge1xuICAgICAgbW9kZTogJ3N0cmluZycsXG4gICAgICBwcmVjaXNpb246IDMsXG4gICAgICB3aXRoVGltZXpvbmU6IHRydWUsXG4gICAgfSlcbiAgICAgIC5kZWZhdWx0Tm93KClcbiAgICAgIC5ub3ROdWxsKClcbiAgICBjb2x1bW5zLnVwZGF0ZWRBdCA9IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHtcbiAgICAgIG1vZGU6ICdzdHJpbmcnLFxuICAgICAgcHJlY2lzaW9uOiAzLFxuICAgICAgd2l0aFRpbWV6b25lOiB0cnVlLFxuICAgIH0pXG4gICAgICAuZGVmYXVsdE5vdygpXG4gICAgICAubm90TnVsbCgpXG4gIH1cblxuICBjb25zdCB0YWJsZSA9IHBnVGFibGUodGFibGVOYW1lLCBjb2x1bW5zLCAoY29scykgPT4ge1xuICAgIGNvbnN0IGV4dHJhQ29uZmlnID0gT2JqZWN0LmVudHJpZXMoYmFzZUV4dHJhQ29uZmlnKS5yZWR1Y2UoKGNvbmZpZywgW2tleSwgZnVuY10pID0+IHtcbiAgICAgIGNvbmZpZ1trZXldID0gZnVuYyhjb2xzKVxuICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgIH0sIHt9KVxuXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGluZGV4ZXMpLnJlZHVjZSgoYWNjLCBbY29sTmFtZSwgZnVuY10pID0+IHtcbiAgICAgIGFjY1tjb2xOYW1lXSA9IGZ1bmMoY29scylcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCBleHRyYUNvbmZpZylcbiAgfSlcblxuICBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdID0gdGFibGVcblxuICBpZiAoaGFzTG9jYWxpemVkRmllbGQpIHtcbiAgICBjb25zdCBsb2NhbGVUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X2xvY2FsZXNgXG4gICAgbG9jYWxlc0NvbHVtbnMuaWQgPSBzZXJpYWwoJ2lkJykucHJpbWFyeUtleSgpXG4gICAgbG9jYWxlc0NvbHVtbnMuX2xvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnX2xvY2FsZScpLm5vdE51bGwoKVxuICAgIGxvY2FsZXNDb2x1bW5zLl9wYXJlbnRJRCA9IHBhcmVudElEQ29sdW1uTWFwW2lkQ29sVHlwZV0oJ19wYXJlbnRfaWQnKVxuICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gdGFibGUuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgLm5vdE51bGwoKVxuXG4gICAgbG9jYWxlc1RhYmxlID0gcGdUYWJsZShsb2NhbGVUYWJsZU5hbWUsIGxvY2FsZXNDb2x1bW5zLCAoY29scykgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGxvY2FsZXNJbmRleGVzKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIFtjb2xOYW1lLCBmdW5jXSkgPT4ge1xuICAgICAgICAgIGFjY1tjb2xOYW1lXSA9IGZ1bmMoY29scylcbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBfbG9jYWxlUGFyZW50OiB1bmlxdWUoKS5vbihjb2xzLl9sb2NhbGUsIGNvbHMuX3BhcmVudElEKSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICB9KVxuXG4gICAgYWRhcHRlci50YWJsZXNbbG9jYWxlVGFibGVOYW1lXSA9IGxvY2FsZXNUYWJsZVxuXG4gICAgY29uc3QgbG9jYWxlc1RhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKGxvY2FsZXNUYWJsZSwgKHsgb25lIH0pID0+ICh7XG4gICAgICBfcGFyZW50SUQ6IG9uZSh0YWJsZSwge1xuICAgICAgICBmaWVsZHM6IFtsb2NhbGVzVGFibGUuX3BhcmVudElEXSxcbiAgICAgICAgcmVmZXJlbmNlczogW3RhYmxlLmlkXSxcbiAgICAgIH0pLFxuICAgIH0pKVxuXG4gICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke2xvY2FsZVRhYmxlTmFtZX1gXSA9IGxvY2FsZXNUYWJsZVJlbGF0aW9uc1xuICB9XG5cbiAgaWYgKGhhc01hbnlOdW1iZXJGaWVsZCkge1xuICAgIGNvbnN0IG51bWJlcnNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X251bWJlcnNgXG4gICAgY29uc3QgY29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgIGlkOiBzZXJpYWwoJ2lkJykucHJpbWFyeUtleSgpLFxuICAgICAgbnVtYmVyOiBudW1lcmljKCdudW1iZXInKSxcbiAgICAgIG9yZGVyOiBpbnRlZ2VyKCdvcmRlcicpLm5vdE51bGwoKSxcbiAgICAgIHBhcmVudDogcGFyZW50SURDb2x1bW5NYXBbaWRDb2xUeXBlXSgncGFyZW50X2lkJylcbiAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gdGFibGUuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAubm90TnVsbCgpLFxuICAgICAgcGF0aDogdmFyY2hhcigncGF0aCcpLm5vdE51bGwoKSxcbiAgICB9XG5cbiAgICBpZiAoaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSB7XG4gICAgICBjb2x1bW5zLmxvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnbG9jYWxlJylcbiAgICB9XG5cbiAgICBudW1iZXJzVGFibGUgPSBwZ1RhYmxlKG51bWJlcnNUYWJsZU5hbWUsIGNvbHVtbnMsIChjb2xzKSA9PiB7XG4gICAgICBjb25zdCBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBJbmRleEJ1aWxkZXI+ID0ge1xuICAgICAgICBvcmRlclBhcmVudElkeDogaW5kZXgoJ29yZGVyX3BhcmVudF9pZHgnKS5vbihjb2xzLm9yZGVyLCBjb2xzLnBhcmVudCksXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNNYW55TnVtYmVyRmllbGQgPT09ICdpbmRleCcpIHtcbiAgICAgICAgaW5kZXhlcy5udW1iZXJJZHggPSBpbmRleCgnbnVtYmVyX2lkeCcpLm9uKGNvbHMubnVtYmVyKVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSB7XG4gICAgICAgIGluZGV4ZXMubG9jYWxlUGFyZW50ID0gaW5kZXgoJ2xvY2FsZV9wYXJlbnQnKS5vbihjb2xzLmxvY2FsZSwgY29scy5wYXJlbnQpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbmRleGVzXG4gICAgfSlcblxuICAgIGFkYXB0ZXIudGFibGVzW251bWJlcnNUYWJsZU5hbWVdID0gbnVtYmVyc1RhYmxlXG5cbiAgICBjb25zdCBudW1iZXJzVGFibGVSZWxhdGlvbnMgPSByZWxhdGlvbnMobnVtYmVyc1RhYmxlLCAoeyBvbmUgfSkgPT4gKHtcbiAgICAgIHBhcmVudDogb25lKHRhYmxlLCB7XG4gICAgICAgIGZpZWxkczogW251bWJlcnNUYWJsZS5wYXJlbnRdLFxuICAgICAgICByZWZlcmVuY2VzOiBbdGFibGUuaWRdLFxuICAgICAgfSksXG4gICAgfSkpXG5cbiAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7bnVtYmVyc1RhYmxlTmFtZX1gXSA9IG51bWJlcnNUYWJsZVJlbGF0aW9uc1xuICB9XG5cbiAgaWYgKGJ1aWxkUmVsYXRpb25zaGlwcykge1xuICAgIGlmIChyZWxhdGlvbnNoaXBzLnNpemUpIHtcbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcENvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgIGlkOiBzZXJpYWwoJ2lkJykucHJpbWFyeUtleSgpLFxuICAgICAgICBvcmRlcjogaW50ZWdlcignb3JkZXInKSxcbiAgICAgICAgcGFyZW50OiBwYXJlbnRJRENvbHVtbk1hcFtpZENvbFR5cGVdKCdwYXJlbnRfaWQnKVxuICAgICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IHRhYmxlLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgICAgICAubm90TnVsbCgpLFxuICAgICAgICBwYXRoOiB2YXJjaGFyKCdwYXRoJykubm90TnVsbCgpLFxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIHtcbiAgICAgICAgcmVsYXRpb25zaGlwQ29sdW1ucy5sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ2xvY2FsZScpXG4gICAgICB9XG5cbiAgICAgIHJlbGF0aW9uc2hpcHMuZm9yRWFjaCgocmVsYXRpb25UbykgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZWxhdGlvblRvID0gdG9TbmFrZUNhc2UocmVsYXRpb25UbylcbiAgICAgICAgbGV0IGNvbFR5cGUgPSAnaW50ZWdlcidcbiAgICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb25DdXN0b21JRCA9IGFkYXB0ZXIucGF5bG9hZC5jb2xsZWN0aW9uc1tcbiAgICAgICAgICByZWxhdGlvblRvXG4gICAgICAgIF0uY29uZmlnLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcbiAgICAgICAgaWYgKHJlbGF0ZWRDb2xsZWN0aW9uQ3VzdG9tSUQ/LnR5cGUgPT09ICdudW1iZXInKSBjb2xUeXBlID0gJ251bWVyaWMnXG4gICAgICAgIGlmIChyZWxhdGVkQ29sbGVjdGlvbkN1c3RvbUlEPy50eXBlID09PSAndGV4dCcpIGNvbFR5cGUgPSAndmFyY2hhcidcblxuICAgICAgICByZWxhdGlvbnNoaXBDb2x1bW5zW2Ake3JlbGF0aW9uVG99SURgXSA9IHBhcmVudElEQ29sdW1uTWFwW2NvbFR5cGVdKFxuICAgICAgICAgIGAke2Zvcm1hdHRlZFJlbGF0aW9uVG99X2lkYCxcbiAgICAgICAgKS5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW2Zvcm1hdHRlZFJlbGF0aW9uVG9dLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X3JlbGF0aW9uc2hpcHNgXG5cbiAgICAgIHJlbGF0aW9uc2hpcHNUYWJsZSA9IHBnVGFibGUocmVsYXRpb25zaGlwc1RhYmxlTmFtZSwgcmVsYXRpb25zaGlwQ29sdW1ucywgKGNvbHMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG5cbiAgICAgICAgaWYgKGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSB7XG4gICAgICAgICAgcmVzdWx0LmxvY2FsZUlkeCA9IGluZGV4KCdsb2NhbGVfaWR4Jykub24oY29scy5sb2NhbGUpXG4gICAgICAgICAgcmVzdWx0LnBhcmVudFBhdGhPcmRlckxvY2FsZSA9IHVuaXF1ZSgpLm9uKFxuICAgICAgICAgICAgY29scy5wYXJlbnQsXG4gICAgICAgICAgICBjb2xzLnBhdGgsXG4gICAgICAgICAgICBjb2xzLm9yZGVyLFxuICAgICAgICAgICAgY29scy5sb2NhbGUsXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdC5wYXJlbnRQYXRoT3JkZXIgPSB1bmlxdWUoKS5vbihjb2xzLnBhcmVudCwgY29scy5wYXRoLCBjb2xzLm9yZGVyKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfSlcblxuICAgICAgYWRhcHRlci50YWJsZXNbcmVsYXRpb25zaGlwc1RhYmxlTmFtZV0gPSByZWxhdGlvbnNoaXBzVGFibGVcblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwc1RhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKHJlbGF0aW9uc2hpcHNUYWJsZSwgKHsgb25lIH0pID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICBwYXJlbnQ6IG9uZSh0YWJsZSwge1xuICAgICAgICAgICAgZmllbGRzOiBbcmVsYXRpb25zaGlwc1RhYmxlLnBhcmVudF0sXG4gICAgICAgICAgICByZWZlcmVuY2VzOiBbdGFibGUuaWRdLFxuICAgICAgICAgICAgcmVsYXRpb25OYW1lOiAnX3JlbGF0aW9uc2hpcHMnLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9XG5cbiAgICAgICAgcmVsYXRpb25zaGlwcy5mb3JFYWNoKChyZWxhdGlvblRvKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVsYXRlZFRhYmxlTmFtZSA9IHRvU25ha2VDYXNlKHJlbGF0aW9uVG8pXG4gICAgICAgICAgY29uc3QgaWRDb2x1bW5OYW1lID0gYCR7cmVsYXRpb25Ub31JRGBcbiAgICAgICAgICByZXN1bHRbaWRDb2x1bW5OYW1lXSA9IG9uZShhZGFwdGVyLnRhYmxlc1tyZWxhdGVkVGFibGVOYW1lXSwge1xuICAgICAgICAgICAgZmllbGRzOiBbcmVsYXRpb25zaGlwc1RhYmxlW2lkQ29sdW1uTmFtZV1dLFxuICAgICAgICAgICAgcmVmZXJlbmNlczogW2FkYXB0ZXIudGFibGVzW3JlbGF0ZWRUYWJsZU5hbWVdLmlkXSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0pXG5cbiAgICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbnNfJHtyZWxhdGlvbnNoaXBzVGFibGVOYW1lfWBdID0gcmVsYXRpb25zaGlwc1RhYmxlUmVsYXRpb25zXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGFibGVSZWxhdGlvbnMgPSByZWxhdGlvbnModGFibGUsICh7IG1hbnkgfSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgUmVsYXRpb248c3RyaW5nPj4gPSB7fVxuXG4gICAgcmVsYXRpb25zVG9CdWlsZC5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgcmVzdWx0W2tleV0gPSBtYW55KGFkYXB0ZXIudGFibGVzW3ZhbF0pXG4gICAgfSlcblxuICAgIGlmIChoYXNMb2NhbGl6ZWRGaWVsZCkge1xuICAgICAgcmVzdWx0Ll9sb2NhbGVzID0gbWFueShsb2NhbGVzVGFibGUpXG4gICAgfVxuXG4gICAgaWYgKGhhc01hbnlOdW1iZXJGaWVsZCkge1xuICAgICAgcmVzdWx0Ll9udW1iZXJzID0gbWFueShudW1iZXJzVGFibGUpXG4gICAgfVxuXG4gICAgaWYgKHJlbGF0aW9uc2hpcHMuc2l6ZSAmJiByZWxhdGlvbnNoaXBzVGFibGUpIHtcbiAgICAgIHJlc3VsdC5fcmVsYXRpb25zaGlwcyA9IG1hbnkocmVsYXRpb25zaGlwc1RhYmxlLCB7XG4gICAgICAgIHJlbGF0aW9uTmFtZTogJ19yZWxhdGlvbnNoaXBzJyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KVxuXG4gIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbnNfJHt0YWJsZU5hbWV9YF0gPSB0YWJsZVJlbGF0aW9uc1xuXG4gIHJldHVybiB7IHJlbGF0aW9uc1RvQnVpbGQgfVxufVxuIl0sIm5hbWVzIjpbImJ1aWxkVGFibGUiLCJhZGFwdGVyIiwiYmFzZUNvbHVtbnMiLCJiYXNlRXh0cmFDb25maWciLCJidWlsZFJlbGF0aW9uc2hpcHMiLCJkaXNhYmxlVW5pcXVlIiwiZmllbGRzIiwicm9vdFJlbGF0aW9uc1RvQnVpbGQiLCJyb290VGFibGVJRENvbFR5cGUiLCJyb290VGFibGVOYW1lIiwidGFibGVOYW1lIiwidGltZXN0YW1wcyIsImNvbHVtbnMiLCJpbmRleGVzIiwiaGFzTG9jYWxpemVkRmllbGQiLCJoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsImhhc01hbnlOdW1iZXJGaWVsZCIsImhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsImxvY2FsZXNDb2x1bW5zIiwibG9jYWxlc0luZGV4ZXMiLCJsb2NhbGVzVGFibGUiLCJudW1iZXJzVGFibGUiLCJyZWxhdGlvbnNoaXBzIiwiU2V0IiwicmVsYXRpb25zaGlwc1RhYmxlIiwicmVsYXRpb25zVG9CdWlsZCIsIk1hcCIsImlkRmllbGQiLCJmaW5kIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsImlkQ29sVHlwZSIsInR5cGUiLCJpZCIsIm51bWVyaWMiLCJwcmltYXJ5S2V5IiwidmFyY2hhciIsInNlcmlhbCIsInRyYXZlcnNlRmllbGRzIiwibmV3VGFibGVOYW1lIiwicGFyZW50VGFibGVOYW1lIiwiY3JlYXRlZEF0IiwidGltZXN0YW1wIiwibW9kZSIsInByZWNpc2lvbiIsIndpdGhUaW1lem9uZSIsImRlZmF1bHROb3ciLCJub3ROdWxsIiwidXBkYXRlZEF0IiwidGFibGUiLCJwZ1RhYmxlIiwiY29scyIsImV4dHJhQ29uZmlnIiwiT2JqZWN0IiwiZW50cmllcyIsInJlZHVjZSIsImNvbmZpZyIsImtleSIsImZ1bmMiLCJhY2MiLCJjb2xOYW1lIiwidGFibGVzIiwibG9jYWxlVGFibGVOYW1lIiwiX2xvY2FsZSIsImVudW1zIiwiZW51bV9fbG9jYWxlcyIsIl9wYXJlbnRJRCIsInBhcmVudElEQ29sdW1uTWFwIiwicmVmZXJlbmNlcyIsIm9uRGVsZXRlIiwiX2xvY2FsZVBhcmVudCIsInVuaXF1ZSIsIm9uIiwibG9jYWxlc1RhYmxlUmVsYXRpb25zIiwicmVsYXRpb25zIiwib25lIiwibnVtYmVyc1RhYmxlTmFtZSIsIm51bWJlciIsIm9yZGVyIiwiaW50ZWdlciIsInBhcmVudCIsInBhdGgiLCJsb2NhbGUiLCJvcmRlclBhcmVudElkeCIsImluZGV4IiwibnVtYmVySWR4IiwibG9jYWxlUGFyZW50IiwibnVtYmVyc1RhYmxlUmVsYXRpb25zIiwic2l6ZSIsInJlbGF0aW9uc2hpcENvbHVtbnMiLCJmb3JFYWNoIiwicmVsYXRpb25UbyIsImZvcm1hdHRlZFJlbGF0aW9uVG8iLCJ0b1NuYWtlQ2FzZSIsImNvbFR5cGUiLCJyZWxhdGVkQ29sbGVjdGlvbkN1c3RvbUlEIiwicGF5bG9hZCIsImNvbGxlY3Rpb25zIiwicmVsYXRpb25zaGlwc1RhYmxlTmFtZSIsInJlc3VsdCIsImxvY2FsZUlkeCIsInBhcmVudFBhdGhPcmRlckxvY2FsZSIsInBhcmVudFBhdGhPcmRlciIsInJlbGF0aW9uc2hpcHNUYWJsZVJlbGF0aW9ucyIsInJlbGF0aW9uTmFtZSIsInJlbGF0ZWRUYWJsZU5hbWUiLCJpZENvbHVtbk5hbWUiLCJ0YWJsZVJlbGF0aW9ucyIsIm1hbnkiLCJ2YWwiLCJfbG9jYWxlcyIsIl9udW1iZXJzIiwiX3JlbGF0aW9uc2hpcHMiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkEwQ3ZCQTs7O2VBQUFBOzs7NEJBckNhO3dCQVVuQjt1QkFDMEI7b0VBQ1Q7bUNBSVU7Z0NBQ0g7Ozs7OztBQW9CeEIsTUFBTUEsYUFBYSxDQUFDLEVBQ3pCQyxPQUFPLEVBQ1BDLGNBQWMsQ0FBQyxDQUFDLEVBQ2hCQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixLQUFLLEVB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
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/* eslint-disable no-param-reassign */ "use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "createIndex", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return createIndex;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
const _pgcore = require("drizzle-orm/pg-core");
|
12
|
+
const createIndex = ({ name, columnName, unique })=>{
|
13
|
+
return (table)=>{
|
14
|
+
if (unique) return (0, _pgcore.uniqueIndex)(`${columnName}_idx`).on(table[name]);
|
15
|
+
return (0, _pgcore.index)(`${columnName}_idx`).on(table[name]);
|
16
|
+
};
|
17
|
+
};
|
18
|
+
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvY3JlYXRlSW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB7IGluZGV4LCB1bmlxdWVJbmRleCB9IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY0NvbHVtbiB9IGZyb20gJy4uL3R5cGVzJ1xuXG50eXBlIENyZWF0ZUluZGV4QXJncyA9IHtcbiAgY29sdW1uTmFtZTogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICB1bmlxdWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVJbmRleCA9ICh7IG5hbWUsIGNvbHVtbk5hbWUsIHVuaXF1ZSB9OiBDcmVhdGVJbmRleEFyZ3MpID0+IHtcbiAgcmV0dXJuICh0YWJsZTogeyBbeDogc3RyaW5nXTogR2VuZXJpY0NvbHVtbiB9KSA9PiB7XG4gICAgaWYgKHVuaXF1ZSkgcmV0dXJuIHVuaXF1ZUluZGV4KGAke2NvbHVtbk5hbWV9X2lkeGApLm9uKHRhYmxlW25hbWVdKVxuICAgIHJldHVybiBpbmRleChgJHtjb2x1bW5OYW1lfV9pZHhgKS5vbih0YWJsZVtuYW1lXSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUluZGV4IiwibmFtZSIsImNvbHVtbk5hbWUiLCJ1bmlxdWUiLCJ0YWJsZSIsInVuaXF1ZUluZGV4Iiwib24iLCJpbmRleCJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQVd2QkE7OztlQUFBQTs7O3dCQVZzQjtBQVU1QixNQUFNQSxjQUFjLENBQUMsRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLE1BQU0sRUFBbUI7SUFDdkUsT0FBTyxDQUFDQztRQUNOLElBQUlELFFBQVEsT0FBT0UsSUFBQUEsbUJBQVcsRUFBQyxDQUFDLEVBQUVILFdBQVcsSUFBSSxDQUFDLEVBQUVJLEVBQUUsQ0FBQ0YsS0FBSyxDQUFDSCxLQUFLO1FBQ2xFLE9BQU9NLElBQUFBLGFBQUssRUFBQyxDQUFDLEVBQUVMLFdBQVcsSUFBSSxDQUFDLEVBQUVJLEVBQUUsQ0FBQ0YsS0FBSyxDQUFDSCxLQUFLO0lBQ2xEO0FBQ0YifQ==
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "parentIDColumnMap", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return parentIDColumnMap;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
const _pgcore = require("drizzle-orm/pg-core");
|
12
|
+
const parentIDColumnMap = {
|
13
|
+
integer: _pgcore.integer,
|
14
|
+
numeric: _pgcore.numeric,
|
15
|
+
varchar: _pgcore.varchar
|
16
|
+
};
|
17
|
+
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGFyZW50SURDb2x1bW5NYXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZWdlciwgbnVtZXJpYywgdmFyY2hhciB9IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnXG5cbmV4cG9ydCBjb25zdCBwYXJlbnRJRENvbHVtbk1hcCA9IHtcbiAgaW50ZWdlcixcbiAgbnVtZXJpYyxcbiAgdmFyY2hhcixcbn1cbiJdLCJuYW1lcyI6WyJwYXJlbnRJRENvbHVtbk1hcCIsImludGVnZXIiLCJudW1lcmljIiwidmFyY2hhciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFFYUE7OztlQUFBQTs7O3dCQUY2QjtBQUVuQyxNQUFNQSxvQkFBb0I7SUFDL0JDLFNBQUFBLGVBQU87SUFDUEMsU0FBQUEsZUFBTztJQUNQQyxTQUFBQSxlQUFPO0FBQ1QifQ==
|