@payloadcms/drizzle 3.0.0-canary.2c2c95f
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/README.md +3 -0
- package/dist/count.d.ts +3 -0
- package/dist/count.d.ts.map +1 -0
- package/dist/count.js +25 -0
- package/dist/count.js.map +1 -0
- package/dist/create.d.ts +3 -0
- package/dist/create.d.ts.map +1 -0
- package/dist/create.js +19 -0
- package/dist/create.js.map +1 -0
- package/dist/createGlobal.d.ts +4 -0
- package/dist/createGlobal.d.ts.map +1 -0
- package/dist/createGlobal.js +19 -0
- package/dist/createGlobal.js.map +1 -0
- package/dist/createGlobalVersion.d.ts +4 -0
- package/dist/createGlobalVersion.d.ts.map +1 -0
- package/dist/createGlobalVersion.js +36 -0
- package/dist/createGlobalVersion.js.map +1 -0
- package/dist/createTableName.d.ts +31 -0
- package/dist/createTableName.d.ts.map +1 -0
- package/dist/createTableName.js +31 -0
- package/dist/createTableName.js.map +1 -0
- package/dist/createVersion.d.ts +4 -0
- package/dist/createVersion.d.ts.map +1 -0
- package/dist/createVersion.js +43 -0
- package/dist/createVersion.js.map +1 -0
- package/dist/deleteMany.d.ts +3 -0
- package/dist/deleteMany.d.ts.map +1 -0
- package/dist/deleteMany.js +32 -0
- package/dist/deleteMany.js.map +1 -0
- package/dist/deleteOne.d.ts +3 -0
- package/dist/deleteOne.d.ts.map +1 -0
- package/dist/deleteOne.js +63 -0
- package/dist/deleteOne.js.map +1 -0
- package/dist/deleteVersions.d.ts +3 -0
- package/dist/deleteVersions.d.ts.map +1 -0
- package/dist/deleteVersions.js +35 -0
- package/dist/deleteVersions.js.map +1 -0
- package/dist/destroy.d.ts +3 -0
- package/dist/destroy.d.ts.map +1 -0
- package/dist/destroy.js +15 -0
- package/dist/destroy.js.map +1 -0
- package/dist/find/buildFindManyArgs.d.ts +17 -0
- package/dist/find/buildFindManyArgs.d.ts.map +1 -0
- package/dist/find/buildFindManyArgs.js +65 -0
- package/dist/find/buildFindManyArgs.js.map +1 -0
- package/dist/find/chainMethods.d.ts +16 -0
- package/dist/find/chainMethods.d.ts.map +1 -0
- package/dist/find/chainMethods.js +12 -0
- package/dist/find/chainMethods.js.map +1 -0
- package/dist/find/findMany.d.ts +21 -0
- package/dist/find/findMany.d.ts.map +1 -0
- package/dist/find/findMany.js +141 -0
- package/dist/find/findMany.js.map +1 -0
- package/dist/find/traverseFields.d.ts +17 -0
- package/dist/find/traverseFields.d.ts.map +1 -0
- package/dist/find/traverseFields.js +156 -0
- package/dist/find/traverseFields.js.map +1 -0
- package/dist/find.d.ts +3 -0
- package/dist/find.d.ts.map +1 -0
- package/dist/find.js +21 -0
- package/dist/find.js.map +1 -0
- package/dist/findGlobal.d.ts +3 -0
- package/dist/findGlobal.d.ts.map +1 -0
- package/dist/findGlobal.js +23 -0
- package/dist/findGlobal.js.map +1 -0
- package/dist/findGlobalVersions.d.ts +3 -0
- package/dist/findGlobalVersions.d.ts.map +1 -0
- package/dist/findGlobalVersions.js +24 -0
- package/dist/findGlobalVersions.js.map +1 -0
- package/dist/findMigrationDir.d.ts +16 -0
- package/dist/findMigrationDir.d.ts.map +1 -0
- package/dist/findMigrationDir.js +36 -0
- package/dist/findMigrationDir.js.map +1 -0
- package/dist/findOne.d.ts +4 -0
- package/dist/findOne.d.ts.map +1 -0
- package/dist/findOne.js +21 -0
- package/dist/findOne.js.map +1 -0
- package/dist/findVersions.d.ts +3 -0
- package/dist/findVersions.d.ts.map +1 -0
- package/dist/findVersions.js +24 -0
- package/dist/findVersions.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/migrate.d.ts +3 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +97 -0
- package/dist/migrate.js.map +1 -0
- package/dist/migrateDown.d.ts +3 -0
- package/dist/migrateDown.d.ts.map +1 -0
- package/dist/migrateDown.js +63 -0
- package/dist/migrateDown.js.map +1 -0
- package/dist/migrateFresh.d.ts +8 -0
- package/dist/migrateFresh.d.ts.map +1 -0
- package/dist/migrateFresh.js +75 -0
- package/dist/migrateFresh.js.map +1 -0
- package/dist/migrateRefresh.d.ts +6 -0
- package/dist/migrateRefresh.d.ts.map +1 -0
- package/dist/migrateRefresh.js +102 -0
- package/dist/migrateRefresh.js.map +1 -0
- package/dist/migrateReset.d.ts +6 -0
- package/dist/migrateReset.d.ts.map +1 -0
- package/dist/migrateReset.js +82 -0
- package/dist/migrateReset.js.map +1 -0
- package/dist/migrateStatus.d.ts +3 -0
- package/dist/migrateStatus.d.ts.map +1 -0
- package/dist/migrateStatus.js +44 -0
- package/dist/migrateStatus.js.map +1 -0
- package/dist/queries/buildAndOrConditions.d.ts +16 -0
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -0
- package/dist/queries/buildAndOrConditions.js +28 -0
- package/dist/queries/buildAndOrConditions.js.map +1 -0
- package/dist/queries/buildQuery.d.ts +29 -0
- package/dist/queries/buildQuery.d.ts.map +1 -0
- package/dist/queries/buildQuery.js +72 -0
- package/dist/queries/buildQuery.js.map +1 -0
- package/dist/queries/getTableAlias.d.ts +13 -0
- package/dist/queries/getTableAlias.d.ts.map +1 -0
- package/dist/queries/getTableAlias.js +20 -0
- package/dist/queries/getTableAlias.js.map +1 -0
- package/dist/queries/getTableColumnFromPath.d.ts +51 -0
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -0
- package/dist/queries/getTableColumnFromPath.js +532 -0
- package/dist/queries/getTableColumnFromPath.js.map +1 -0
- package/dist/queries/operatorMap.d.ts +6 -0
- package/dist/queries/operatorMap.d.ts.map +1 -0
- package/dist/queries/operatorMap.js +24 -0
- package/dist/queries/operatorMap.js.map +1 -0
- package/dist/queries/parseParams.d.ts +16 -0
- package/dist/queries/parseParams.d.ts.map +1 -0
- package/dist/queries/parseParams.js +188 -0
- package/dist/queries/parseParams.js.map +1 -0
- package/dist/queries/sanitizeQueryValue.d.ts +15 -0
- package/dist/queries/sanitizeQueryValue.d.ts.map +1 -0
- package/dist/queries/sanitizeQueryValue.js +120 -0
- package/dist/queries/sanitizeQueryValue.js.map +1 -0
- package/dist/queries/selectDistinct.d.ts +22 -0
- package/dist/queries/selectDistinct.d.ts.map +1 -0
- package/dist/queries/selectDistinct.js +38 -0
- package/dist/queries/selectDistinct.js.map +1 -0
- package/dist/queryDrafts.d.ts +3 -0
- package/dist/queryDrafts.d.ts.map +1 -0
- package/dist/queryDrafts.js +40 -0
- package/dist/queryDrafts.js.map +1 -0
- package/dist/transactions/beginTransaction.d.ts +3 -0
- package/dist/transactions/beginTransaction.d.ts.map +1 -0
- package/dist/transactions/beginTransaction.js +51 -0
- package/dist/transactions/beginTransaction.js.map +1 -0
- package/dist/transactions/commitTransaction.d.ts +3 -0
- package/dist/transactions/commitTransaction.d.ts.map +1 -0
- package/dist/transactions/commitTransaction.js +15 -0
- package/dist/transactions/commitTransaction.js.map +1 -0
- package/dist/transactions/rollbackTransaction.d.ts +3 -0
- package/dist/transactions/rollbackTransaction.d.ts.map +1 -0
- package/dist/transactions/rollbackTransaction.js +14 -0
- package/dist/transactions/rollbackTransaction.js.map +1 -0
- package/dist/transform/read/hasManyNumber.d.ts +10 -0
- package/dist/transform/read/hasManyNumber.d.ts.map +1 -0
- package/dist/transform/read/hasManyNumber.js +10 -0
- package/dist/transform/read/hasManyNumber.js.map +1 -0
- package/dist/transform/read/hasManyText.d.ts +10 -0
- package/dist/transform/read/hasManyText.d.ts.map +1 -0
- package/dist/transform/read/hasManyText.js +10 -0
- package/dist/transform/read/hasManyText.js.map +1 -0
- package/dist/transform/read/index.d.ts +13 -0
- package/dist/transform/read/index.d.ts.map +1 -0
- package/dist/transform/read/index.js +44 -0
- package/dist/transform/read/index.js.map +1 -0
- package/dist/transform/read/relationship.d.ts +10 -0
- package/dist/transform/read/relationship.d.ts.map +1 -0
- package/dist/transform/read/relationship.js +60 -0
- package/dist/transform/read/relationship.js.map +1 -0
- package/dist/transform/read/traverseFields.d.ts +57 -0
- package/dist/transform/read/traverseFields.d.ts.map +1 -0
- package/dist/transform/read/traverseFields.js +435 -0
- package/dist/transform/read/traverseFields.js.map +1 -0
- package/dist/transform/write/array.d.ts +26 -0
- package/dist/transform/write/array.d.ts.map +1 -0
- package/dist/transform/write/array.js +58 -0
- package/dist/transform/write/array.js.map +1 -0
- package/dist/transform/write/blocks.d.ts +25 -0
- package/dist/transform/write/blocks.d.ts.map +1 -0
- package/dist/transform/write/blocks.js +54 -0
- package/dist/transform/write/blocks.js.map +1 -0
- package/dist/transform/write/index.d.ts +13 -0
- package/dist/transform/write/index.d.ts.map +1 -0
- package/dist/transform/write/index.js +41 -0
- package/dist/transform/write/index.js.map +1 -0
- package/dist/transform/write/numbers.d.ts +8 -0
- package/dist/transform/write/numbers.d.ts.map +1 -0
- package/dist/transform/write/numbers.js +11 -0
- package/dist/transform/write/numbers.js.map +1 -0
- package/dist/transform/write/relationships.d.ts +10 -0
- package/dist/transform/write/relationships.d.ts.map +1 -0
- package/dist/transform/write/relationships.js +23 -0
- package/dist/transform/write/relationships.js.map +1 -0
- package/dist/transform/write/selects.d.ts +8 -0
- package/dist/transform/write/selects.d.ts.map +1 -0
- package/dist/transform/write/selects.js +20 -0
- package/dist/transform/write/selects.js.map +1 -0
- package/dist/transform/write/texts.d.ts +8 -0
- package/dist/transform/write/texts.d.ts.map +1 -0
- package/dist/transform/write/texts.js +11 -0
- package/dist/transform/write/texts.js.map +1 -0
- package/dist/transform/write/traverseFields.d.ts +50 -0
- package/dist/transform/write/traverseFields.d.ts.map +1 -0
- package/dist/transform/write/traverseFields.js +452 -0
- package/dist/transform/write/traverseFields.js.map +1 -0
- package/dist/transform/write/types.d.ts +43 -0
- package/dist/transform/write/types.d.ts.map +1 -0
- package/dist/transform/write/types.js +3 -0
- package/dist/transform/write/types.js.map +1 -0
- package/dist/types.d.ts +145 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/update.d.ts +3 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +54 -0
- package/dist/update.js.map +1 -0
- package/dist/updateGlobal.d.ts +4 -0
- package/dist/updateGlobal.d.ts.map +1 -0
- package/dist/updateGlobal.js +25 -0
- package/dist/updateGlobal.js.map +1 -0
- package/dist/updateGlobalVersion.d.ts +4 -0
- package/dist/updateGlobalVersion.d.ts.map +1 -0
- package/dist/updateGlobalVersion.js +36 -0
- package/dist/updateGlobalVersion.js.map +1 -0
- package/dist/updateVersion.d.ts +4 -0
- package/dist/updateVersion.d.ts.map +1 -0
- package/dist/updateVersion.js +36 -0
- package/dist/updateVersion.js.map +1 -0
- package/dist/upsertRow/deleteExistingArrayRows.d.ts +10 -0
- package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +1 -0
- package/dist/upsertRow/deleteExistingArrayRows.js +14 -0
- package/dist/upsertRow/deleteExistingArrayRows.js.map +1 -0
- package/dist/upsertRow/deleteExistingRowsByPath.d.ts +14 -0
- package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -0
- package/dist/upsertRow/deleteExistingRowsByPath.js +41 -0
- package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -0
- package/dist/upsertRow/index.d.ts +4 -0
- package/dist/upsertRow/index.d.ts.map +1 -0
- package/dist/upsertRow/index.js +337 -0
- package/dist/upsertRow/index.js.map +1 -0
- package/dist/upsertRow/insertArrays.d.ts +13 -0
- package/dist/upsertRow/insertArrays.d.ts.map +1 -0
- package/dist/upsertRow/insertArrays.js +76 -0
- package/dist/upsertRow/insertArrays.js.map +1 -0
- package/dist/upsertRow/types.d.ts +32 -0
- package/dist/upsertRow/types.d.ts.map +1 -0
- package/dist/upsertRow/types.js +3 -0
- package/dist/upsertRow/types.js.map +1 -0
- package/dist/utilities/appendPrefixToKeys.d.ts +2 -0
- package/dist/utilities/appendPrefixToKeys.d.ts.map +1 -0
- package/dist/utilities/appendPrefixToKeys.js +6 -0
- package/dist/utilities/appendPrefixToKeys.js.map +1 -0
- package/dist/utilities/createBlocksMap.d.ts +5 -0
- package/dist/utilities/createBlocksMap.d.ts.map +1 -0
- package/dist/utilities/createBlocksMap.js +29 -0
- package/dist/utilities/createBlocksMap.js.map +1 -0
- package/dist/utilities/createRelationshipMap.d.ts +2 -0
- package/dist/utilities/createRelationshipMap.d.ts.map +1 -0
- package/dist/utilities/createRelationshipMap.js +19 -0
- package/dist/utilities/createRelationshipMap.js.map +1 -0
- package/dist/utilities/hasLocalesTable.d.ts +3 -0
- package/dist/utilities/hasLocalesTable.d.ts.map +1 -0
- package/dist/utilities/hasLocalesTable.js +11 -0
- package/dist/utilities/hasLocalesTable.js.map +1 -0
- package/dist/utilities/isArrayOfRows.d.ts +2 -0
- package/dist/utilities/isArrayOfRows.d.ts.map +1 -0
- package/dist/utilities/isArrayOfRows.js +5 -0
- package/dist/utilities/isArrayOfRows.js.map +1 -0
- package/dist/utilities/migrationTableExists.d.ts +3 -0
- package/dist/utilities/migrationTableExists.d.ts.map +1 -0
- package/dist/utilities/migrationTableExists.js +25 -0
- package/dist/utilities/migrationTableExists.js.map +1 -0
- package/dist/utilities/parseError.d.ts +5 -0
- package/dist/utilities/parseError.d.ts.map +1 -0
- package/dist/utilities/parseError.js +15 -0
- package/dist/utilities/parseError.js.map +1 -0
- package/dist/utilities/pushDevSchema.d.ts +9 -0
- package/dist/utilities/pushDevSchema.d.ts.map +1 -0
- package/dist/utilities/pushDevSchema.js +53 -0
- package/dist/utilities/pushDevSchema.js.map +1 -0
- package/dist/utilities/validateExistingBlockIsIdentical.d.ts +11 -0
- package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -0
- package/dist/utilities/validateExistingBlockIsIdentical.js +76 -0
- package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* eslint-disable no-restricted-syntax, no-await-in-loop */ import { commitTransaction, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
|
|
2
|
+
import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
3
|
+
/**
|
|
4
|
+
* Run all migrate down functions
|
|
5
|
+
*/ export async function migrateReset() {
|
|
6
|
+
const { payload } = this;
|
|
7
|
+
const migrationFiles = await readMigrationFiles({
|
|
8
|
+
payload
|
|
9
|
+
});
|
|
10
|
+
const { existingMigrations } = await getMigrations({
|
|
11
|
+
payload
|
|
12
|
+
});
|
|
13
|
+
if (!existingMigrations?.length) {
|
|
14
|
+
payload.logger.info({
|
|
15
|
+
msg: 'No migrations to reset.'
|
|
16
|
+
});
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const req = {
|
|
20
|
+
payload
|
|
21
|
+
};
|
|
22
|
+
// Rollback all migrations in order
|
|
23
|
+
for (const migration of existingMigrations){
|
|
24
|
+
const migrationFile = migrationFiles.find((m)=>m.name === migration.name);
|
|
25
|
+
try {
|
|
26
|
+
if (!migrationFile) {
|
|
27
|
+
throw new Error(`Migration ${migration.name} not found locally.`);
|
|
28
|
+
}
|
|
29
|
+
const start = Date.now();
|
|
30
|
+
payload.logger.info({
|
|
31
|
+
msg: `Migrating down: ${migrationFile.name}`
|
|
32
|
+
});
|
|
33
|
+
await initTransaction(req);
|
|
34
|
+
await migrationFile.down({
|
|
35
|
+
payload,
|
|
36
|
+
req
|
|
37
|
+
});
|
|
38
|
+
payload.logger.info({
|
|
39
|
+
msg: `Migrated down: ${migrationFile.name} (${Date.now() - start}ms)`
|
|
40
|
+
});
|
|
41
|
+
const tableExists = await migrationTableExists(this);
|
|
42
|
+
if (tableExists) {
|
|
43
|
+
await payload.delete({
|
|
44
|
+
id: migration.id,
|
|
45
|
+
collection: 'payload-migrations',
|
|
46
|
+
req
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
await commitTransaction(req);
|
|
50
|
+
} catch (err) {
|
|
51
|
+
let msg = `Error running migration ${migrationFile.name}.`;
|
|
52
|
+
if (err instanceof Error) msg += ` ${err.message}`;
|
|
53
|
+
await killTransaction(req);
|
|
54
|
+
payload.logger.error({
|
|
55
|
+
err,
|
|
56
|
+
msg
|
|
57
|
+
});
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Delete dev migration
|
|
62
|
+
const tableExists = await migrationTableExists(this);
|
|
63
|
+
if (tableExists) {
|
|
64
|
+
try {
|
|
65
|
+
await payload.delete({
|
|
66
|
+
collection: 'payload-migrations',
|
|
67
|
+
where: {
|
|
68
|
+
batch: {
|
|
69
|
+
equals: -1
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
} catch (err) {
|
|
74
|
+
payload.logger.error({
|
|
75
|
+
error: err,
|
|
76
|
+
msg: 'Error deleting dev migration'
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=migrateReset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/migrateReset.ts"],"sourcesContent":["/* eslint-disable no-restricted-syntax, no-await-in-loop */\nimport type { PayloadRequest } from 'payload'\n\nimport {\n commitTransaction,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\n/**\n * Run all migrate down functions\n */\nexport async function migrateReset(this: DrizzleAdapter): Promise<void> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n const { existingMigrations } = await getMigrations({ payload })\n\n if (!existingMigrations?.length) {\n payload.logger.info({ msg: 'No migrations to reset.' })\n return\n }\n\n const req = { payload } as PayloadRequest\n\n // Rollback all migrations in order\n for (const migration of existingMigrations) {\n const migrationFile = migrationFiles.find((m) => m.name === migration.name)\n try {\n if (!migrationFile) {\n throw new Error(`Migration ${migration.name} not found locally.`)\n }\n\n const start = Date.now()\n payload.logger.info({ msg: `Migrating down: ${migrationFile.name}` })\n await initTransaction(req)\n await migrationFile.down({ payload, req })\n payload.logger.info({\n msg: `Migrated down: ${migrationFile.name} (${Date.now() - start}ms)`,\n })\n\n const tableExists = await migrationTableExists(this)\n if (tableExists) {\n await payload.delete({\n id: migration.id,\n collection: 'payload-migrations',\n req,\n })\n }\n\n await commitTransaction(req)\n } catch (err: unknown) {\n let msg = `Error running migration ${migrationFile.name}.`\n\n if (err instanceof Error) msg += ` ${err.message}`\n\n await killTransaction(req)\n payload.logger.error({\n err,\n msg,\n })\n process.exit(1)\n }\n }\n\n // Delete dev migration\n\n const tableExists = await migrationTableExists(this)\n if (tableExists) {\n try {\n await payload.delete({\n collection: 'payload-migrations',\n where: {\n batch: {\n equals: -1,\n },\n },\n })\n } catch (err: unknown) {\n payload.logger.error({ error: err, msg: 'Error deleting dev migration' })\n }\n }\n}\n"],"names":["commitTransaction","getMigrations","initTransaction","killTransaction","readMigrationFiles","migrationTableExists","migrateReset","payload","migrationFiles","existingMigrations","length","logger","info","msg","req","migration","migrationFile","find","m","name","Error","start","Date","now","down","tableExists","delete","id","collection","err","message","error","process","exit","where","batch","equals"],"mappings":"AAAA,yDAAyD,GAGzD,SACEA,iBAAiB,EACjBC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,kBAAkB,QACb,UAAS;AAIhB,SAASC,oBAAoB,QAAQ,sCAAqC;AAE1E;;CAEC,GACD,OAAO,eAAeC;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IACxB,MAAMC,iBAAiB,MAAMJ,mBAAmB;QAAEG;IAAQ;IAE1D,MAAM,EAAEE,kBAAkB,EAAE,GAAG,MAAMR,cAAc;QAAEM;IAAQ;IAE7D,IAAI,CAACE,oBAAoBC,QAAQ;QAC/BH,QAAQI,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK;QAA0B;QACrD;IACF;IAEA,MAAMC,MAAM;QAAEP;IAAQ;IAEtB,mCAAmC;IACnC,KAAK,MAAMQ,aAAaN,mBAAoB;QAC1C,MAAMO,gBAAgBR,eAAeS,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ,UAAUI,IAAI;QAC1E,IAAI;YACF,IAAI,CAACH,eAAe;gBAClB,MAAM,IAAII,MAAM,CAAC,UAAU,EAAEL,UAAUI,IAAI,CAAC,mBAAmB,CAAC;YAClE;YAEA,MAAME,QAAQC,KAAKC,GAAG;YACtBhB,QAAQI,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,gBAAgB,EAAEG,cAAcG,IAAI,CAAC,CAAC;YAAC;YACnE,MAAMjB,gBAAgBY;YACtB,MAAME,cAAcQ,IAAI,CAAC;gBAAEjB;gBAASO;YAAI;YACxCP,QAAQI,MAAM,CAACC,IAAI,CAAC;gBAClBC,KAAK,CAAC,gBAAgB,EAAEG,cAAcG,IAAI,CAAC,EAAE,EAAEG,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YACxE;YAEA,MAAMI,cAAc,MAAMpB,qBAAqB,IAAI;YACnD,IAAIoB,aAAa;gBACf,MAAMlB,QAAQmB,MAAM,CAAC;oBACnBC,IAAIZ,UAAUY,EAAE;oBAChBC,YAAY;oBACZd;gBACF;YACF;YAEA,MAAMd,kBAAkBc;QAC1B,EAAE,OAAOe,KAAc;YACrB,IAAIhB,MAAM,CAAC,wBAAwB,EAAEG,cAAcG,IAAI,CAAC,CAAC,CAAC;YAE1D,IAAIU,eAAeT,OAAOP,OAAO,CAAC,CAAC,EAAEgB,IAAIC,OAAO,CAAC,CAAC;YAElD,MAAM3B,gBAAgBW;YACtBP,QAAQI,MAAM,CAACoB,KAAK,CAAC;gBACnBF;gBACAhB;YACF;YACAmB,QAAQC,IAAI,CAAC;QACf;IACF;IAEA,uBAAuB;IAEvB,MAAMR,cAAc,MAAMpB,qBAAqB,IAAI;IACnD,IAAIoB,aAAa;QACf,IAAI;YACF,MAAMlB,QAAQmB,MAAM,CAAC;gBACnBE,YAAY;gBACZM,OAAO;oBACLC,OAAO;wBACLC,QAAQ,CAAC;oBACX;gBACF;YACF;QACF,EAAE,OAAOP,KAAc;YACrBtB,QAAQI,MAAM,CAACoB,KAAK,CAAC;gBAAEA,OAAOF;gBAAKhB,KAAK;YAA+B;QACzE;IACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrateStatus.d.ts","sourceRoot":"","sources":["../src/migrateStatus.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,wBAAsB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCvE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Table } from 'console-table-printer';
|
|
2
|
+
import { getMigrations, readMigrationFiles } from 'payload';
|
|
3
|
+
import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
4
|
+
export async function migrateStatus() {
|
|
5
|
+
const { payload } = this;
|
|
6
|
+
const migrationFiles = await readMigrationFiles({
|
|
7
|
+
payload
|
|
8
|
+
});
|
|
9
|
+
payload.logger.debug({
|
|
10
|
+
msg: `Found ${migrationFiles.length} migration files.`
|
|
11
|
+
});
|
|
12
|
+
let existingMigrations = [];
|
|
13
|
+
const hasMigrationTable = await migrationTableExists(this);
|
|
14
|
+
if (hasMigrationTable) {
|
|
15
|
+
({ existingMigrations } = await getMigrations({
|
|
16
|
+
payload
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
if (!migrationFiles.length) {
|
|
20
|
+
payload.logger.info({
|
|
21
|
+
msg: 'No migrations found.'
|
|
22
|
+
});
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Compare migration files to existing migrations
|
|
26
|
+
const statuses = migrationFiles.map((migration)=>{
|
|
27
|
+
const existingMigration = existingMigrations.find((m)=>m.name === migration.name);
|
|
28
|
+
return {
|
|
29
|
+
Name: migration.name,
|
|
30
|
+
// eslint-disable-next-line perfectionist/sort-objects
|
|
31
|
+
Batch: existingMigration?.batch,
|
|
32
|
+
Ran: existingMigration ? 'Yes' : 'No'
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
const p = new Table();
|
|
36
|
+
statuses.forEach((s)=>{
|
|
37
|
+
p.addRow(s, {
|
|
38
|
+
color: s.Ran === 'Yes' ? 'green' : 'red'
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
p.printTable();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=migrateStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/migrateStatus.ts"],"sourcesContent":["import { Table } from 'console-table-printer'\nimport { getMigrations, readMigrationFiles } from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\nexport async function migrateStatus(this: DrizzleAdapter): Promise<void> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n payload.logger.debug({\n msg: `Found ${migrationFiles.length} migration files.`,\n })\n\n let existingMigrations = []\n const hasMigrationTable = await migrationTableExists(this)\n\n if (hasMigrationTable) {\n ;({ existingMigrations } = await getMigrations({ payload }))\n }\n\n if (!migrationFiles.length) {\n payload.logger.info({ msg: 'No migrations found.' })\n return\n }\n\n // Compare migration files to existing migrations\n const statuses = migrationFiles.map((migration) => {\n const existingMigration = existingMigrations.find((m) => m.name === migration.name)\n return {\n Name: migration.name,\n // eslint-disable-next-line perfectionist/sort-objects\n Batch: existingMigration?.batch,\n Ran: existingMigration ? 'Yes' : 'No',\n }\n })\n\n const p = new Table()\n\n statuses.forEach((s) => {\n p.addRow(s, {\n color: s.Ran === 'Yes' ? 'green' : 'red',\n })\n })\n p.printTable()\n}\n"],"names":["Table","getMigrations","readMigrationFiles","migrationTableExists","migrateStatus","payload","migrationFiles","logger","debug","msg","length","existingMigrations","hasMigrationTable","info","statuses","map","migration","existingMigration","find","m","name","Name","Batch","batch","Ran","p","forEach","s","addRow","color","printTable"],"mappings":"AAAA,SAASA,KAAK,QAAQ,wBAAuB;AAC7C,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,UAAS;AAI3D,SAASC,oBAAoB,QAAQ,sCAAqC;AAE1E,OAAO,eAAeC;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IACxB,MAAMC,iBAAiB,MAAMJ,mBAAmB;QAAEG;IAAQ;IAE1DA,QAAQE,MAAM,CAACC,KAAK,CAAC;QACnBC,KAAK,CAAC,MAAM,EAAEH,eAAeI,MAAM,CAAC,iBAAiB,CAAC;IACxD;IAEA,IAAIC,qBAAqB,EAAE;IAC3B,MAAMC,oBAAoB,MAAMT,qBAAqB,IAAI;IAEzD,IAAIS,mBAAmB;QACnB,CAAA,EAAED,kBAAkB,EAAE,GAAG,MAAMV,cAAc;YAAEI;QAAQ,EAAC;IAC5D;IAEA,IAAI,CAACC,eAAeI,MAAM,EAAE;QAC1BL,QAAQE,MAAM,CAACM,IAAI,CAAC;YAAEJ,KAAK;QAAuB;QAClD;IACF;IAEA,iDAAiD;IACjD,MAAMK,WAAWR,eAAeS,GAAG,CAAC,CAACC;QACnC,MAAMC,oBAAoBN,mBAAmBO,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ,UAAUI,IAAI;QAClF,OAAO;YACLC,MAAML,UAAUI,IAAI;YACpB,sDAAsD;YACtDE,OAAOL,mBAAmBM;YAC1BC,KAAKP,oBAAoB,QAAQ;QACnC;IACF;IAEA,MAAMQ,IAAI,IAAIzB;IAEdc,SAASY,OAAO,CAAC,CAACC;QAChBF,EAAEG,MAAM,CAACD,GAAG;YACVE,OAAOF,EAAEH,GAAG,KAAK,QAAQ,UAAU;QACrC;IACF;IACAC,EAAEK,UAAU;AACd"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SQL } from 'drizzle-orm';
|
|
2
|
+
import type { Field, Where } from 'payload';
|
|
3
|
+
import type { DrizzleAdapter, GenericColumn } from '../types.js';
|
|
4
|
+
import type { BuildQueryJoinAliases } from './buildQuery.js';
|
|
5
|
+
export declare function buildAndOrConditions({ adapter, fields, joins, locale, selectFields, tableName, where, }: {
|
|
6
|
+
adapter: DrizzleAdapter;
|
|
7
|
+
collectionSlug?: string;
|
|
8
|
+
fields: Field[];
|
|
9
|
+
globalSlug?: string;
|
|
10
|
+
joins: BuildQueryJoinAliases;
|
|
11
|
+
locale?: string;
|
|
12
|
+
selectFields: Record<string, GenericColumn>;
|
|
13
|
+
tableName: string;
|
|
14
|
+
where: Where[];
|
|
15
|
+
}): Promise<SQL[]>;
|
|
16
|
+
//# sourceMappingURL=buildAndOrConditions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildAndOrConditions.d.ts","sourceRoot":"","sources":["../../src/queries/buildAndOrConditions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAI5D,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,EAAE,CAAA;CACf,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAwBjB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { parseParams } from './parseParams.js';
|
|
2
|
+
export async function buildAndOrConditions({ adapter, fields, joins, locale, selectFields, tableName, where }) {
|
|
3
|
+
const completedConditions = [];
|
|
4
|
+
// Loop over all AND / OR operations and add them to the AND / OR query param
|
|
5
|
+
// Operations should come through as an array
|
|
6
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
7
|
+
for (const condition of where){
|
|
8
|
+
// If the operation is properly formatted as an object
|
|
9
|
+
if (typeof condition === 'object') {
|
|
10
|
+
// eslint-disable-next-line no-await-in-loop
|
|
11
|
+
const result = await parseParams({
|
|
12
|
+
adapter,
|
|
13
|
+
fields,
|
|
14
|
+
joins,
|
|
15
|
+
locale,
|
|
16
|
+
selectFields,
|
|
17
|
+
tableName,
|
|
18
|
+
where: condition
|
|
19
|
+
});
|
|
20
|
+
if (result && Object.keys(result).length > 0) {
|
|
21
|
+
completedConditions.push(result);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return completedConditions;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=buildAndOrConditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildAndOrConditions.ts"],"sourcesContent":["import type { SQL } from 'drizzle-orm'\nimport type { Field, Where } from 'payload'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases } from './buildQuery.js'\n\nimport { parseParams } from './parseParams.js'\n\nexport async function buildAndOrConditions({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n tableName,\n where,\n}: {\n adapter: DrizzleAdapter\n collectionSlug?: string\n fields: Field[]\n globalSlug?: string\n joins: BuildQueryJoinAliases\n locale?: string\n selectFields: Record<string, GenericColumn>\n tableName: string\n where: Where[]\n}): Promise<SQL[]> {\n const completedConditions = []\n // Loop over all AND / OR operations and add them to the AND / OR query param\n // Operations should come through as an array\n // eslint-disable-next-line no-restricted-syntax\n for (const condition of where) {\n // If the operation is properly formatted as an object\n if (typeof condition === 'object') {\n // eslint-disable-next-line no-await-in-loop\n const result = await parseParams({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n tableName,\n where: condition,\n })\n if (result && Object.keys(result).length > 0) {\n completedConditions.push(result)\n }\n }\n }\n return completedConditions\n}\n"],"names":["parseParams","buildAndOrConditions","adapter","fields","joins","locale","selectFields","tableName","where","completedConditions","condition","result","Object","keys","length","push"],"mappings":"AAMA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,eAAeC,qBAAqB,EACzCC,OAAO,EACPC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,YAAY,EACZC,SAAS,EACTC,KAAK,EAWN;IACC,MAAMC,sBAAsB,EAAE;IAC9B,6EAA6E;IAC7E,6CAA6C;IAC7C,gDAAgD;IAChD,KAAK,MAAMC,aAAaF,MAAO;QAC7B,sDAAsD;QACtD,IAAI,OAAOE,cAAc,UAAU;YACjC,4CAA4C;YAC5C,MAAMC,SAAS,MAAMX,YAAY;gBAC/BE;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC,OAAOE;YACT;YACA,IAAIC,UAAUC,OAAOC,IAAI,CAACF,QAAQG,MAAM,GAAG,GAAG;gBAC5CL,oBAAoBM,IAAI,CAACJ;YAC3B;QACF;IACF;IACA,OAAOF;AACT"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SQL } from 'drizzle-orm';
|
|
2
|
+
import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
|
|
3
|
+
import type { Field, Where } from 'payload';
|
|
4
|
+
import { asc, desc } from 'drizzle-orm';
|
|
5
|
+
import type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js';
|
|
6
|
+
export type BuildQueryJoinAliases = {
|
|
7
|
+
condition: SQL;
|
|
8
|
+
table: GenericTable | PgTableWithColumns<any>;
|
|
9
|
+
}[];
|
|
10
|
+
type BuildQueryArgs = {
|
|
11
|
+
adapter: DrizzleAdapter;
|
|
12
|
+
fields: Field[];
|
|
13
|
+
locale?: string;
|
|
14
|
+
sort?: string;
|
|
15
|
+
tableName: string;
|
|
16
|
+
where: Where;
|
|
17
|
+
};
|
|
18
|
+
type Result = {
|
|
19
|
+
joins: BuildQueryJoinAliases;
|
|
20
|
+
orderBy: {
|
|
21
|
+
column: GenericColumn;
|
|
22
|
+
order: typeof asc | typeof desc;
|
|
23
|
+
};
|
|
24
|
+
selectFields: Record<string, GenericColumn>;
|
|
25
|
+
where: SQL;
|
|
26
|
+
};
|
|
27
|
+
declare const buildQuery: ({ adapter, fields, locale, sort, tableName, where: incomingWhere, }: BuildQueryArgs) => Promise<Result>;
|
|
28
|
+
export default buildQuery;
|
|
29
|
+
//# sourceMappingURL=buildQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildQuery.d.ts","sourceRoot":"","sources":["../../src/queries/buildQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,GAAG,CAAA;IACd,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;CAC9C,EAAE,CAAA;AAEH,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,qBAAqB,CAAA;IAC5B,OAAO,EAAE;QACP,MAAM,EAAE,aAAa,CAAA;QACrB,KAAK,EAAE,OAAO,GAAG,GAAG,OAAO,IAAI,CAAA;KAChC,CAAA;IACD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,KAAK,EAAE,GAAG,CAAA;CACX,CAAA;AACD,QAAA,MAAM,UAAU,wEAOb,cAAc,KAAG,OAAO,CAAC,MAAM,CA2EjC,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { asc, desc } from 'drizzle-orm';
|
|
2
|
+
import { getTableColumnFromPath } from './getTableColumnFromPath.js';
|
|
3
|
+
import { parseParams } from './parseParams.js';
|
|
4
|
+
const buildQuery = async function buildQuery({ adapter, fields, locale, sort, tableName, where: incomingWhere }) {
|
|
5
|
+
const selectFields = {
|
|
6
|
+
id: adapter.tables[tableName].id
|
|
7
|
+
};
|
|
8
|
+
const joins = [];
|
|
9
|
+
const orderBy = {
|
|
10
|
+
column: null,
|
|
11
|
+
order: null
|
|
12
|
+
};
|
|
13
|
+
if (sort) {
|
|
14
|
+
let sortPath;
|
|
15
|
+
if (sort[0] === '-') {
|
|
16
|
+
sortPath = sort.substring(1);
|
|
17
|
+
orderBy.order = desc;
|
|
18
|
+
} else {
|
|
19
|
+
sortPath = sort;
|
|
20
|
+
orderBy.order = asc;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const { columnName: sortTableColumnName, table: sortTable } = getTableColumnFromPath({
|
|
24
|
+
adapter,
|
|
25
|
+
collectionPath: sortPath,
|
|
26
|
+
fields,
|
|
27
|
+
joins,
|
|
28
|
+
locale,
|
|
29
|
+
pathSegments: sortPath.replace(/__/g, '.').split('.'),
|
|
30
|
+
selectFields,
|
|
31
|
+
tableName,
|
|
32
|
+
value: sortPath
|
|
33
|
+
});
|
|
34
|
+
orderBy.column = sortTable?.[sortTableColumnName];
|
|
35
|
+
} catch (err) {
|
|
36
|
+
// continue
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (!orderBy?.column) {
|
|
40
|
+
orderBy.order = desc;
|
|
41
|
+
const createdAt = adapter.tables[tableName]?.createdAt;
|
|
42
|
+
if (createdAt) {
|
|
43
|
+
orderBy.column = createdAt;
|
|
44
|
+
} else {
|
|
45
|
+
orderBy.column = adapter.tables[tableName].id;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (orderBy.column) {
|
|
49
|
+
selectFields.sort = orderBy.column;
|
|
50
|
+
}
|
|
51
|
+
let where;
|
|
52
|
+
if (incomingWhere && Object.keys(incomingWhere).length > 0) {
|
|
53
|
+
where = await parseParams({
|
|
54
|
+
adapter,
|
|
55
|
+
fields,
|
|
56
|
+
joins,
|
|
57
|
+
locale,
|
|
58
|
+
selectFields,
|
|
59
|
+
tableName,
|
|
60
|
+
where: incomingWhere
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
joins,
|
|
65
|
+
orderBy,
|
|
66
|
+
selectFields,
|
|
67
|
+
where
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export default buildQuery;
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=buildQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildQuery.ts"],"sourcesContent":["import type { SQL } from 'drizzle-orm'\nimport type { PgTableWithColumns } from 'drizzle-orm/pg-core'\nimport type { Field, Where } from 'payload'\n\nimport { asc, desc } from 'drizzle-orm'\n\nimport type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js'\n\nimport { getTableColumnFromPath } from './getTableColumnFromPath.js'\nimport { parseParams } from './parseParams.js'\n\nexport type BuildQueryJoinAliases = {\n condition: SQL\n table: GenericTable | PgTableWithColumns<any>\n}[]\n\ntype BuildQueryArgs = {\n adapter: DrizzleAdapter\n fields: Field[]\n locale?: string\n sort?: string\n tableName: string\n where: Where\n}\n\ntype Result = {\n joins: BuildQueryJoinAliases\n orderBy: {\n column: GenericColumn\n order: typeof asc | typeof desc\n }\n selectFields: Record<string, GenericColumn>\n where: SQL\n}\nconst buildQuery = async function buildQuery({\n adapter,\n fields,\n locale,\n sort,\n tableName,\n where: incomingWhere,\n}: BuildQueryArgs): Promise<Result> {\n const selectFields: Record<string, GenericColumn> = {\n id: adapter.tables[tableName].id,\n }\n const joins: BuildQueryJoinAliases = []\n\n const orderBy: Result['orderBy'] = {\n column: null,\n order: null,\n }\n\n if (sort) {\n let sortPath\n\n if (sort[0] === '-') {\n sortPath = sort.substring(1)\n orderBy.order = desc\n } else {\n sortPath = sort\n orderBy.order = asc\n }\n\n try {\n const { columnName: sortTableColumnName, table: sortTable } = getTableColumnFromPath({\n adapter,\n collectionPath: sortPath,\n fields,\n joins,\n locale,\n pathSegments: sortPath.replace(/__/g, '.').split('.'),\n selectFields,\n tableName,\n value: sortPath,\n })\n orderBy.column = sortTable?.[sortTableColumnName]\n } catch (err) {\n // continue\n }\n }\n\n if (!orderBy?.column) {\n orderBy.order = desc\n const createdAt = adapter.tables[tableName]?.createdAt\n\n if (createdAt) {\n orderBy.column = createdAt\n } else {\n orderBy.column = adapter.tables[tableName].id\n }\n }\n\n if (orderBy.column) {\n selectFields.sort = orderBy.column\n }\n\n let where: SQL\n\n if (incomingWhere && Object.keys(incomingWhere).length > 0) {\n where = await parseParams({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n tableName,\n where: incomingWhere,\n })\n }\n\n return {\n joins,\n orderBy,\n selectFields,\n where,\n }\n}\n\nexport default buildQuery\n"],"names":["asc","desc","getTableColumnFromPath","parseParams","buildQuery","adapter","fields","locale","sort","tableName","where","incomingWhere","selectFields","id","tables","joins","orderBy","column","order","sortPath","substring","columnName","sortTableColumnName","table","sortTable","collectionPath","pathSegments","replace","split","value","err","createdAt","Object","keys","length"],"mappings":"AAIA,SAASA,GAAG,EAAEC,IAAI,QAAQ,cAAa;AAIvC,SAASC,sBAAsB,QAAQ,8BAA6B;AACpE,SAASC,WAAW,QAAQ,mBAAkB;AAyB9C,MAAMC,aAAa,eAAeA,WAAW,EAC3CC,OAAO,EACPC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,OAAOC,aAAa,EACL;IACf,MAAMC,eAA8C;QAClDC,IAAIR,QAAQS,MAAM,CAACL,UAAU,CAACI,EAAE;IAClC;IACA,MAAME,QAA+B,EAAE;IAEvC,MAAMC,UAA6B;QACjCC,QAAQ;QACRC,OAAO;IACT;IAEA,IAAIV,MAAM;QACR,IAAIW;QAEJ,IAAIX,IAAI,CAAC,EAAE,KAAK,KAAK;YACnBW,WAAWX,KAAKY,SAAS,CAAC;YAC1BJ,QAAQE,KAAK,GAAGjB;QAClB,OAAO;YACLkB,WAAWX;YACXQ,QAAQE,KAAK,GAAGlB;QAClB;QAEA,IAAI;YACF,MAAM,EAAEqB,YAAYC,mBAAmB,EAAEC,OAAOC,SAAS,EAAE,GAAGtB,uBAAuB;gBACnFG;gBACAoB,gBAAgBN;gBAChBb;gBACAS;gBACAR;gBACAmB,cAAcP,SAASQ,OAAO,CAAC,OAAO,KAAKC,KAAK,CAAC;gBACjDhB;gBACAH;gBACAoB,OAAOV;YACT;YACAH,QAAQC,MAAM,GAAGO,WAAW,CAACF,oBAAoB;QACnD,EAAE,OAAOQ,KAAK;QACZ,WAAW;QACb;IACF;IAEA,IAAI,CAACd,SAASC,QAAQ;QACpBD,QAAQE,KAAK,GAAGjB;QAChB,MAAM8B,YAAY1B,QAAQS,MAAM,CAACL,UAAU,EAAEsB;QAE7C,IAAIA,WAAW;YACbf,QAAQC,MAAM,GAAGc;QACnB,OAAO;YACLf,QAAQC,MAAM,GAAGZ,QAAQS,MAAM,CAACL,UAAU,CAACI,EAAE;QAC/C;IACF;IAEA,IAAIG,QAAQC,MAAM,EAAE;QAClBL,aAAaJ,IAAI,GAAGQ,QAAQC,MAAM;IACpC;IAEA,IAAIP;IAEJ,IAAIC,iBAAiBqB,OAAOC,IAAI,CAACtB,eAAeuB,MAAM,GAAG,GAAG;QAC1DxB,QAAQ,MAAMP,YAAY;YACxBE;YACAC;YACAS;YACAR;YACAK;YACAH;YACAC,OAAOC;QACT;IACF;IAEA,OAAO;QACLI;QACAC;QACAJ;QACAF;IACF;AACF;AAEA,eAAeN,WAAU"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
|
|
2
|
+
import type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core';
|
|
3
|
+
import type { DrizzleAdapter } from '../types.js';
|
|
4
|
+
type Table = PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
|
|
5
|
+
export declare const getTableAlias: ({ adapter, tableName, }: {
|
|
6
|
+
adapter: DrizzleAdapter;
|
|
7
|
+
tableName: string;
|
|
8
|
+
}) => {
|
|
9
|
+
newAliasTable: Table;
|
|
10
|
+
newAliasTableName: string;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=getTableAlias.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTableAlias.d.ts","sourceRoot":"","sources":["../../src/queries/getTableAlias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;AAClE,eAAO,MAAM,aAAa,4BAGvB;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG;IACF,aAAa,EAAE,KAAK,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;CAa1B,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { alias } from 'drizzle-orm/pg-core';
|
|
2
|
+
import { alias as aliasSQLite } from 'drizzle-orm/sqlite-core/alias';
|
|
3
|
+
import toSnakeCase from 'to-snake-case';
|
|
4
|
+
import { v4 as uuid } from 'uuid';
|
|
5
|
+
export const getTableAlias = ({ adapter, tableName })=>{
|
|
6
|
+
const newAliasTableName = toSnakeCase(uuid());
|
|
7
|
+
let newAliasTable;
|
|
8
|
+
if (adapter.name === 'postgres') {
|
|
9
|
+
newAliasTable = alias(adapter.tables[tableName], newAliasTableName);
|
|
10
|
+
}
|
|
11
|
+
if (adapter.name === 'sqlite') {
|
|
12
|
+
newAliasTable = aliasSQLite(adapter.tables[tableName], newAliasTableName);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
newAliasTable,
|
|
16
|
+
newAliasTableName
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=getTableAlias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/getTableAlias.ts"],"sourcesContent":["import type { PgTableWithColumns } from 'drizzle-orm/pg-core'\nimport type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core'\n\nimport { alias } from 'drizzle-orm/pg-core'\nimport { alias as aliasSQLite } from 'drizzle-orm/sqlite-core/alias'\nimport toSnakeCase from 'to-snake-case'\nimport { v4 as uuid } from 'uuid'\n\nimport type { DrizzleAdapter } from '../types.js'\n\ntype Table = PgTableWithColumns<any> | SQLiteTableWithColumns<any>\nexport const getTableAlias = ({\n adapter,\n tableName,\n}: {\n adapter: DrizzleAdapter\n tableName: string\n}): {\n newAliasTable: Table\n newAliasTableName: string\n} => {\n const newAliasTableName = toSnakeCase(uuid())\n let newAliasTable\n\n if (adapter.name === 'postgres') {\n newAliasTable = alias(adapter.tables[tableName], newAliasTableName)\n }\n if (adapter.name === 'sqlite') {\n newAliasTable = aliasSQLite(adapter.tables[tableName], newAliasTableName)\n }\n\n return { newAliasTable, newAliasTableName }\n}\n"],"names":["alias","aliasSQLite","toSnakeCase","v4","uuid","getTableAlias","adapter","tableName","newAliasTableName","newAliasTable","name","tables"],"mappings":"AAGA,SAASA,KAAK,QAAQ,sBAAqB;AAC3C,SAASA,SAASC,WAAW,QAAQ,gCAA+B;AACpE,OAAOC,iBAAiB,gBAAe;AACvC,SAASC,MAAMC,IAAI,QAAQ,OAAM;AAKjC,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,OAAO,EACPC,SAAS,EAIV;IAIC,MAAMC,oBAAoBN,YAAYE;IACtC,IAAIK;IAEJ,IAAIH,QAAQI,IAAI,KAAK,YAAY;QAC/BD,gBAAgBT,MAAMM,QAAQK,MAAM,CAACJ,UAAU,EAAEC;IACnD;IACA,IAAIF,QAAQI,IAAI,KAAK,UAAU;QAC7BD,gBAAgBR,YAAYK,QAAQK,MAAM,CAACJ,UAAU,EAAEC;IACzD;IAEA,OAAO;QAAEC;QAAeD;IAAkB;AAC5C,EAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { SQL } from 'drizzle-orm';
|
|
2
|
+
import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
|
|
3
|
+
import type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core';
|
|
4
|
+
import type { Field, FieldAffectingData, TabAsField } from 'payload';
|
|
5
|
+
import type { DrizzleAdapter, GenericColumn } from '../types.js';
|
|
6
|
+
import type { BuildQueryJoinAliases } from './buildQuery.js';
|
|
7
|
+
type Constraint = {
|
|
8
|
+
columnName: string;
|
|
9
|
+
table: PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
|
|
10
|
+
value: unknown;
|
|
11
|
+
};
|
|
12
|
+
type TableColumn = {
|
|
13
|
+
columnName?: string;
|
|
14
|
+
constraints: Constraint[];
|
|
15
|
+
field: FieldAffectingData;
|
|
16
|
+
getNotNullColumnByValue?: (val: unknown) => string;
|
|
17
|
+
pathSegments?: string[];
|
|
18
|
+
rawColumn?: SQL;
|
|
19
|
+
table: PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
|
|
20
|
+
};
|
|
21
|
+
type Args = {
|
|
22
|
+
adapter: DrizzleAdapter;
|
|
23
|
+
aliasTable?: PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
|
|
24
|
+
collectionPath: string;
|
|
25
|
+
columnPrefix?: string;
|
|
26
|
+
constraintPath?: string;
|
|
27
|
+
constraints?: Constraint[];
|
|
28
|
+
fields: (Field | TabAsField)[];
|
|
29
|
+
joins: BuildQueryJoinAliases;
|
|
30
|
+
locale?: string;
|
|
31
|
+
pathSegments: string[];
|
|
32
|
+
rootTableName?: string;
|
|
33
|
+
selectFields: Record<string, GenericColumn>;
|
|
34
|
+
tableName: string;
|
|
35
|
+
/**
|
|
36
|
+
* If creating a new table name for arrays and blocks, this suffix should be appended to the table name
|
|
37
|
+
*/
|
|
38
|
+
tableNameSuffix?: string;
|
|
39
|
+
/**
|
|
40
|
+
* The raw value of the query before sanitization
|
|
41
|
+
*/
|
|
42
|
+
value: unknown;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Transforms path to table and column name
|
|
46
|
+
* Adds tables to `join`
|
|
47
|
+
* @returns TableColumn
|
|
48
|
+
*/
|
|
49
|
+
export declare const getTableColumnFromPath: ({ adapter, aliasTable, collectionPath, columnPrefix, constraintPath: incomingConstraintPath, constraints, fields, joins, locale: incomingLocale, pathSegments: incomingSegments, rootTableName: incomingRootTableName, selectFields, tableName, tableNameSuffix, value, }: Args) => TableColumn;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=getTableColumnFromPath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAe,UAAU,EAAa,MAAM,SAAS,CAAA;AAO5F,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAI5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,kBAAkB,CAAA;IACzB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,8QAgBhC,IAAI,KAAG,WA8kBT,CAAA"}
|