@payloadcms/drizzle 3.32.0-internal.f2e77bd → 3.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deleteOne.js +2 -9
- package/dist/deleteOne.js.map +1 -1
- package/dist/exports/types-deprecated.d.ts +150 -0
- package/dist/exports/types-deprecated.d.ts.map +1 -0
- package/dist/exports/types-deprecated.js +5 -0
- package/dist/exports/types-deprecated.js.map +1 -0
- package/dist/find/chainMethods.d.ts +5 -0
- package/dist/find/chainMethods.d.ts.map +1 -1
- package/dist/find/chainMethods.js +4 -0
- package/dist/find/chainMethods.js.map +1 -1
- package/dist/find/findMany.d.ts.map +1 -1
- package/dist/find/findMany.js +6 -22
- package/dist/find/findMany.js.map +1 -1
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +14 -35
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/postgres/countDistinct.d.ts.map +1 -1
- package/dist/postgres/countDistinct.js +5 -15
- package/dist/postgres/countDistinct.js.map +1 -1
- package/dist/queries/selectDistinct.d.ts +5 -3
- package/dist/queries/selectDistinct.d.ts.map +1 -1
- package/dist/queries/selectDistinct.js +10 -23
- package/dist/queries/selectDistinct.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -1
- package/dist/types.js.map +1 -1
- package/dist/updateJobs.d.ts.map +1 -1
- package/dist/updateJobs.js +3 -0
- package/dist/updateJobs.js.map +1 -1
- package/dist/updateMany.d.ts.map +1 -1
- package/dist/updateMany.js +6 -28
- package/dist/updateMany.js.map +1 -1
- package/dist/updateOne.js +1 -8
- package/dist/updateOne.js.map +1 -1
- package/package.json +6 -6
package/dist/updateJobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/updateJobs.ts"],"sourcesContent":["import type { UpdateJobs, Where } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const updateJobs: UpdateJobs = async function updateMany(\n this: DrizzleAdapter,\n { id, data, limit: limitArg, req, returning, sort: sortArg, where: whereArg },\n) {\n const whereToUse: Where = id ? { id: { equals: id } } : whereArg\n const limit = id ? 1 : limitArg\n\n const db = await getTransaction(this, req)\n const collection = this.payload.collections['payload-jobs'].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const sort = sortArg !== undefined && sortArg !== null ? sortArg : collection.defaultSort\n\n const jobs = await findMany({\n adapter: this,\n collectionSlug: 'payload-jobs',\n fields: collection.flattenedFields,\n limit: id ? 1 : limit,\n pagination: false,\n req,\n sort,\n tableName,\n where: whereToUse,\n })\n if (!jobs.docs.length) {\n return []\n }\n\n const results = []\n\n // TODO: We need to batch this to reduce the amount of db calls. This can get very slow if we are updating a lot of rows.\n for (const job of jobs.docs) {\n const updateData = {\n ...job,\n ...data,\n }\n\n const result = await upsertRow({\n id: job.id,\n adapter: this,\n data: updateData,\n db,\n fields: collection.flattenedFields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n tableName,\n })\n results.push(result)\n }\n\n if (returning === false) {\n return null\n }\n\n return results\n}\n"],"names":["toSnakeCase","findMany","upsertRow","getTransaction","updateJobs","updateMany","id","data","limit","limitArg","req","returning","sort","sortArg","where","whereArg","whereToUse","equals","db","collection","payload","collections","config","tableName","tableNameMap","get","slug","undefined","defaultSort","jobs","adapter","collectionSlug","fields","flattenedFields","pagination","docs","
|
|
1
|
+
{"version":3,"sources":["../src/updateJobs.ts"],"sourcesContent":["import type { UpdateJobs, Where } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const updateJobs: UpdateJobs = async function updateMany(\n this: DrizzleAdapter,\n { id, data, limit: limitArg, req, returning, sort: sortArg, where: whereArg },\n) {\n if (!(data?.log as object[])?.length) {\n delete data.log\n }\n const whereToUse: Where = id ? { id: { equals: id } } : whereArg\n const limit = id ? 1 : limitArg\n\n const db = await getTransaction(this, req)\n const collection = this.payload.collections['payload-jobs'].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const sort = sortArg !== undefined && sortArg !== null ? sortArg : collection.defaultSort\n\n const jobs = await findMany({\n adapter: this,\n collectionSlug: 'payload-jobs',\n fields: collection.flattenedFields,\n limit: id ? 1 : limit,\n pagination: false,\n req,\n sort,\n tableName,\n where: whereToUse,\n })\n if (!jobs.docs.length) {\n return []\n }\n\n const results = []\n\n // TODO: We need to batch this to reduce the amount of db calls. This can get very slow if we are updating a lot of rows.\n for (const job of jobs.docs) {\n const updateData = {\n ...job,\n ...data,\n }\n\n const result = await upsertRow({\n id: job.id,\n adapter: this,\n data: updateData,\n db,\n fields: collection.flattenedFields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n tableName,\n })\n\n results.push(result)\n }\n\n if (returning === false) {\n return null\n }\n\n return results\n}\n"],"names":["toSnakeCase","findMany","upsertRow","getTransaction","updateJobs","updateMany","id","data","limit","limitArg","req","returning","sort","sortArg","where","whereArg","log","length","whereToUse","equals","db","collection","payload","collections","config","tableName","tableNameMap","get","slug","undefined","defaultSort","jobs","adapter","collectionSlug","fields","flattenedFields","pagination","docs","results","job","updateData","result","ignoreResult","operation","push"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,aAAyB,eAAeC,WAEnD,EAAEC,EAAE,EAAEC,IAAI,EAAEC,OAAOC,QAAQ,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAMC,OAAO,EAAEC,OAAOC,QAAQ,EAAE;IAE7E,IAAI,CAAER,MAAMS,KAAkBC,QAAQ;QACpC,OAAOV,KAAKS,GAAG;IACjB;IACA,MAAME,aAAoBZ,KAAK;QAAEA,IAAI;YAAEa,QAAQb;QAAG;IAAE,IAAIS;IACxD,MAAMP,QAAQF,KAAK,IAAIG;IAEvB,MAAMW,KAAK,MAAMjB,eAAe,IAAI,EAAEO;IACtC,MAAMW,aAAa,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,eAAe,CAACC,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC3B,YAAYqB,WAAWO,IAAI;IACnE,MAAMhB,OAAOC,YAAYgB,aAAahB,YAAY,OAAOA,UAAUQ,WAAWS,WAAW;IAEzF,MAAMC,OAAO,MAAM9B,SAAS;QAC1B+B,SAAS,IAAI;QACbC,gBAAgB;QAChBC,QAAQb,WAAWc,eAAe;QAClC3B,OAAOF,KAAK,IAAIE;QAChB4B,YAAY;QACZ1B;QACAE;QACAa;QACAX,OAAOI;IACT;IACA,IAAI,CAACa,KAAKM,IAAI,CAACpB,MAAM,EAAE;QACrB,OAAO,EAAE;IACX;IAEA,MAAMqB,UAAU,EAAE;IAElB,yHAAyH;IACzH,KAAK,MAAMC,OAAOR,KAAKM,IAAI,CAAE;QAC3B,MAAMG,aAAa;YACjB,GAAGD,GAAG;YACN,GAAGhC,IAAI;QACT;QAEA,MAAMkC,SAAS,MAAMvC,UAAU;YAC7BI,IAAIiC,IAAIjC,EAAE;YACV0B,SAAS,IAAI;YACbzB,MAAMiC;YACNpB;YACAc,QAAQb,WAAWc,eAAe;YAClCO,cAAc/B,cAAc;YAC5BgC,WAAW;YACXjC;YACAe;QACF;QAEAa,QAAQM,IAAI,CAACH;IACf;IAEA,IAAI9B,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAO2B;AACT,EAAC"}
|
package/dist/updateMany.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateMany.d.ts","sourceRoot":"","sources":["../src/updateMany.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"updateMany.d.ts","sourceRoot":"","sources":["../src/updateMany.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAWzC,eAAO,MAAM,UAAU,EAAE,UAgGxB,CAAA"}
|
package/dist/updateMany.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import toSnakeCase from 'to-snake-case';
|
|
2
|
-
import { chainMethods } from './find/chainMethods.js';
|
|
3
2
|
import buildQuery from './queries/buildQuery.js';
|
|
4
3
|
import { selectDistinct } from './queries/selectDistinct.js';
|
|
5
4
|
import { upsertRow } from './upsertRow/index.js';
|
|
@@ -20,16 +19,9 @@ export const updateMany = async function updateMany({ collection: collectionSlug
|
|
|
20
19
|
let idsToUpdate = [];
|
|
21
20
|
const selectDistinctResult = await selectDistinct({
|
|
22
21
|
adapter: this,
|
|
23
|
-
chainedMethods: orderBy ? [
|
|
24
|
-
{
|
|
25
|
-
args: [
|
|
26
|
-
()=>orderBy.map(({ column, order })=>order(column))
|
|
27
|
-
],
|
|
28
|
-
method: 'orderBy'
|
|
29
|
-
}
|
|
30
|
-
] : [],
|
|
31
22
|
db,
|
|
32
23
|
joins,
|
|
24
|
+
query: ({ query })=>orderBy ? query.orderBy(()=>orderBy.map(({ column, order })=>order(column))) : query,
|
|
33
25
|
selectFields,
|
|
34
26
|
tableName,
|
|
35
27
|
where
|
|
@@ -40,30 +32,16 @@ export const updateMany = async function updateMany({ collection: collectionSlug
|
|
|
40
32
|
// If id wasn't passed but `where` without any joins, retrieve it with findFirst
|
|
41
33
|
const _db = db;
|
|
42
34
|
const table = this.tables[tableName];
|
|
43
|
-
|
|
35
|
+
let query = _db.select({
|
|
44
36
|
id: table.id
|
|
45
|
-
}).from(table).where(where);
|
|
46
|
-
const chainedMethods = [];
|
|
37
|
+
}).from(table).where(where).$dynamic();
|
|
47
38
|
if (typeof limit === 'number' && limit > 0) {
|
|
48
|
-
|
|
49
|
-
args: [
|
|
50
|
-
limit
|
|
51
|
-
],
|
|
52
|
-
method: 'limit'
|
|
53
|
-
});
|
|
39
|
+
query = query.limit(limit);
|
|
54
40
|
}
|
|
55
41
|
if (orderBy) {
|
|
56
|
-
|
|
57
|
-
args: [
|
|
58
|
-
()=>orderBy.map(({ column, order })=>order(column))
|
|
59
|
-
],
|
|
60
|
-
method: 'orderBy'
|
|
61
|
-
});
|
|
42
|
+
query = query.orderBy(()=>orderBy.map(({ column, order })=>order(column)));
|
|
62
43
|
}
|
|
63
|
-
const docsToUpdate = await
|
|
64
|
-
methods: chainedMethods,
|
|
65
|
-
query
|
|
66
|
-
});
|
|
44
|
+
const docsToUpdate = await query;
|
|
67
45
|
idsToUpdate = docsToUpdate?.map((doc)=>doc.id);
|
|
68
46
|
}
|
|
69
47
|
if (!idsToUpdate.length) {
|
package/dist/updateMany.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/updateMany.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { UpdateMany } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type {
|
|
1
|
+
{"version":3,"sources":["../src/updateMany.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { UpdateMany } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const updateMany: UpdateMany = async function updateMany(\n this: DrizzleAdapter,\n {\n collection: collectionSlug,\n data,\n joins: joinQuery,\n limit,\n locale,\n req,\n returning,\n select,\n sort: sortArg,\n where: whereToUse,\n },\n) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n const sort = sortArg !== undefined && sortArg !== null ? sortArg : collection.defaultSort\n\n const { joins, orderBy, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.flattenedFields,\n locale,\n sort,\n tableName,\n where: whereToUse,\n })\n\n let idsToUpdate: (number | string)[] = []\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n joins,\n query: ({ query }) =>\n orderBy ? query.orderBy(() => orderBy.map(({ column, order }) => order(column))) : query,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n idsToUpdate = selectDistinctResult?.map((doc) => doc.id)\n } else if (whereToUse && !joins.length) {\n // If id wasn't passed but `where` without any joins, retrieve it with findFirst\n\n const _db = db as LibSQLDatabase\n\n const table = this.tables[tableName]\n\n let query = _db.select({ id: table.id }).from(table).where(where).$dynamic()\n\n if (typeof limit === 'number' && limit > 0) {\n query = query.limit(limit)\n }\n\n if (orderBy) {\n query = query.orderBy(() => orderBy.map(({ column, order }) => order(column)))\n }\n\n const docsToUpdate = await query\n\n idsToUpdate = docsToUpdate?.map((doc) => doc.id)\n }\n\n if (!idsToUpdate.length) {\n return []\n }\n\n const results = []\n\n // TODO: We need to batch this to reduce the amount of db calls. This can get very slow if we are updating a lot of rows.\n for (const idToUpdate of idsToUpdate) {\n const result = await upsertRow({\n id: idToUpdate,\n adapter: this,\n data,\n db,\n fields: collection.flattenedFields,\n ignoreResult: returning === false,\n joinQuery,\n operation: 'update',\n req,\n select,\n tableName,\n })\n results.push(result)\n }\n\n if (returning === false) {\n return null\n }\n\n return results\n}\n"],"names":["toSnakeCase","buildQuery","selectDistinct","upsertRow","getTransaction","updateMany","collection","collectionSlug","data","joins","joinQuery","limit","locale","req","returning","select","sort","sortArg","where","whereToUse","db","payload","collections","config","tableName","tableNameMap","get","slug","undefined","defaultSort","orderBy","selectFields","adapter","fields","flattenedFields","idsToUpdate","selectDistinctResult","query","map","column","order","id","doc","length","_db","table","tables","from","$dynamic","docsToUpdate","results","idToUpdate","result","ignoreResult","operation","push"],"mappings":"AAGA,OAAOA,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,aAAyB,eAAeA,WAEnD,EACEC,YAAYC,cAAc,EAC1BC,IAAI,EACJC,OAAOC,SAAS,EAChBC,KAAK,EACLC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,MAAMC,OAAO,EACbC,OAAOC,UAAU,EAClB;IAED,MAAMC,KAAK,MAAMhB,eAAe,IAAI,EAAES;IACtC,MAAMP,aAAa,IAAI,CAACe,OAAO,CAACC,WAAW,CAACf,eAAe,CAACgB,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC1B,YAAYM,WAAWqB,IAAI;IAEnE,MAAMX,OAAOC,YAAYW,aAAaX,YAAY,OAAOA,UAAUX,WAAWuB,WAAW;IAEzF,MAAM,EAAEpB,KAAK,EAAEqB,OAAO,EAAEC,YAAY,EAAEb,KAAK,EAAE,GAAGjB,WAAW;QACzD+B,SAAS,IAAI;QACbC,QAAQ3B,WAAW4B,eAAe;QAClCtB;QACAI;QACAQ;QACAN,OAAOC;IACT;IAEA,IAAIgB,cAAmC,EAAE;IAEzC,MAAMC,uBAAuB,MAAMlC,eAAe;QAChD8B,SAAS,IAAI;QACbZ;QACAX;QACA4B,OAAO,CAAC,EAAEA,KAAK,EAAE,GACfP,UAAUO,MAAMP,OAAO,CAAC,IAAMA,QAAQQ,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAKA,MAAMD,YAAYF;QACrFN;QACAP;QACAN;IACF;IAEA,IAAIkB,sBAAsB,CAAC,EAAE,EAAEK,IAAI;QACjCN,cAAcC,sBAAsBE,IAAI,CAACI,MAAQA,IAAID,EAAE;IACzD,OAAO,IAAItB,cAAc,CAACV,MAAMkC,MAAM,EAAE;QACtC,gFAAgF;QAEhF,MAAMC,MAAMxB;QAEZ,MAAMyB,QAAQ,IAAI,CAACC,MAAM,CAACtB,UAAU;QAEpC,IAAIa,QAAQO,IAAI7B,MAAM,CAAC;YAAE0B,IAAII,MAAMJ,EAAE;QAAC,GAAGM,IAAI,CAACF,OAAO3B,KAAK,CAACA,OAAO8B,QAAQ;QAE1E,IAAI,OAAOrC,UAAU,YAAYA,QAAQ,GAAG;YAC1C0B,QAAQA,MAAM1B,KAAK,CAACA;QACtB;QAEA,IAAImB,SAAS;YACXO,QAAQA,MAAMP,OAAO,CAAC,IAAMA,QAAQQ,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAKA,MAAMD;QACvE;QAEA,MAAMU,eAAe,MAAMZ;QAE3BF,cAAcc,cAAcX,IAAI,CAACI,MAAQA,IAAID,EAAE;IACjD;IAEA,IAAI,CAACN,YAAYQ,MAAM,EAAE;QACvB,OAAO,EAAE;IACX;IAEA,MAAMO,UAAU,EAAE;IAElB,yHAAyH;IACzH,KAAK,MAAMC,cAAchB,YAAa;QACpC,MAAMiB,SAAS,MAAMjD,UAAU;YAC7BsC,IAAIU;YACJnB,SAAS,IAAI;YACbxB;YACAY;YACAa,QAAQ3B,WAAW4B,eAAe;YAClCmB,cAAcvC,cAAc;YAC5BJ;YACA4C,WAAW;YACXzC;YACAE;YACAS;QACF;QACA0B,QAAQK,IAAI,CAACH;IACf;IAEA,IAAItC,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOoC;AACT,EAAC"}
|
package/dist/updateOne.js
CHANGED
|
@@ -19,16 +19,9 @@ export const updateOne = async function updateOne({ id, collection: collectionSl
|
|
|
19
19
|
// selectDistinct will only return if there are joins
|
|
20
20
|
const selectDistinctResult = await selectDistinct({
|
|
21
21
|
adapter: this,
|
|
22
|
-
chainedMethods: [
|
|
23
|
-
{
|
|
24
|
-
args: [
|
|
25
|
-
1
|
|
26
|
-
],
|
|
27
|
-
method: 'limit'
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
22
|
db,
|
|
31
23
|
joins,
|
|
24
|
+
query: ({ query })=>query.limit(1),
|
|
32
25
|
selectFields,
|
|
33
26
|
tableName,
|
|
34
27
|
where
|
package/dist/updateOne.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/updateOne.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { UpdateOne } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const updateOne: UpdateOne = async function updateOne(\n this: DrizzleAdapter,\n {\n id,\n collection: collectionSlug,\n data,\n joins: joinQuery,\n locale,\n req,\n returning,\n select,\n where: whereArg,\n },\n) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n let idToUpdate = id\n\n if (!idToUpdate) {\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.flattenedFields,\n locale,\n tableName,\n where: whereArg,\n })\n\n // selectDistinct will only return if there are joins\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n
|
|
1
|
+
{"version":3,"sources":["../src/updateOne.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { UpdateOne } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const updateOne: UpdateOne = async function updateOne(\n this: DrizzleAdapter,\n {\n id,\n collection: collectionSlug,\n data,\n joins: joinQuery,\n locale,\n req,\n returning,\n select,\n where: whereArg,\n },\n) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n let idToUpdate = id\n\n if (!idToUpdate) {\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.flattenedFields,\n locale,\n tableName,\n where: whereArg,\n })\n\n // selectDistinct will only return if there are joins\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n joins,\n query: ({ query }) => query.limit(1),\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n idToUpdate = selectDistinctResult?.[0]?.id\n // If id wasn't passed but `where` without any joins, retrieve it with findFirst\n } else if (whereArg && !joins.length) {\n const table = this.tables[tableName]\n\n const docsToUpdate = await (db as LibSQLDatabase)\n .select({\n id: table.id,\n })\n .from(table)\n .where(where)\n .limit(1)\n idToUpdate = docsToUpdate?.[0]?.id\n }\n }\n\n const result = await upsertRow({\n id: idToUpdate,\n adapter: this,\n data,\n db,\n fields: collection.flattenedFields,\n ignoreResult: returning === false,\n joinQuery,\n operation: 'update',\n req,\n select,\n tableName,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["toSnakeCase","buildQuery","selectDistinct","upsertRow","getTransaction","updateOne","id","collection","collectionSlug","data","joins","joinQuery","locale","req","returning","select","where","whereArg","db","payload","collections","config","tableName","tableNameMap","get","slug","idToUpdate","selectFields","adapter","fields","flattenedFields","selectDistinctResult","query","limit","length","table","tables","docsToUpdate","from","result","ignoreResult","operation"],"mappings":"AAGA,OAAOA,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EACEC,EAAE,EACFC,YAAYC,cAAc,EAC1BC,IAAI,EACJC,OAAOC,SAAS,EAChBC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,OAAOC,QAAQ,EAChB;IAED,MAAMC,KAAK,MAAMd,eAAe,IAAI,EAAES;IACtC,MAAMN,aAAa,IAAI,CAACY,OAAO,CAACC,WAAW,CAACZ,eAAe,CAACa,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACxB,YAAYO,WAAWkB,IAAI;IACnE,IAAIC,aAAapB;IAEjB,IAAI,CAACoB,YAAY;QACf,MAAM,EAAEhB,KAAK,EAAEiB,YAAY,EAAEX,KAAK,EAAE,GAAGf,WAAW;YAChD2B,SAAS,IAAI;YACbC,QAAQtB,WAAWuB,eAAe;YAClClB;YACAU;YACAN,OAAOC;QACT;QAEA,qDAAqD;QACrD,MAAMc,uBAAuB,MAAM7B,eAAe;YAChD0B,SAAS,IAAI;YACbV;YACAR;YACAsB,OAAO,CAAC,EAAEA,KAAK,EAAE,GAAKA,MAAMC,KAAK,CAAC;YAClCN;YACAL;YACAN;QACF;QAEA,IAAIe,sBAAsB,CAAC,EAAE,EAAEzB,IAAI;YACjCoB,aAAaK,sBAAsB,CAAC,EAAE,EAAEzB;QACxC,gFAAgF;QAClF,OAAO,IAAIW,YAAY,CAACP,MAAMwB,MAAM,EAAE;YACpC,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACd,UAAU;YAEpC,MAAMe,eAAe,MAAM,AAACnB,GACzBH,MAAM,CAAC;gBACNT,IAAI6B,MAAM7B,EAAE;YACd,GACCgC,IAAI,CAACH,OACLnB,KAAK,CAACA,OACNiB,KAAK,CAAC;YACTP,aAAaW,cAAc,CAAC,EAAE,EAAE/B;QAClC;IACF;IAEA,MAAMiC,SAAS,MAAMpC,UAAU;QAC7BG,IAAIoB;QACJE,SAAS,IAAI;QACbnB;QACAS;QACAW,QAAQtB,WAAWuB,eAAe;QAClCU,cAAc1B,cAAc;QAC5BH;QACA8B,WAAW;QACX5B;QACAE;QACAO;IACF;IAEA,IAAIR,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOyB;AACT,EAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/drizzle",
|
|
3
|
-
"version": "3.32.0
|
|
3
|
+
"version": "3.32.0",
|
|
4
4
|
"description": "A library of shared functions used by different payload database adapters",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"default": "./dist/exports/postgres.js"
|
|
31
31
|
},
|
|
32
32
|
"./types": {
|
|
33
|
-
"import": "./dist/types.js",
|
|
34
|
-
"types": "./dist/types.d.ts",
|
|
35
|
-
"default": "./dist/types.js"
|
|
33
|
+
"import": "./dist/exports/types-deprecated.js",
|
|
34
|
+
"types": "./dist/exports/types-deprecated.d.ts",
|
|
35
|
+
"default": "./dist/exports/types-deprecated.js"
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"main": "./dist/index.js",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"@types/pg": "8.10.2",
|
|
54
54
|
"@types/to-snake-case": "1.0.0",
|
|
55
55
|
"@payloadcms/eslint-config": "3.28.0",
|
|
56
|
-
"payload": "3.32.0
|
|
56
|
+
"payload": "3.32.0"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"payload": "3.32.0
|
|
59
|
+
"payload": "3.32.0"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "pnpm build:swc && pnpm build:types",
|