@payloadcms/db-sqlite 3.50.0-internal.ca62628 → 3.50.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/columnToCodeConverter.d.ts +3 -0
- package/dist/columnToCodeConverter.d.ts.map +1 -0
- package/dist/columnToCodeConverter.js +107 -0
- package/dist/columnToCodeConverter.js.map +1 -0
- package/dist/countDistinct.d.ts +3 -0
- package/dist/countDistinct.d.ts.map +1 -0
- package/dist/countDistinct.js +24 -0
- package/dist/countDistinct.js.map +1 -0
- package/dist/createJSONQuery/convertPathToJSONTraversal.d.ts +2 -0
- package/dist/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -0
- package/dist/createJSONQuery/convertPathToJSONTraversal.js +12 -0
- package/dist/createJSONQuery/convertPathToJSONTraversal.js.map +1 -0
- package/dist/createJSONQuery/index.d.ts +3 -0
- package/dist/createJSONQuery/index.d.ts.map +1 -0
- package/dist/createJSONQuery/index.js +79 -0
- package/dist/createJSONQuery/index.js.map +1 -0
- package/dist/defaultSnapshot.d.ts +3 -0
- package/dist/defaultSnapshot.d.ts.map +1 -0
- package/dist/defaultSnapshot.js +15 -0
- package/dist/defaultSnapshot.js.map +1 -0
- package/dist/deleteWhere.d.ts +3 -0
- package/dist/deleteWhere.d.ts.map +1 -0
- package/dist/deleteWhere.js +6 -0
- package/dist/deleteWhere.js.map +1 -0
- package/dist/dropDatabase.d.ts +3 -0
- package/dist/dropDatabase.d.ts.map +1 -0
- package/dist/dropDatabase.js +19 -0
- package/dist/dropDatabase.js.map +1 -0
- package/dist/execute.d.ts +3 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +13 -0
- package/dist/execute.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +3 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +40 -0
- package/dist/init.js.map +1 -0
- package/dist/insert.d.ts +3 -0
- package/dist/insert.d.ts.map +1 -0
- package/dist/insert.js +8 -0
- package/dist/insert.js.map +1 -0
- package/dist/requireDrizzleKit.d.ts +3 -0
- package/dist/requireDrizzleKit.d.ts.map +1 -0
- package/dist/requireDrizzleKit.js +12 -0
- package/dist/requireDrizzleKit.js.map +1 -0
- package/dist/schema/buildDrizzleTable.d.ts +3 -0
- package/dist/schema/buildDrizzleTable.d.ts.map +1 -0
- package/dist/schema/buildDrizzleTable.js +143 -0
- package/dist/schema/buildDrizzleTable.js.map +1 -0
- package/dist/schema/setColumnID.d.ts +3 -0
- package/dist/schema/setColumnID.d.ts.map +1 -0
- package/dist/schema/setColumnID.js +39 -0
- package/dist/schema/setColumnID.js.map +1 -0
- package/dist/types.d.ts +54 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columnToCodeConverter.d.ts","sourceRoot":"","sources":["../src/columnToCodeConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEtE,eAAO,MAAM,qBAAqB,EAAE,qBAoInC,CAAA"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export const columnToCodeConverter = ({ adapter, addImport, column, locales, tableKey })=>{
|
|
2
|
+
let columnBuilderFn = column.type;
|
|
3
|
+
const columnBuilderArgsArray = [];
|
|
4
|
+
let defaultStatement = null;
|
|
5
|
+
switch(column.type){
|
|
6
|
+
case 'boolean':
|
|
7
|
+
{
|
|
8
|
+
columnBuilderFn = 'integer';
|
|
9
|
+
columnBuilderArgsArray.push("mode: 'boolean'");
|
|
10
|
+
break;
|
|
11
|
+
}
|
|
12
|
+
case 'enum':
|
|
13
|
+
{
|
|
14
|
+
let options;
|
|
15
|
+
if ('locale' in column) {
|
|
16
|
+
if (!locales?.length) {
|
|
17
|
+
throw new Error('Locales must be defined for locale columns');
|
|
18
|
+
}
|
|
19
|
+
options = locales;
|
|
20
|
+
} else {
|
|
21
|
+
options = column.options;
|
|
22
|
+
}
|
|
23
|
+
columnBuilderFn = 'text';
|
|
24
|
+
columnBuilderArgsArray.push(`enum: [${options.map((locale)=>`'${locale}'`).join(', ')}]`);
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
case 'geometry':
|
|
28
|
+
case 'jsonb':
|
|
29
|
+
{
|
|
30
|
+
columnBuilderFn = 'text';
|
|
31
|
+
columnBuilderArgsArray.push("mode: 'json'");
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
case 'serial':
|
|
35
|
+
{
|
|
36
|
+
columnBuilderFn = 'integer';
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case 'timestamp':
|
|
40
|
+
{
|
|
41
|
+
columnBuilderFn = 'text';
|
|
42
|
+
defaultStatement = `default(sql\`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\`)`;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
case 'uuid':
|
|
46
|
+
{
|
|
47
|
+
columnBuilderFn = 'text';
|
|
48
|
+
if (column.defaultRandom) {
|
|
49
|
+
addImport('crypto', 'randomUUID');
|
|
50
|
+
defaultStatement = `$defaultFn(() => randomUUID())`;
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case 'varchar':
|
|
55
|
+
{
|
|
56
|
+
columnBuilderFn = 'text';
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
default:
|
|
60
|
+
{
|
|
61
|
+
columnBuilderFn = column.type;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
addImport(`${adapter.packageName}/drizzle/sqlite-core`, columnBuilderFn);
|
|
65
|
+
let columnBuilderArgs = '';
|
|
66
|
+
if (columnBuilderArgsArray.length) {
|
|
67
|
+
columnBuilderArgs = `, {${columnBuilderArgsArray.join(',')}}`;
|
|
68
|
+
}
|
|
69
|
+
let code = `${columnBuilderFn}('${column.name}'${columnBuilderArgs})`;
|
|
70
|
+
if (column.notNull) {
|
|
71
|
+
code = `${code}.notNull()`;
|
|
72
|
+
}
|
|
73
|
+
if (column.primaryKey) {
|
|
74
|
+
let arg = '';
|
|
75
|
+
if (column.type === 'integer' && column.autoIncrement) {
|
|
76
|
+
arg = `{ autoIncrement: true }`;
|
|
77
|
+
}
|
|
78
|
+
code = `${code}.primaryKey(${arg})`;
|
|
79
|
+
}
|
|
80
|
+
if (defaultStatement) {
|
|
81
|
+
code = `${code}.${defaultStatement}`;
|
|
82
|
+
} else if (typeof column.default !== 'undefined') {
|
|
83
|
+
let sanitizedDefault = column.default;
|
|
84
|
+
if (column.type === 'jsonb' || column.type === 'geometry') {
|
|
85
|
+
sanitizedDefault = `'${JSON.stringify(column.default)}'`;
|
|
86
|
+
} else if (typeof column.default === 'string') {
|
|
87
|
+
sanitizedDefault = JSON.stringify(column.default);
|
|
88
|
+
} else if (column.type === 'numeric') {
|
|
89
|
+
sanitizedDefault = `'${column.default}'`;
|
|
90
|
+
}
|
|
91
|
+
code = `${code}.default(${sanitizedDefault})`;
|
|
92
|
+
}
|
|
93
|
+
if (column.reference) {
|
|
94
|
+
let callback = `()`;
|
|
95
|
+
if (column.reference.table === tableKey) {
|
|
96
|
+
addImport(`${adapter.packageName}/drizzle/sqlite-core`, 'type AnySQLiteColumn');
|
|
97
|
+
callback = `${callback}: AnySQLiteColumn`;
|
|
98
|
+
}
|
|
99
|
+
callback = `${callback} => ${column.reference.table}.${column.reference.name}`;
|
|
100
|
+
code = `${code}.references(${callback}, {
|
|
101
|
+
${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}
|
|
102
|
+
})`;
|
|
103
|
+
}
|
|
104
|
+
return code;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=columnToCodeConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/columnToCodeConverter.ts"],"sourcesContent":["import type { ColumnToCodeConverter } from '@payloadcms/drizzle/types'\n\nexport const columnToCodeConverter: ColumnToCodeConverter = ({\n adapter,\n addImport,\n column,\n locales,\n tableKey,\n}) => {\n let columnBuilderFn: string = column.type\n\n const columnBuilderArgsArray: string[] = []\n\n let defaultStatement: null | string = null\n\n switch (column.type) {\n case 'boolean': {\n columnBuilderFn = 'integer'\n columnBuilderArgsArray.push(\"mode: 'boolean'\")\n break\n }\n\n case 'enum': {\n let options: string[]\n if ('locale' in column) {\n if (!locales?.length) {\n throw new Error('Locales must be defined for locale columns')\n }\n options = locales\n } else {\n options = column.options\n }\n\n columnBuilderFn = 'text'\n columnBuilderArgsArray.push(`enum: [${options.map((locale) => `'${locale}'`).join(', ')}]`)\n\n break\n }\n\n case 'geometry':\n case 'jsonb': {\n columnBuilderFn = 'text'\n columnBuilderArgsArray.push(\"mode: 'json'\")\n break\n }\n\n case 'serial': {\n columnBuilderFn = 'integer'\n break\n }\n\n case 'timestamp': {\n columnBuilderFn = 'text'\n defaultStatement = `default(sql\\`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\\`)`\n break\n }\n\n case 'uuid': {\n columnBuilderFn = 'text'\n\n if (column.defaultRandom) {\n addImport('crypto', 'randomUUID')\n defaultStatement = `$defaultFn(() => randomUUID())`\n }\n\n break\n }\n\n case 'varchar': {\n columnBuilderFn = 'text'\n break\n }\n\n default: {\n columnBuilderFn = column.type\n }\n }\n\n addImport(`${adapter.packageName}/drizzle/sqlite-core`, columnBuilderFn)\n\n let columnBuilderArgs = ''\n\n if (columnBuilderArgsArray.length) {\n columnBuilderArgs = `, {${columnBuilderArgsArray.join(',')}}`\n }\n\n let code = `${columnBuilderFn}('${column.name}'${columnBuilderArgs})`\n\n if (column.notNull) {\n code = `${code}.notNull()`\n }\n\n if (column.primaryKey) {\n let arg = ''\n\n if (column.type === 'integer' && column.autoIncrement) {\n arg = `{ autoIncrement: true }`\n }\n\n code = `${code}.primaryKey(${arg})`\n }\n\n if (defaultStatement) {\n code = `${code}.${defaultStatement}`\n } else if (typeof column.default !== 'undefined') {\n let sanitizedDefault = column.default\n\n if (column.type === 'jsonb' || column.type === 'geometry') {\n sanitizedDefault = `'${JSON.stringify(column.default)}'`\n } else if (typeof column.default === 'string') {\n sanitizedDefault = JSON.stringify(column.default)\n } else if (column.type === 'numeric') {\n sanitizedDefault = `'${column.default}'`\n }\n\n code = `${code}.default(${sanitizedDefault})`\n }\n\n if (column.reference) {\n let callback = `()`\n\n if (column.reference.table === tableKey) {\n addImport(`${adapter.packageName}/drizzle/sqlite-core`, 'type AnySQLiteColumn')\n callback = `${callback}: AnySQLiteColumn`\n }\n\n callback = `${callback} => ${column.reference.table}.${column.reference.name}`\n\n code = `${code}.references(${callback}, {\n ${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}\n })`\n }\n\n return code\n}\n"],"names":["columnToCodeConverter","adapter","addImport","column","locales","tableKey","columnBuilderFn","type","columnBuilderArgsArray","defaultStatement","push","options","length","Error","map","locale","join","defaultRandom","packageName","columnBuilderArgs","code","name","notNull","primaryKey","arg","autoIncrement","default","sanitizedDefault","JSON","stringify","reference","callback","table","onDelete"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"countDistinct.d.ts","sourceRoot":"","sources":["../src/countDistinct.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAA;AAE9D,eAAO,MAAM,aAAa,EAAE,aAoC3B,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { count, sql } from 'drizzle-orm';
|
|
2
|
+
export const countDistinct = async function countDistinct({ column, db, joins, tableName, where }) {
|
|
3
|
+
// When we don't have any joins - use a simple COUNT(*) query.
|
|
4
|
+
if (joins.length === 0) {
|
|
5
|
+
const countResult = await db.select({
|
|
6
|
+
count: column ? count(sql`DISTINCT ${column}`) : count()
|
|
7
|
+
}).from(this.tables[tableName]).where(where);
|
|
8
|
+
return Number(countResult?.[0]?.count ?? 0);
|
|
9
|
+
}
|
|
10
|
+
let query = db.select({
|
|
11
|
+
count: sql`COUNT(1) OVER()`
|
|
12
|
+
}).from(this.tables[tableName]).where(where).groupBy(column ?? this.tables[tableName].id).limit(1).$dynamic();
|
|
13
|
+
joins.forEach(({ type, condition, table })=>{
|
|
14
|
+
query = query[type ?? 'leftJoin'](table, condition);
|
|
15
|
+
});
|
|
16
|
+
// When we have any joins, we need to count each individual ID only once.
|
|
17
|
+
// COUNT(*) doesn't work for this well in this case, as it also counts joined tables.
|
|
18
|
+
// SELECT (COUNT DISTINCT id) has a very slow performance on large tables.
|
|
19
|
+
// Instead, COUNT (GROUP BY id) can be used which is still slower than COUNT(*) but acceptable.
|
|
20
|
+
const countResult = await query;
|
|
21
|
+
return Number(countResult?.[0]?.count ?? 0);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=countDistinct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/countDistinct.ts"],"sourcesContent":["import type { SQLiteSelect } from 'drizzle-orm/sqlite-core'\n\nimport { count, sql } from 'drizzle-orm'\n\nimport type { CountDistinct, SQLiteAdapter } from './types.js'\n\nexport const countDistinct: CountDistinct = async function countDistinct(\n this: SQLiteAdapter,\n { column, db, joins, tableName, where },\n) {\n // When we don't have any joins - use a simple COUNT(*) query.\n if (joins.length === 0) {\n const countResult = await db\n .select({\n count: column ? count(sql`DISTINCT ${column}`) : count(),\n })\n .from(this.tables[tableName])\n .where(where)\n return Number(countResult?.[0]?.count ?? 0)\n }\n\n let query: SQLiteSelect = db\n .select({\n count: sql`COUNT(1) OVER()`,\n })\n .from(this.tables[tableName])\n .where(where)\n .groupBy(column ?? this.tables[tableName].id)\n .limit(1)\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n query = query[type ?? 'leftJoin'](table, condition)\n })\n\n // When we have any joins, we need to count each individual ID only once.\n // COUNT(*) doesn't work for this well in this case, as it also counts joined tables.\n // SELECT (COUNT DISTINCT id) has a very slow performance on large tables.\n // Instead, COUNT (GROUP BY id) can be used which is still slower than COUNT(*) but acceptable.\n const countResult = await query\n\n return Number(countResult?.[0]?.count ?? 0)\n}\n"],"names":["count","sql","countDistinct","column","db","joins","tableName","where","length","countResult","select","from","tables","Number","query","groupBy","id","limit","$dynamic","forEach","type","condition","table"],"mappings":"AAEA,SAASA,KAAK,EAAEC,GAAG,QAAQ,cAAa;AAIxC,OAAO,MAAMC,gBAA+B,eAAeA,cAEzD,EAAEC,MAAM,EAAEC,EAAE,EAAEC,KAAK,EAAEC,SAAS,EAAEC,KAAK,EAAE;IAEvC,8DAA8D;IAC9D,IAAIF,MAAMG,MAAM,KAAK,GAAG;QACtB,MAAMC,cAAc,MAAML,GACvBM,MAAM,CAAC;YACNV,OAAOG,SAASH,MAAMC,GAAG,CAAC,SAAS,EAAEE,OAAO,CAAC,IAAIH;QACnD,GACCW,IAAI,CAAC,IAAI,CAACC,MAAM,CAACN,UAAU,EAC3BC,KAAK,CAACA;QACT,OAAOM,OAAOJ,aAAa,CAAC,EAAE,EAAET,SAAS;IAC3C;IAEA,IAAIc,QAAsBV,GACvBM,MAAM,CAAC;QACNV,OAAOC,GAAG,CAAC,eAAe,CAAC;IAC7B,GACCU,IAAI,CAAC,IAAI,CAACC,MAAM,CAACN,UAAU,EAC3BC,KAAK,CAACA,OACNQ,OAAO,CAACZ,UAAU,IAAI,CAACS,MAAM,CAACN,UAAU,CAACU,EAAE,EAC3CC,KAAK,CAAC,GACNC,QAAQ;IAEXb,MAAMc,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAEC,KAAK,EAAE;QACvCR,QAAQA,KAAK,CAACM,QAAQ,WAAW,CAACE,OAAOD;IAC3C;IAEA,yEAAyE;IACzE,qFAAqF;IACrF,0EAA0E;IAC1E,+FAA+F;IAC/F,MAAMZ,cAAc,MAAMK;IAE1B,OAAOD,OAAOJ,aAAa,CAAC,EAAE,EAAET,SAAS;AAC3C,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertPathToJSONTraversal.d.ts","sourceRoot":"","sources":["../../src/createJSONQuery/convertPathToJSONTraversal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qBAAsB,MAAM,EAAE,KAAG,MAQvE,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const convertPathToJSONTraversal = (incomingSegments)=>{
|
|
2
|
+
const segments = [
|
|
3
|
+
...incomingSegments
|
|
4
|
+
];
|
|
5
|
+
segments.shift();
|
|
6
|
+
return segments.reduce((res, segment)=>{
|
|
7
|
+
const formattedSegment = Number.isNaN(parseInt(segment)) ? `'${segment}'` : segment;
|
|
8
|
+
return `${res}->>${formattedSegment}`;
|
|
9
|
+
}, '');
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=convertPathToJSONTraversal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/createJSONQuery/convertPathToJSONTraversal.ts"],"sourcesContent":["export const convertPathToJSONTraversal = (incomingSegments: string[]): string => {\n const segments = [...incomingSegments]\n segments.shift()\n\n return segments.reduce((res, segment) => {\n const formattedSegment = Number.isNaN(parseInt(segment)) ? `'${segment}'` : segment\n return `${res}->>${formattedSegment}`\n }, '')\n}\n"],"names":["convertPathToJSONTraversal","incomingSegments","segments","shift","reduce","res","segment","formattedSegment","Number","isNaN","parseInt"],"mappings":"AAAA,OAAO,MAAMA,6BAA6B,CAACC;IACzC,MAAMC,WAAW;WAAID;KAAiB;IACtCC,SAASC,KAAK;IAEd,OAAOD,SAASE,MAAM,CAAC,CAACC,KAAKC;QAC3B,MAAMC,mBAAmBC,OAAOC,KAAK,CAACC,SAASJ,YAAY,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,GAAGA;QAC5E,OAAO,GAAGD,IAAI,GAAG,EAAEE,kBAAkB;IACvC,GAAG;AACL,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/createJSONQuery/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAyEpE,eAAO,MAAM,eAAe,iGASzB,mBAAmB,KAAG,MA0BxB,CAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const fromArray = ({ isRoot, operator, pathSegments, table, treatAsArray, value })=>{
|
|
2
|
+
const newPathSegments = pathSegments.slice(1);
|
|
3
|
+
const alias = `${pathSegments[isRoot ? 0 : 1]}_alias_${newPathSegments.length}`;
|
|
4
|
+
return `EXISTS (
|
|
5
|
+
SELECT 1
|
|
6
|
+
FROM json_each(${table}.${pathSegments[0]}) AS ${alias}
|
|
7
|
+
WHERE ${createJSONQuery({
|
|
8
|
+
operator,
|
|
9
|
+
pathSegments: newPathSegments,
|
|
10
|
+
table: alias,
|
|
11
|
+
treatAsArray,
|
|
12
|
+
value
|
|
13
|
+
})}
|
|
14
|
+
)`;
|
|
15
|
+
};
|
|
16
|
+
const createConstraint = ({ alias, operator, pathSegments, value })=>{
|
|
17
|
+
const newAlias = `${pathSegments[0]}_alias_${pathSegments.length - 1}`;
|
|
18
|
+
let formattedValue = value;
|
|
19
|
+
let formattedOperator = operator;
|
|
20
|
+
if ([
|
|
21
|
+
'contains',
|
|
22
|
+
'like'
|
|
23
|
+
].includes(operator)) {
|
|
24
|
+
formattedOperator = 'like';
|
|
25
|
+
formattedValue = `%${value}%`;
|
|
26
|
+
} else if ([
|
|
27
|
+
'not_like',
|
|
28
|
+
'notlike'
|
|
29
|
+
].includes(operator)) {
|
|
30
|
+
formattedOperator = 'not like';
|
|
31
|
+
formattedValue = `%${value}%`;
|
|
32
|
+
} else if (operator === 'equals') {
|
|
33
|
+
formattedOperator = '=';
|
|
34
|
+
}
|
|
35
|
+
if (pathSegments.length === 1) {
|
|
36
|
+
return `EXISTS (SELECT 1 FROM json_each("${pathSegments[0]}") AS ${newAlias} WHERE ${newAlias}.value ${formattedOperator} '${formattedValue}')`;
|
|
37
|
+
}
|
|
38
|
+
return `EXISTS (
|
|
39
|
+
SELECT 1
|
|
40
|
+
FROM json_each(${alias}.value -> '${pathSegments[0]}') AS ${newAlias}
|
|
41
|
+
WHERE COALESCE(${newAlias}.value ->> '${pathSegments[1]}', '') ${formattedOperator} '${formattedValue}'
|
|
42
|
+
)`;
|
|
43
|
+
};
|
|
44
|
+
export const createJSONQuery = ({ column, operator, pathSegments, rawColumn, table, treatAsArray, treatRootAsArray, value })=>{
|
|
45
|
+
if ((operator === 'in' || operator === 'not_in') && Array.isArray(value)) {
|
|
46
|
+
let sql = '';
|
|
47
|
+
for (const [i, v] of value.entries()){
|
|
48
|
+
sql = `${sql}${createJSONQuery({
|
|
49
|
+
column,
|
|
50
|
+
operator: operator === 'in' ? 'equals' : 'not_equals',
|
|
51
|
+
pathSegments,
|
|
52
|
+
rawColumn,
|
|
53
|
+
table,
|
|
54
|
+
treatAsArray,
|
|
55
|
+
treatRootAsArray,
|
|
56
|
+
value: v
|
|
57
|
+
})} ${i === value.length - 1 ? '' : ` ${operator === 'in' ? 'OR' : 'AND'} `}`;
|
|
58
|
+
}
|
|
59
|
+
return sql;
|
|
60
|
+
}
|
|
61
|
+
if (treatAsArray?.includes(pathSegments[1]) && table) {
|
|
62
|
+
return fromArray({
|
|
63
|
+
operator,
|
|
64
|
+
pathSegments,
|
|
65
|
+
table,
|
|
66
|
+
treatAsArray,
|
|
67
|
+
value: value
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return createConstraint({
|
|
71
|
+
alias: table,
|
|
72
|
+
operator,
|
|
73
|
+
pathSegments,
|
|
74
|
+
treatAsArray,
|
|
75
|
+
value: value
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/createJSONQuery/index.ts"],"sourcesContent":["import type { CreateJSONQueryArgs } from '@payloadcms/drizzle/types'\n\ntype FromArrayArgs = {\n isRoot?: true\n operator: string\n pathSegments: string[]\n table: string\n treatAsArray?: string[]\n value: boolean | number | string\n}\n\nconst fromArray = ({\n isRoot,\n operator,\n pathSegments,\n table,\n treatAsArray,\n value,\n}: FromArrayArgs) => {\n const newPathSegments = pathSegments.slice(1)\n const alias = `${pathSegments[isRoot ? 0 : 1]}_alias_${newPathSegments.length}`\n\n return `EXISTS (\n SELECT 1\n FROM json_each(${table}.${pathSegments[0]}) AS ${alias}\n WHERE ${createJSONQuery({\n operator,\n pathSegments: newPathSegments,\n table: alias,\n treatAsArray,\n value,\n })}\n )`\n}\n\ntype CreateConstraintArgs = {\n alias?: string\n operator: string\n pathSegments: string[]\n treatAsArray?: string[]\n value: boolean | number | string\n}\n\nconst createConstraint = ({\n alias,\n operator,\n pathSegments,\n value,\n}: CreateConstraintArgs): string => {\n const newAlias = `${pathSegments[0]}_alias_${pathSegments.length - 1}`\n let formattedValue = value\n let formattedOperator = operator\n if (['contains', 'like'].includes(operator)) {\n formattedOperator = 'like'\n formattedValue = `%${value}%`\n } else if (['not_like', 'notlike'].includes(operator)) {\n formattedOperator = 'not like'\n formattedValue = `%${value}%`\n } else if (operator === 'equals') {\n formattedOperator = '='\n }\n\n if (pathSegments.length === 1) {\n return `EXISTS (SELECT 1 FROM json_each(\"${pathSegments[0]}\") AS ${newAlias} WHERE ${newAlias}.value ${formattedOperator} '${formattedValue}')`\n }\n\n return `EXISTS (\n SELECT 1\n FROM json_each(${alias}.value -> '${pathSegments[0]}') AS ${newAlias}\n WHERE COALESCE(${newAlias}.value ->> '${pathSegments[1]}', '') ${formattedOperator} '${formattedValue}'\n )`\n}\n\nexport const createJSONQuery = ({\n column,\n operator,\n pathSegments,\n rawColumn,\n table,\n treatAsArray,\n treatRootAsArray,\n value,\n}: CreateJSONQueryArgs): string => {\n if ((operator === 'in' || operator === 'not_in') && Array.isArray(value)) {\n let sql = ''\n for (const [i, v] of value.entries()) {\n sql = `${sql}${createJSONQuery({ column, operator: operator === 'in' ? 'equals' : 'not_equals', pathSegments, rawColumn, table, treatAsArray, treatRootAsArray, value: v })} ${i === value.length - 1 ? '' : ` ${operator === 'in' ? 'OR' : 'AND'} `}`\n }\n return sql\n }\n\n if (treatAsArray?.includes(pathSegments[1]!) && table) {\n return fromArray({\n operator,\n pathSegments,\n table,\n treatAsArray,\n value: value as CreateConstraintArgs['value'],\n })\n }\n\n return createConstraint({\n alias: table,\n operator,\n pathSegments,\n treatAsArray,\n value: value as CreateConstraintArgs['value'],\n })\n}\n"],"names":["fromArray","isRoot","operator","pathSegments","table","treatAsArray","value","newPathSegments","slice","alias","length","createJSONQuery","createConstraint","newAlias","formattedValue","formattedOperator","includes","column","rawColumn","treatRootAsArray","Array","isArray","sql","i","v","entries"],"mappings":"AAWA,MAAMA,YAAY,CAAC,EACjBC,MAAM,EACNC,QAAQ,EACRC,YAAY,EACZC,KAAK,EACLC,YAAY,EACZC,KAAK,EACS;IACd,MAAMC,kBAAkBJ,aAAaK,KAAK,CAAC;IAC3C,MAAMC,QAAQ,GAAGN,YAAY,CAACF,SAAS,IAAI,EAAE,CAAC,OAAO,EAAEM,gBAAgBG,MAAM,EAAE;IAE/E,OAAO,CAAC;;mBAES,EAAEN,MAAM,CAAC,EAAED,YAAY,CAAC,EAAE,CAAC,KAAK,EAAEM,MAAM;UACjD,EAAEE,gBAAgB;QACtBT;QACAC,cAAcI;QACdH,OAAOK;QACPJ;QACAC;IACF,GAAG;GACJ,CAAC;AACJ;AAUA,MAAMM,mBAAmB,CAAC,EACxBH,KAAK,EACLP,QAAQ,EACRC,YAAY,EACZG,KAAK,EACgB;IACrB,MAAMO,WAAW,GAAGV,YAAY,CAAC,EAAE,CAAC,OAAO,EAAEA,aAAaO,MAAM,GAAG,GAAG;IACtE,IAAII,iBAAiBR;IACrB,IAAIS,oBAAoBb;IACxB,IAAI;QAAC;QAAY;KAAO,CAACc,QAAQ,CAACd,WAAW;QAC3Ca,oBAAoB;QACpBD,iBAAiB,CAAC,CAAC,EAAER,MAAM,CAAC,CAAC;IAC/B,OAAO,IAAI;QAAC;QAAY;KAAU,CAACU,QAAQ,CAACd,WAAW;QACrDa,oBAAoB;QACpBD,iBAAiB,CAAC,CAAC,EAAER,MAAM,CAAC,CAAC;IAC/B,OAAO,IAAIJ,aAAa,UAAU;QAChCa,oBAAoB;IACtB;IAEA,IAAIZ,aAAaO,MAAM,KAAK,GAAG;QAC7B,OAAO,CAAC,iCAAiC,EAAEP,YAAY,CAAC,EAAE,CAAC,MAAM,EAAEU,SAAS,OAAO,EAAEA,SAAS,OAAO,EAAEE,kBAAkB,EAAE,EAAED,eAAe,EAAE,CAAC;IACjJ;IAEA,OAAO,CAAC;;iBAEO,EAAEL,MAAM,WAAW,EAAEN,YAAY,CAAC,EAAE,CAAC,MAAM,EAAEU,SAAS;iBACtD,EAAEA,SAAS,YAAY,EAAEV,YAAY,CAAC,EAAE,CAAC,OAAO,EAAEY,kBAAkB,EAAE,EAAED,eAAe;GACrG,CAAC;AACJ;AAEA,OAAO,MAAMH,kBAAkB,CAAC,EAC9BM,MAAM,EACNf,QAAQ,EACRC,YAAY,EACZe,SAAS,EACTd,KAAK,EACLC,YAAY,EACZc,gBAAgB,EAChBb,KAAK,EACe;IACpB,IAAI,AAACJ,CAAAA,aAAa,QAAQA,aAAa,QAAO,KAAMkB,MAAMC,OAAO,CAACf,QAAQ;QACxE,IAAIgB,MAAM;QACV,KAAK,MAAM,CAACC,GAAGC,EAAE,IAAIlB,MAAMmB,OAAO,GAAI;YACpCH,MAAM,GAAGA,MAAMX,gBAAgB;gBAAEM;gBAAQf,UAAUA,aAAa,OAAO,WAAW;gBAAcC;gBAAce;gBAAWd;gBAAOC;gBAAcc;gBAAkBb,OAAOkB;YAAE,GAAG,CAAC,EAAED,MAAMjB,MAAMI,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAER,aAAa,OAAO,OAAO,MAAM,CAAC,CAAC,EAAE;QACxP;QACA,OAAOoB;IACT;IAEA,IAAIjB,cAAcW,SAASb,YAAY,CAAC,EAAE,KAAMC,OAAO;QACrD,OAAOJ,UAAU;YACfE;YACAC;YACAC;YACAC;YACAC,OAAOA;QACT;IACF;IAEA,OAAOM,iBAAiB;QACtBH,OAAOL;QACPF;QACAC;QACAE;QACAC,OAAOA;IACT;AACF,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultSnapshot.d.ts","sourceRoot":"","sources":["../src/defaultSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAEhE,eAAO,MAAM,sBAAsB,EAAE,yBAYpC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const defaultDrizzleSnapshot = {
|
|
2
|
+
id: '00000000-0000-0000-0000-000000000000',
|
|
3
|
+
_meta: {
|
|
4
|
+
columns: {},
|
|
5
|
+
tables: {}
|
|
6
|
+
},
|
|
7
|
+
dialect: 'sqlite',
|
|
8
|
+
enums: {},
|
|
9
|
+
prevId: '00000000-0000-0000-0000-00000000000',
|
|
10
|
+
tables: {},
|
|
11
|
+
version: '6',
|
|
12
|
+
views: {}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=defaultSnapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/defaultSnapshot.ts"],"sourcesContent":["import type { DrizzleSQLiteSnapshotJSON } from 'drizzle-kit/api'\n\nexport const defaultDrizzleSnapshot: DrizzleSQLiteSnapshotJSON = {\n id: '00000000-0000-0000-0000-000000000000',\n _meta: {\n columns: {},\n tables: {},\n },\n dialect: 'sqlite',\n enums: {},\n prevId: '00000000-0000-0000-0000-00000000000',\n tables: {},\n version: '6',\n views: {},\n}\n"],"names":["defaultDrizzleSnapshot","id","_meta","columns","tables","dialect","enums","prevId","version","views"],"mappings":"AAEA,OAAO,MAAMA,yBAAoD;IAC/DC,IAAI;IACJC,OAAO;QACLC,SAAS,CAAC;QACVC,QAAQ,CAAC;IACX;IACAC,SAAS;IACTC,OAAO,CAAC;IACRC,QAAQ;IACRH,QAAQ,CAAC;IACTI,SAAS;IACTC,OAAO,CAAC;AACV,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteWhere.d.ts","sourceRoot":"","sources":["../src/deleteWhere.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAA;AAE5D,eAAO,MAAM,WAAW,EAAE,WAQzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/deleteWhere.ts"],"sourcesContent":["import type { DeleteWhere, SQLiteAdapter } from './types.js'\n\nexport const deleteWhere: DeleteWhere = async function (\n // Here 'this' is not a parameter. See:\n // https://www.typescriptlang.org/docs/handbook/2/classes.html#this-parameters\n this: SQLiteAdapter,\n { db, tableName, where },\n) {\n const table = this.tables[tableName]\n await db.delete(table).where(where)\n}\n"],"names":["deleteWhere","db","tableName","where","table","tables","delete"],"mappings":"AAEA,OAAO,MAAMA,cAA2B,eAItC,EAAEC,EAAE,EAAEC,SAAS,EAAEC,KAAK,EAAE;IAExB,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IACpC,MAAMD,GAAGK,MAAM,CAACF,OAAOD,KAAK,CAACA;AAC/B,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropDatabase.d.ts","sourceRoot":"","sources":["../src/dropDatabase.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAA;AAiB7D,eAAO,MAAM,YAAY,EAAE,YAG1B,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const getTables = (adapter)=>{
|
|
2
|
+
return adapter.client.execute(`SELECT name
|
|
3
|
+
FROM sqlite_master
|
|
4
|
+
WHERE type = 'table'
|
|
5
|
+
AND name NOT LIKE 'sqlite_%';`);
|
|
6
|
+
};
|
|
7
|
+
const dropTables = (adapter, rows)=>{
|
|
8
|
+
const multi = `
|
|
9
|
+
PRAGMA foreign_keys = OFF;\n
|
|
10
|
+
${rows.map(({ name })=>`DROP TABLE IF EXISTS ${name}`).join(';\n ')};\n
|
|
11
|
+
PRAGMA foreign_keys = ON;`;
|
|
12
|
+
return adapter.client.executeMultiple(multi);
|
|
13
|
+
};
|
|
14
|
+
export const dropDatabase = async function({ adapter }) {
|
|
15
|
+
const result = await getTables(adapter);
|
|
16
|
+
await dropTables(adapter, result.rows);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=dropDatabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/dropDatabase.ts"],"sourcesContent":["import type { Row } from '@libsql/client'\n\nimport type { DropDatabase, SQLiteAdapter } from './types.js'\n\nconst getTables = (adapter: SQLiteAdapter) => {\n return adapter.client.execute(`SELECT name\n FROM sqlite_master\n WHERE type = 'table'\n AND name NOT LIKE 'sqlite_%';`)\n}\n\nconst dropTables = (adapter: SQLiteAdapter, rows: Row[]) => {\n const multi = `\n PRAGMA foreign_keys = OFF;\\n\n ${rows.map(({ name }) => `DROP TABLE IF EXISTS ${name as string}`).join(';\\n ')};\\n\n PRAGMA foreign_keys = ON;`\n return adapter.client.executeMultiple(multi)\n}\n\nexport const dropDatabase: DropDatabase = async function ({ adapter }) {\n const result = await getTables(adapter)\n await dropTables(adapter, result.rows)\n}\n"],"names":["getTables","adapter","client","execute","dropTables","rows","multi","map","name","join","executeMultiple","dropDatabase","result"],"mappings":"AAIA,MAAMA,YAAY,CAACC;IACjB,OAAOA,QAAQC,MAAM,CAACC,OAAO,CAAC,CAAC;;;gEAG+B,CAAC;AACjE;AAEA,MAAMC,aAAa,CAACH,SAAwBI;IAC1C,MAAMC,QAAQ,CAAC;;EAEf,EAAED,KAAKE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAK,CAAC,qBAAqB,EAAEA,MAAgB,EAAEC,IAAI,CAAC,QAAQ;2BACvD,CAAC;IAC1B,OAAOR,QAAQC,MAAM,CAACQ,eAAe,CAACJ;AACxC;AAEA,OAAO,MAAMK,eAA6B,eAAgB,EAAEV,OAAO,EAAE;IACnE,MAAMW,SAAS,MAAMZ,UAAUC;IAC/B,MAAMG,WAAWH,SAASW,OAAOP,IAAI;AACvC,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,eAAO,MAAM,OAAO,EAAE,OAAO,CAAC,GAAG,CAUhC,CAAA"}
|
package/dist/execute.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { sql } from 'drizzle-orm';
|
|
2
|
+
export const execute = function execute({ db, drizzle, raw, sql: statement }) {
|
|
3
|
+
const executeFrom = db ?? drizzle;
|
|
4
|
+
if (raw) {
|
|
5
|
+
const result = executeFrom.run(sql.raw(raw));
|
|
6
|
+
return result;
|
|
7
|
+
} else {
|
|
8
|
+
const result = executeFrom.run(statement);
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/execute.ts"],"sourcesContent":["import { sql } from 'drizzle-orm'\n\nimport type { Execute } from './types.js'\n\nexport const execute: Execute<any> = function execute({ db, drizzle, raw, sql: statement }) {\n const executeFrom = (db ?? drizzle)!\n\n if (raw) {\n const result = executeFrom.run(sql.raw(raw))\n return result\n } else {\n const result = executeFrom.run(statement!)\n return result\n }\n}\n"],"names":["sql","execute","db","drizzle","raw","statement","executeFrom","result","run"],"mappings":"AAAA,SAASA,GAAG,QAAQ,cAAa;AAIjC,OAAO,MAAMC,UAAwB,SAASA,QAAQ,EAAEC,EAAE,EAAEC,OAAO,EAAEC,GAAG,EAAEJ,KAAKK,SAAS,EAAE;IACxF,MAAMC,cAAeJ,MAAMC;IAE3B,IAAIC,KAAK;QACP,MAAMG,SAASD,YAAYE,GAAG,CAACR,IAAII,GAAG,CAACA;QACvC,OAAOG;IACT,OAAO;QACL,MAAMA,SAASD,YAAYE,GAAG,CAACH;QAC/B,OAAOE;IACT;AACF,EAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAA;AA8C1D,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAiBrD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAAC,aAAa,CAAC,CA4I3E;AAED;;GAEG;AACH,YAAY,EACV,IAAI,IAAI,iBAAiB,EACzB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,OAAO,EACP,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,MAAM,EACN,MAAM,EACN,eAAe,EACf,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { beginTransaction, buildCreateMigration, commitTransaction, count, countGlobalVersions, countVersions, create, createGlobal, createGlobalVersion, createSchemaGenerator, createVersion, deleteMany, deleteOne, deleteVersions, destroy, find, findDistinct, findGlobal, findGlobalVersions, findMigrationDir, findOne, findVersions, migrate, migrateDown, migrateFresh, migrateRefresh, migrateReset, migrateStatus, operatorMap, queryDrafts, rollbackTransaction, updateGlobal, updateGlobalVersion, updateJobs, updateMany, updateOne, updateVersion, upsert } from '@payloadcms/drizzle';
|
|
2
|
-
import { columnToCodeConverter, convertPathToJSONTraversal, countDistinct, createJSONQuery, defaultDrizzleSnapshot, deleteWhere, dropDatabase, execute, init, insert, requireDrizzleKit } from '@payloadcms/drizzle/sqlite';
|
|
3
2
|
import { like, notLike } from 'drizzle-orm';
|
|
4
3
|
import { createDatabaseAdapter, defaultBeginTransaction } from 'payload';
|
|
5
4
|
import { fileURLToPath } from 'url';
|
|
5
|
+
import { columnToCodeConverter } from './columnToCodeConverter.js';
|
|
6
6
|
import { connect } from './connect.js';
|
|
7
|
+
import { countDistinct } from './countDistinct.js';
|
|
8
|
+
import { convertPathToJSONTraversal } from './createJSONQuery/convertPathToJSONTraversal.js';
|
|
9
|
+
import { createJSONQuery } from './createJSONQuery/index.js';
|
|
10
|
+
import { defaultDrizzleSnapshot } from './defaultSnapshot.js';
|
|
11
|
+
import { deleteWhere } from './deleteWhere.js';
|
|
12
|
+
import { dropDatabase } from './dropDatabase.js';
|
|
13
|
+
import { execute } from './execute.js';
|
|
14
|
+
import { init } from './init.js';
|
|
15
|
+
import { insert } from './insert.js';
|
|
16
|
+
import { requireDrizzleKit } from './requireDrizzleKit.js';
|
|
7
17
|
const filename = fileURLToPath(import.meta.url);
|
|
8
18
|
export function sqliteAdapter(args) {
|
|
9
19
|
const sqliteIDType = args.idType || 'number';
|
|
@@ -11,8 +21,8 @@ export function sqliteAdapter(args) {
|
|
|
11
21
|
const allowIDOnCreate = args.allowIDOnCreate ?? false;
|
|
12
22
|
function adapter({ payload }) {
|
|
13
23
|
const migrationDir = findMigrationDir(args.migrationDir);
|
|
14
|
-
let resolveInitializing
|
|
15
|
-
let rejectInitializing
|
|
24
|
+
let resolveInitializing;
|
|
25
|
+
let rejectInitializing;
|
|
16
26
|
const initializing = new Promise((res, rej)=>{
|
|
17
27
|
resolveInitializing = res;
|
|
18
28
|
rejectInitializing = rej;
|
|
@@ -102,6 +112,7 @@ export function sqliteAdapter(args) {
|
|
|
102
112
|
find,
|
|
103
113
|
findGlobal,
|
|
104
114
|
findGlobalVersions,
|
|
115
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
105
116
|
findOne,
|
|
106
117
|
findVersions,
|
|
107
118
|
indexes: new Set(),
|
|
@@ -117,8 +128,10 @@ export function sqliteAdapter(args) {
|
|
|
117
128
|
packageName: '@payloadcms/db-sqlite',
|
|
118
129
|
payload,
|
|
119
130
|
queryDrafts,
|
|
131
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
120
132
|
rejectInitializing,
|
|
121
133
|
requireDrizzleKit,
|
|
134
|
+
// @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
|
|
122
135
|
resolveInitializing,
|
|
123
136
|
rollbackTransaction,
|
|
124
137
|
updateGlobal,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Operators } from '@payloadcms/drizzle'\nimport type { DatabaseAdapterObj, Payload } from 'payload'\n\nimport {\n beginTransaction,\n buildCreateMigration,\n commitTransaction,\n count,\n countGlobalVersions,\n countVersions,\n create,\n createGlobal,\n createGlobalVersion,\n createSchemaGenerator,\n createVersion,\n deleteMany,\n deleteOne,\n deleteVersions,\n destroy,\n find,\n findDistinct,\n findGlobal,\n findGlobalVersions,\n findMigrationDir,\n findOne,\n findVersions,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n operatorMap,\n queryDrafts,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateJobs,\n updateMany,\n updateOne,\n updateVersion,\n upsert,\n} from '@payloadcms/drizzle'\nimport {\n columnToCodeConverter,\n convertPathToJSONTraversal,\n countDistinct,\n createJSONQuery,\n defaultDrizzleSnapshot,\n deleteWhere,\n dropDatabase,\n execute,\n init,\n insert,\n requireDrizzleKit,\n} from '@payloadcms/drizzle/sqlite'\nimport { like, notLike } from 'drizzle-orm'\nimport { createDatabaseAdapter, defaultBeginTransaction } from 'payload'\nimport { fileURLToPath } from 'url'\n\nimport type { Args, SQLiteAdapter } from './types.js'\n\nimport { connect } from './connect.js'\n\nconst filename = fileURLToPath(import.meta.url)\n\nexport function sqliteAdapter(args: Args): DatabaseAdapterObj<SQLiteAdapter> {\n const sqliteIDType = args.idType || 'number'\n const payloadIDType = sqliteIDType === 'uuid' ? 'text' : 'number'\n const allowIDOnCreate = args.allowIDOnCreate ?? false\n\n function adapter({ payload }: { payload: Payload }) {\n const migrationDir = findMigrationDir(args.migrationDir)\n let resolveInitializing: () => void = () => {}\n let rejectInitializing: () => void = () => {}\n\n const initializing = new Promise<void>((res, rej) => {\n resolveInitializing = res\n rejectInitializing = rej\n })\n\n // sqlite's like operator is case-insensitive, so we overwrite the DrizzleAdapter operators to not use ilike\n const operators = {\n ...operatorMap,\n contains: like,\n like,\n not_like: notLike,\n } as unknown as Operators\n\n return createDatabaseAdapter<SQLiteAdapter>({\n name: 'sqlite',\n afterSchemaInit: args.afterSchemaInit ?? [],\n allowIDOnCreate,\n autoIncrement: args.autoIncrement ?? false,\n beforeSchemaInit: args.beforeSchemaInit ?? [],\n blocksAsJSON: args.blocksAsJSON ?? false,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n client: undefined,\n clientConfig: args.client,\n defaultDrizzleSnapshot,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n drizzle: undefined,\n features: {\n json: true,\n },\n fieldConstraints: {},\n findDistinct,\n generateSchema: createSchemaGenerator({\n columnToCodeConverter,\n corePackageSuffix: 'sqlite-core',\n defaultOutputFile: args.generateSchemaOutputFile,\n tableImport: 'sqliteTable',\n }),\n idType: sqliteIDType,\n initializing,\n localesSuffix: args.localesSuffix || '_locales',\n logger: args.logger,\n operators,\n prodMigrations: args.prodMigrations,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n push: args.push,\n rawRelations: {},\n rawTables: {},\n relations: {},\n relationshipsSuffix: args.relationshipsSuffix || '_rels',\n schema: {},\n schemaName: args.schemaName,\n sessions: {},\n tableNameMap: new Map<string, string>(),\n tables: {},\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n transactionOptions: args.transactionOptions || undefined,\n updateJobs,\n updateMany,\n versionsSuffix: args.versionsSuffix || '_v',\n // DatabaseAdapter\n beginTransaction: args.transactionOptions ? beginTransaction : defaultBeginTransaction(),\n commitTransaction,\n connect,\n convertPathToJSONTraversal,\n count,\n countDistinct,\n countGlobalVersions,\n countVersions,\n create,\n createGlobal,\n createGlobalVersion,\n createJSONQuery,\n createMigration: buildCreateMigration({\n executeMethod: 'run',\n filename,\n sanitizeStatements({ sqlExecute, statements }) {\n return statements\n .map((statement) => `${sqlExecute}${statement?.replaceAll('`', '\\\\`')}\\`)`)\n .join('\\n')\n },\n }),\n createVersion,\n defaultIDType: payloadIDType,\n deleteMany,\n deleteOne,\n deleteVersions,\n deleteWhere,\n destroy,\n dropDatabase,\n execute,\n find,\n findGlobal,\n findGlobalVersions,\n findOne,\n findVersions,\n indexes: new Set<string>(),\n init,\n insert,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n migrationDir,\n packageName: '@payloadcms/db-sqlite',\n payload,\n queryDrafts,\n rejectInitializing,\n requireDrizzleKit,\n resolveInitializing,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n upsert,\n })\n }\n\n return {\n name: 'sqlite',\n allowIDOnCreate,\n defaultIDType: payloadIDType,\n init: adapter,\n }\n}\n\n/**\n * @todo deprecate /types subpath export in 4.0\n */\nexport type {\n Args as SQLiteAdapterArgs,\n CountDistinct,\n DeleteWhere,\n DropDatabase,\n Execute,\n GeneratedDatabaseSchema,\n GenericColumns,\n GenericRelation,\n GenericTable,\n IDType,\n Insert,\n MigrateDownArgs,\n MigrateUpArgs,\n SQLiteAdapter,\n SQLiteSchemaHook,\n} from './types.js'\n\nexport { sql } from 'drizzle-orm'\n"],"names":["beginTransaction","buildCreateMigration","commitTransaction","count","countGlobalVersions","countVersions","create","createGlobal","createGlobalVersion","createSchemaGenerator","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findDistinct","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","rollbackTransaction","updateGlobal","updateGlobalVersion","updateJobs","updateMany","updateOne","updateVersion","upsert","columnToCodeConverter","convertPathToJSONTraversal","countDistinct","createJSONQuery","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","requireDrizzleKit","like","notLike","createDatabaseAdapter","defaultBeginTransaction","fileURLToPath","connect","filename","url","sqliteAdapter","args","sqliteIDType","idType","payloadIDType","allowIDOnCreate","adapter","payload","migrationDir","resolveInitializing","rejectInitializing","initializing","Promise","res","rej","operators","contains","not_like","name","afterSchemaInit","autoIncrement","beforeSchemaInit","blocksAsJSON","client","undefined","clientConfig","drizzle","features","json","fieldConstraints","generateSchema","corePackageSuffix","defaultOutputFile","generateSchemaOutputFile","tableImport","localesSuffix","logger","prodMigrations","push","rawRelations","rawTables","relations","relationshipsSuffix","schema","schemaName","sessions","tableNameMap","Map","tables","transactionOptions","versionsSuffix","createMigration","executeMethod","sanitizeStatements","sqlExecute","statements","map","statement","replaceAll","join","defaultIDType","indexes","Set","packageName","sql"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Operators } from '@payloadcms/drizzle'\nimport type { DatabaseAdapterObj, Payload } from 'payload'\n\nimport {\n beginTransaction,\n buildCreateMigration,\n commitTransaction,\n count,\n countGlobalVersions,\n countVersions,\n create,\n createGlobal,\n createGlobalVersion,\n createSchemaGenerator,\n createVersion,\n deleteMany,\n deleteOne,\n deleteVersions,\n destroy,\n find,\n findDistinct,\n findGlobal,\n findGlobalVersions,\n findMigrationDir,\n findOne,\n findVersions,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n operatorMap,\n queryDrafts,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateJobs,\n updateMany,\n updateOne,\n updateVersion,\n upsert,\n} from '@payloadcms/drizzle'\nimport { like, notLike } from 'drizzle-orm'\nimport { createDatabaseAdapter, defaultBeginTransaction } from 'payload'\nimport { fileURLToPath } from 'url'\n\nimport type { Args, SQLiteAdapter } from './types.js'\n\nimport { columnToCodeConverter } from './columnToCodeConverter.js'\nimport { connect } from './connect.js'\nimport { countDistinct } from './countDistinct.js'\nimport { convertPathToJSONTraversal } from './createJSONQuery/convertPathToJSONTraversal.js'\nimport { createJSONQuery } from './createJSONQuery/index.js'\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { deleteWhere } from './deleteWhere.js'\nimport { dropDatabase } from './dropDatabase.js'\nimport { execute } from './execute.js'\nimport { init } from './init.js'\nimport { insert } from './insert.js'\nimport { requireDrizzleKit } from './requireDrizzleKit.js'\n\nconst filename = fileURLToPath(import.meta.url)\n\nexport function sqliteAdapter(args: Args): DatabaseAdapterObj<SQLiteAdapter> {\n const sqliteIDType = args.idType || 'number'\n const payloadIDType = sqliteIDType === 'uuid' ? 'text' : 'number'\n const allowIDOnCreate = args.allowIDOnCreate ?? false\n\n function adapter({ payload }: { payload: Payload }) {\n const migrationDir = findMigrationDir(args.migrationDir)\n let resolveInitializing\n let rejectInitializing\n\n const initializing = new Promise<void>((res, rej) => {\n resolveInitializing = res\n rejectInitializing = rej\n })\n\n // sqlite's like operator is case-insensitive, so we overwrite the DrizzleAdapter operators to not use ilike\n const operators = {\n ...operatorMap,\n contains: like,\n like,\n not_like: notLike,\n } as unknown as Operators\n\n return createDatabaseAdapter<SQLiteAdapter>({\n name: 'sqlite',\n afterSchemaInit: args.afterSchemaInit ?? [],\n allowIDOnCreate,\n autoIncrement: args.autoIncrement ?? false,\n beforeSchemaInit: args.beforeSchemaInit ?? [],\n blocksAsJSON: args.blocksAsJSON ?? false,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n client: undefined,\n clientConfig: args.client,\n defaultDrizzleSnapshot,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n drizzle: undefined,\n features: {\n json: true,\n },\n fieldConstraints: {},\n findDistinct,\n generateSchema: createSchemaGenerator({\n columnToCodeConverter,\n corePackageSuffix: 'sqlite-core',\n defaultOutputFile: args.generateSchemaOutputFile,\n tableImport: 'sqliteTable',\n }),\n idType: sqliteIDType,\n initializing,\n localesSuffix: args.localesSuffix || '_locales',\n logger: args.logger,\n operators,\n prodMigrations: args.prodMigrations,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n push: args.push,\n rawRelations: {},\n rawTables: {},\n relations: {},\n relationshipsSuffix: args.relationshipsSuffix || '_rels',\n schema: {},\n schemaName: args.schemaName,\n sessions: {},\n tableNameMap: new Map<string, string>(),\n tables: {},\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n transactionOptions: args.transactionOptions || undefined,\n updateJobs,\n updateMany,\n versionsSuffix: args.versionsSuffix || '_v',\n\n // DatabaseAdapter\n beginTransaction: args.transactionOptions ? beginTransaction : defaultBeginTransaction(),\n commitTransaction,\n connect,\n convertPathToJSONTraversal,\n count,\n countDistinct,\n countGlobalVersions,\n countVersions,\n create,\n createGlobal,\n createGlobalVersion,\n createJSONQuery,\n createMigration: buildCreateMigration({\n executeMethod: 'run',\n filename,\n sanitizeStatements({ sqlExecute, statements }) {\n return statements\n .map((statement) => `${sqlExecute}${statement?.replaceAll('`', '\\\\`')}\\`)`)\n .join('\\n')\n },\n }),\n createVersion,\n defaultIDType: payloadIDType,\n deleteMany,\n deleteOne,\n deleteVersions,\n deleteWhere,\n destroy,\n dropDatabase,\n execute,\n find,\n findGlobal,\n findGlobalVersions,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n findOne,\n findVersions,\n indexes: new Set<string>(),\n init,\n insert,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n migrationDir,\n packageName: '@payloadcms/db-sqlite',\n payload,\n queryDrafts,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n rejectInitializing,\n requireDrizzleKit,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n resolveInitializing,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n upsert,\n })\n }\n\n return {\n name: 'sqlite',\n allowIDOnCreate,\n defaultIDType: payloadIDType,\n init: adapter,\n }\n}\n\n/**\n * @todo deprecate /types subpath export in 4.0\n */\nexport type {\n Args as SQLiteAdapterArgs,\n CountDistinct,\n DeleteWhere,\n DropDatabase,\n Execute,\n GeneratedDatabaseSchema,\n GenericColumns,\n GenericRelation,\n GenericTable,\n IDType,\n Insert,\n MigrateDownArgs,\n MigrateUpArgs,\n SQLiteAdapter,\n SQLiteSchemaHook,\n} from './types.js'\n\nexport { sql } from 'drizzle-orm'\n"],"names":["beginTransaction","buildCreateMigration","commitTransaction","count","countGlobalVersions","countVersions","create","createGlobal","createGlobalVersion","createSchemaGenerator","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findDistinct","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","rollbackTransaction","updateGlobal","updateGlobalVersion","updateJobs","updateMany","updateOne","updateVersion","upsert","like","notLike","createDatabaseAdapter","defaultBeginTransaction","fileURLToPath","columnToCodeConverter","connect","countDistinct","convertPathToJSONTraversal","createJSONQuery","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","requireDrizzleKit","filename","url","sqliteAdapter","args","sqliteIDType","idType","payloadIDType","allowIDOnCreate","adapter","payload","migrationDir","resolveInitializing","rejectInitializing","initializing","Promise","res","rej","operators","contains","not_like","name","afterSchemaInit","autoIncrement","beforeSchemaInit","blocksAsJSON","client","undefined","clientConfig","drizzle","features","json","fieldConstraints","generateSchema","corePackageSuffix","defaultOutputFile","generateSchemaOutputFile","tableImport","localesSuffix","logger","prodMigrations","push","rawRelations","rawTables","relations","relationshipsSuffix","schema","schemaName","sessions","tableNameMap","Map","tables","transactionOptions","versionsSuffix","createMigration","executeMethod","sanitizeStatements","sqlExecute","statements","map","statement","replaceAll","join","defaultIDType","indexes","Set","packageName","sql"],"mappings":"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"}
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AASnC,eAAO,MAAM,IAAI,EAAE,IAiClB,CAAA"}
|
package/dist/init.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { buildDrizzleRelations, buildRawSchema, executeSchemaHooks } from '@payloadcms/drizzle';
|
|
2
|
+
import { buildDrizzleTable } from './schema/buildDrizzleTable.js';
|
|
3
|
+
import { setColumnID } from './schema/setColumnID.js';
|
|
4
|
+
export const init = async function init() {
|
|
5
|
+
let locales;
|
|
6
|
+
this.rawRelations = {};
|
|
7
|
+
this.rawTables = {};
|
|
8
|
+
if (this.payload.config.localization) {
|
|
9
|
+
locales = this.payload.config.localization.locales.map(({ code })=>code);
|
|
10
|
+
}
|
|
11
|
+
const adapter = this;
|
|
12
|
+
buildRawSchema({
|
|
13
|
+
adapter,
|
|
14
|
+
setColumnID
|
|
15
|
+
});
|
|
16
|
+
await executeSchemaHooks({
|
|
17
|
+
type: 'beforeSchemaInit',
|
|
18
|
+
adapter: this
|
|
19
|
+
});
|
|
20
|
+
for(const tableName in this.rawTables){
|
|
21
|
+
buildDrizzleTable({
|
|
22
|
+
adapter,
|
|
23
|
+
locales: locales,
|
|
24
|
+
rawTable: this.rawTables[tableName]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
buildDrizzleRelations({
|
|
28
|
+
adapter
|
|
29
|
+
});
|
|
30
|
+
await executeSchemaHooks({
|
|
31
|
+
type: 'afterSchemaInit',
|
|
32
|
+
adapter: this
|
|
33
|
+
});
|
|
34
|
+
this.schema = {
|
|
35
|
+
...this.tables,
|
|
36
|
+
...this.relations
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { Init } from 'payload'\n\nimport { buildDrizzleRelations, buildRawSchema, executeSchemaHooks } from '@payloadcms/drizzle'\n\nimport type { SQLiteAdapter } from './types.js'\n\nimport { buildDrizzleTable } from './schema/buildDrizzleTable.js'\nimport { setColumnID } from './schema/setColumnID.js'\n\nexport const init: Init = async function init(this: SQLiteAdapter) {\n let locales: string[] | undefined\n\n this.rawRelations = {}\n this.rawTables = {}\n\n if (this.payload.config.localization) {\n locales = this.payload.config.localization.locales.map(({ code }) => code)\n }\n\n const adapter = this as unknown as DrizzleAdapter\n\n buildRawSchema({\n adapter,\n setColumnID,\n })\n\n await executeSchemaHooks({ type: 'beforeSchemaInit', adapter: this })\n\n for (const tableName in this.rawTables) {\n buildDrizzleTable({ adapter, locales: locales!, rawTable: this.rawTables[tableName]! })\n }\n\n buildDrizzleRelations({\n adapter,\n })\n\n await executeSchemaHooks({ type: 'afterSchemaInit', adapter: this })\n\n this.schema = {\n ...this.tables,\n ...this.relations,\n }\n}\n"],"names":["buildDrizzleRelations","buildRawSchema","executeSchemaHooks","buildDrizzleTable","setColumnID","init","locales","rawRelations","rawTables","payload","config","localization","map","code","adapter","type","tableName","rawTable","schema","tables","relations"],"mappings":"AAGA,SAASA,qBAAqB,EAAEC,cAAc,EAAEC,kBAAkB,QAAQ,sBAAqB;AAI/F,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,WAAW,QAAQ,0BAAyB;AAErD,OAAO,MAAMC,OAAa,eAAeA;IACvC,IAAIC;IAEJ,IAAI,CAACC,YAAY,GAAG,CAAC;IACrB,IAAI,CAACC,SAAS,GAAG,CAAC;IAElB,IAAI,IAAI,CAACC,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;QACpCL,UAAU,IAAI,CAACG,OAAO,CAACC,MAAM,CAACC,YAAY,CAACL,OAAO,CAACM,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;IACvE;IAEA,MAAMC,UAAU,IAAI;IAEpBb,eAAe;QACba;QACAV;IACF;IAEA,MAAMF,mBAAmB;QAAEa,MAAM;QAAoBD,SAAS,IAAI;IAAC;IAEnE,IAAK,MAAME,aAAa,IAAI,CAACR,SAAS,CAAE;QACtCL,kBAAkB;YAAEW;YAASR,SAASA;YAAUW,UAAU,IAAI,CAACT,SAAS,CAACQ,UAAU;QAAE;IACvF;IAEAhB,sBAAsB;QACpBc;IACF;IAEA,MAAMZ,mBAAmB;QAAEa,MAAM;QAAmBD,SAAS,IAAI;IAAC;IAElE,IAAI,CAACI,MAAM,GAAG;QACZ,GAAG,IAAI,CAACC,MAAM;QACd,GAAG,IAAI,CAACC,SAAS;IACnB;AACF,EAAC"}
|
package/dist/insert.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,YAAY,CAAA;AAEvD,eAAO,MAAM,MAAM,EAAE,MAcpB,CAAA"}
|
package/dist/insert.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const insert = async function({ db, onConflictDoUpdate, tableName, values }) {
|
|
2
|
+
const table = this.tables[tableName];
|
|
3
|
+
const result = onConflictDoUpdate ? await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning() : await db.insert(table).values(values).returning();
|
|
4
|
+
// See https://github.com/payloadcms/payload/pull/11831#discussion_r2010431908
|
|
5
|
+
return result;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=insert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/insert.ts"],"sourcesContent":["import type { Insert, SQLiteAdapter } from './types.js'\n\nexport const insert: Insert = async function (\n // Here 'this' is not a parameter. See:\n // https://www.typescriptlang.org/docs/handbook/2/classes.html#this-parameters\n this: SQLiteAdapter,\n { db, onConflictDoUpdate, tableName, values },\n): Promise<Record<string, unknown>[]> {\n const table = this.tables[tableName]\n\n const result = onConflictDoUpdate\n ? await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning()\n : await db.insert(table).values(values).returning()\n\n // See https://github.com/payloadcms/payload/pull/11831#discussion_r2010431908\n return result as Record<string, unknown>[]\n}\n"],"names":["insert","db","onConflictDoUpdate","tableName","values","table","tables","result","returning"],"mappings":"AAEA,OAAO,MAAMA,SAAiB,eAI5B,EAAEC,EAAE,EAAEC,kBAAkB,EAAEC,SAAS,EAAEC,MAAM,EAAE;IAE7C,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IAEpC,MAAMI,SAASL,qBACX,MAAMD,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQF,kBAAkB,CAACA,oBAAoBM,SAAS,KACtF,MAAMP,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQI,SAAS;IAEnD,8EAA8E;IAC9E,OAAOD;AACT,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requireDrizzleKit.d.ts","sourceRoot":"","sources":["../src/requireDrizzleKit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,eAAO,MAAM,iBAAiB,EAAE,iBAY/B,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createRequire } from 'module';
|
|
2
|
+
const require = createRequire(import.meta.url);
|
|
3
|
+
export const requireDrizzleKit = ()=>{
|
|
4
|
+
const { generateSQLiteDrizzleJson, generateSQLiteMigration, pushSQLiteSchema } = require('drizzle-kit/api');
|
|
5
|
+
return {
|
|
6
|
+
generateDrizzleJson: generateSQLiteDrizzleJson,
|
|
7
|
+
generateMigration: generateSQLiteMigration,
|
|
8
|
+
pushSchema: pushSQLiteSchema
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=requireDrizzleKit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/requireDrizzleKit.ts"],"sourcesContent":["import type { RequireDrizzleKit } from '@payloadcms/drizzle/types'\n\nimport { createRequire } from 'module'\n\nconst require = createRequire(import.meta.url)\n\nexport const requireDrizzleKit: RequireDrizzleKit = () => {\n const {\n generateSQLiteDrizzleJson,\n generateSQLiteMigration,\n pushSQLiteSchema,\n } = require('drizzle-kit/api')\n\n return {\n generateDrizzleJson: generateSQLiteDrizzleJson,\n generateMigration: generateSQLiteMigration,\n pushSchema: pushSQLiteSchema,\n }\n}\n"],"names":["createRequire","require","url","requireDrizzleKit","generateSQLiteDrizzleJson","generateSQLiteMigration","pushSQLiteSchema","generateDrizzleJson","generateMigration","pushSchema"],"mappings":"AAEA,SAASA,aAAa,QAAQ,SAAQ;AAEtC,MAAMC,UAAUD,cAAc,YAAYE,GAAG;AAE7C,OAAO,MAAMC,oBAAuC;IAClD,MAAM,EACJC,yBAAyB,EACzBC,uBAAuB,EACvBC,gBAAgB,EACjB,GAAGL,QAAQ;IAEZ,OAAO;QACLM,qBAAqBH;QACrBI,mBAAmBH;QACnBI,YAAYH;IACd;AACF,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildDrizzleTable.d.ts","sourceRoot":"","sources":["../../src/schema/buildDrizzleTable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,2BAA2B,CAAA;AAqB7E,eAAO,MAAM,iBAAiB,EAAE,iBA8I/B,CAAA"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { sql } from 'drizzle-orm';
|
|
2
|
+
import { foreignKey, index, integer, numeric, sqliteTable, text, uniqueIndex } from 'drizzle-orm/sqlite-core';
|
|
3
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
4
|
+
const rawColumnBuilderMap = {
|
|
5
|
+
integer,
|
|
6
|
+
numeric,
|
|
7
|
+
text
|
|
8
|
+
};
|
|
9
|
+
export const buildDrizzleTable = ({ adapter, locales, rawTable })=>{
|
|
10
|
+
const columns = {};
|
|
11
|
+
for (const [key, column] of Object.entries(rawTable.columns)){
|
|
12
|
+
switch(column.type){
|
|
13
|
+
case 'boolean':
|
|
14
|
+
{
|
|
15
|
+
columns[key] = integer(column.name, {
|
|
16
|
+
mode: 'boolean'
|
|
17
|
+
});
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
case 'enum':
|
|
21
|
+
if ('locale' in column) {
|
|
22
|
+
columns[key] = text(column.name, {
|
|
23
|
+
enum: locales
|
|
24
|
+
});
|
|
25
|
+
} else {
|
|
26
|
+
columns[key] = text(column.name, {
|
|
27
|
+
enum: column.options
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
break;
|
|
31
|
+
case 'geometry':
|
|
32
|
+
case 'jsonb':
|
|
33
|
+
{
|
|
34
|
+
columns[key] = text(column.name, {
|
|
35
|
+
mode: 'json'
|
|
36
|
+
});
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case 'serial':
|
|
40
|
+
{
|
|
41
|
+
columns[key] = integer(column.name);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'timestamp':
|
|
45
|
+
{
|
|
46
|
+
let builder = text(column.name);
|
|
47
|
+
if (column.defaultNow) {
|
|
48
|
+
builder = builder.default(sql`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))`);
|
|
49
|
+
}
|
|
50
|
+
columns[key] = builder;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'uuid':
|
|
54
|
+
{
|
|
55
|
+
let builder = text(column.name, {
|
|
56
|
+
length: 36
|
|
57
|
+
});
|
|
58
|
+
if (column.defaultRandom) {
|
|
59
|
+
builder = builder.$defaultFn(()=>uuidv4());
|
|
60
|
+
}
|
|
61
|
+
columns[key] = builder;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case 'varchar':
|
|
65
|
+
{
|
|
66
|
+
columns[key] = text(column.name);
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
default:
|
|
70
|
+
columns[key] = rawColumnBuilderMap[column.type](column.name);
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
if (column.reference) {
|
|
74
|
+
const ref = column.reference;
|
|
75
|
+
columns[key].references(()=>adapter.tables[ref.table][ref.name], {
|
|
76
|
+
onDelete: ref.onDelete
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (column.primaryKey) {
|
|
80
|
+
let args = undefined;
|
|
81
|
+
if (column.type === 'integer' && column.autoIncrement) {
|
|
82
|
+
args = {
|
|
83
|
+
autoIncrement: true
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
columns[key].primaryKey(args);
|
|
87
|
+
}
|
|
88
|
+
if (column.notNull) {
|
|
89
|
+
columns[key].notNull();
|
|
90
|
+
}
|
|
91
|
+
if (typeof column.default !== 'undefined') {
|
|
92
|
+
let sanitizedDefault = column.default;
|
|
93
|
+
if (column.type === 'geometry' && Array.isArray(column.default)) {
|
|
94
|
+
sanitizedDefault = JSON.stringify({
|
|
95
|
+
type: 'Point',
|
|
96
|
+
coordinates: [
|
|
97
|
+
column.default[0],
|
|
98
|
+
column.default[1]
|
|
99
|
+
]
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
columns[key].default(sanitizedDefault);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const extraConfig = (cols)=>{
|
|
106
|
+
const config = {};
|
|
107
|
+
if (rawTable.indexes) {
|
|
108
|
+
for (const [key, rawIndex] of Object.entries(rawTable.indexes)){
|
|
109
|
+
let fn = index;
|
|
110
|
+
if (rawIndex.unique) {
|
|
111
|
+
fn = uniqueIndex;
|
|
112
|
+
}
|
|
113
|
+
if (Array.isArray(rawIndex.on)) {
|
|
114
|
+
if (rawIndex.on.length) {
|
|
115
|
+
config[key] = fn(rawIndex.name).on(...rawIndex.on.map((colName)=>cols[colName]));
|
|
116
|
+
}
|
|
117
|
+
} else {
|
|
118
|
+
config[key] = fn(rawIndex.name).on(cols[rawIndex.on]);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (rawTable.foreignKeys) {
|
|
123
|
+
for (const [key, rawForeignKey] of Object.entries(rawTable.foreignKeys)){
|
|
124
|
+
let builder = foreignKey({
|
|
125
|
+
name: rawForeignKey.name,
|
|
126
|
+
columns: rawForeignKey.columns.map((colName)=>cols[colName]),
|
|
127
|
+
foreignColumns: rawForeignKey.foreignColumns.map((column)=>adapter.tables[column.table][column.name])
|
|
128
|
+
});
|
|
129
|
+
if (rawForeignKey.onDelete) {
|
|
130
|
+
builder = builder.onDelete(rawForeignKey.onDelete);
|
|
131
|
+
}
|
|
132
|
+
if (rawForeignKey.onUpdate) {
|
|
133
|
+
builder = builder.onDelete(rawForeignKey.onUpdate);
|
|
134
|
+
}
|
|
135
|
+
config[key] = builder;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return config;
|
|
139
|
+
};
|
|
140
|
+
adapter.tables[rawTable.name] = sqliteTable(rawTable.name, columns, extraConfig);
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
//# sourceMappingURL=buildDrizzleTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/schema/buildDrizzleTable.ts"],"sourcesContent":["import type { BuildDrizzleTable, RawColumn } from '@payloadcms/drizzle/types'\nimport type { ForeignKeyBuilder, IndexBuilder } from 'drizzle-orm/sqlite-core'\n\nimport { sql } from 'drizzle-orm'\nimport {\n foreignKey,\n index,\n integer,\n numeric,\n sqliteTable,\n text,\n uniqueIndex,\n} from 'drizzle-orm/sqlite-core'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst rawColumnBuilderMap: Partial<Record<RawColumn['type'], any>> = {\n integer,\n numeric,\n text,\n}\n\nexport const buildDrizzleTable: BuildDrizzleTable = ({ adapter, locales, rawTable }) => {\n const columns: Record<string, any> = {}\n\n for (const [key, column] of Object.entries(rawTable.columns)) {\n switch (column.type) {\n case 'boolean': {\n columns[key] = integer(column.name, { mode: 'boolean' })\n break\n }\n\n case 'enum':\n if ('locale' in column) {\n columns[key] = text(column.name, { enum: locales as [string, ...string[]] })\n } else {\n columns[key] = text(column.name, { enum: column.options as [string, ...string[]] })\n }\n break\n\n case 'geometry':\n case 'jsonb': {\n columns[key] = text(column.name, { mode: 'json' })\n break\n }\n\n case 'serial': {\n columns[key] = integer(column.name)\n break\n }\n\n case 'timestamp': {\n let builder = text(column.name)\n\n if (column.defaultNow) {\n builder = builder.default(sql`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))`)\n }\n\n columns[key] = builder\n break\n }\n\n case 'uuid': {\n let builder = text(column.name, { length: 36 })\n\n if (column.defaultRandom) {\n builder = builder.$defaultFn(() => uuidv4())\n }\n\n columns[key] = builder\n break\n }\n\n case 'varchar': {\n columns[key] = text(column.name)\n break\n }\n\n default:\n columns[key] = rawColumnBuilderMap[column.type](column.name)\n break\n }\n\n if (column.reference) {\n const ref = column.reference\n columns[key].references(() => adapter.tables[ref.table][ref.name], {\n onDelete: ref.onDelete,\n })\n }\n\n if (column.primaryKey) {\n let args: Record<string, unknown> | undefined = undefined\n\n if (column.type === 'integer' && column.autoIncrement) {\n args = { autoIncrement: true }\n }\n\n columns[key].primaryKey(args)\n }\n\n if (column.notNull) {\n columns[key].notNull()\n }\n\n if (typeof column.default !== 'undefined') {\n let sanitizedDefault = column.default\n\n if (column.type === 'geometry' && Array.isArray(column.default)) {\n sanitizedDefault = JSON.stringify({\n type: 'Point',\n coordinates: [column.default[0], column.default[1]],\n })\n }\n\n columns[key].default(sanitizedDefault)\n }\n }\n\n const extraConfig = (cols: any) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {}\n\n if (rawTable.indexes) {\n for (const [key, rawIndex] of Object.entries(rawTable.indexes)) {\n let fn: any = index\n if (rawIndex.unique) {\n fn = uniqueIndex\n }\n\n if (Array.isArray(rawIndex.on)) {\n if (rawIndex.on.length) {\n config[key] = fn(rawIndex.name).on(...rawIndex.on.map((colName) => cols[colName]))\n }\n } else {\n config[key] = fn(rawIndex.name).on(cols[rawIndex.on])\n }\n }\n }\n\n if (rawTable.foreignKeys) {\n for (const [key, rawForeignKey] of Object.entries(rawTable.foreignKeys)) {\n let builder = foreignKey({\n name: rawForeignKey.name,\n columns: rawForeignKey.columns.map((colName) => cols[colName]) as any,\n foreignColumns: rawForeignKey.foreignColumns.map(\n (column) => adapter.tables[column.table][column.name],\n ),\n })\n\n if (rawForeignKey.onDelete) {\n builder = builder.onDelete(rawForeignKey.onDelete)\n }\n\n if (rawForeignKey.onUpdate) {\n builder = builder.onDelete(rawForeignKey.onUpdate)\n }\n\n config[key] = builder\n }\n }\n\n return config\n }\n\n adapter.tables[rawTable.name] = sqliteTable(rawTable.name, columns as any, extraConfig as any)\n}\n"],"names":["sql","foreignKey","index","integer","numeric","sqliteTable","text","uniqueIndex","v4","uuidv4","rawColumnBuilderMap","buildDrizzleTable","adapter","locales","rawTable","columns","key","column","Object","entries","type","name","mode","enum","options","builder","defaultNow","default","length","defaultRandom","$defaultFn","reference","ref","references","tables","table","onDelete","primaryKey","args","undefined","autoIncrement","notNull","sanitizedDefault","Array","isArray","JSON","stringify","coordinates","extraConfig","cols","config","indexes","rawIndex","fn","unique","on","map","colName","foreignKeys","rawForeignKey","foreignColumns","onUpdate"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setColumnID.d.ts","sourceRoot":"","sources":["../../src/schema/setColumnID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAI5D,eAAO,MAAM,WAAW,EAAE,WAyCzB,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export const setColumnID = ({ adapter, columns, fields })=>{
|
|
2
|
+
const idField = fields.find((field)=>field.name === 'id');
|
|
3
|
+
if (idField) {
|
|
4
|
+
if (idField.type === 'number') {
|
|
5
|
+
columns.id = {
|
|
6
|
+
name: 'id',
|
|
7
|
+
type: 'numeric',
|
|
8
|
+
primaryKey: true
|
|
9
|
+
};
|
|
10
|
+
return 'numeric';
|
|
11
|
+
}
|
|
12
|
+
if (idField.type === 'text') {
|
|
13
|
+
columns.id = {
|
|
14
|
+
name: 'id',
|
|
15
|
+
type: 'text',
|
|
16
|
+
primaryKey: true
|
|
17
|
+
};
|
|
18
|
+
return 'text';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (adapter.idType === 'uuid') {
|
|
22
|
+
columns.id = {
|
|
23
|
+
name: 'id',
|
|
24
|
+
type: 'uuid',
|
|
25
|
+
defaultRandom: true,
|
|
26
|
+
primaryKey: true
|
|
27
|
+
};
|
|
28
|
+
return 'uuid';
|
|
29
|
+
}
|
|
30
|
+
columns.id = {
|
|
31
|
+
name: 'id',
|
|
32
|
+
type: 'integer',
|
|
33
|
+
autoIncrement: adapter.autoIncrement,
|
|
34
|
+
primaryKey: true
|
|
35
|
+
};
|
|
36
|
+
return 'integer';
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=setColumnID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/schema/setColumnID.ts"],"sourcesContent":["import type { SetColumnID } from '@payloadcms/drizzle/types'\n\nimport type { SQLiteAdapter } from '../types.js'\n\nexport const setColumnID: SetColumnID = ({ adapter, columns, fields }) => {\n const idField = fields.find((field) => field.name === 'id')\n if (idField) {\n if (idField.type === 'number') {\n columns.id = {\n name: 'id',\n type: 'numeric',\n primaryKey: true,\n }\n return 'numeric'\n }\n\n if (idField.type === 'text') {\n columns.id = {\n name: 'id',\n type: 'text',\n primaryKey: true,\n }\n return 'text'\n }\n }\n\n if (adapter.idType === 'uuid') {\n columns.id = {\n name: 'id',\n type: 'uuid',\n defaultRandom: true,\n primaryKey: true,\n }\n\n return 'uuid'\n }\n\n columns.id = {\n name: 'id',\n type: 'integer',\n autoIncrement: (adapter as unknown as SQLiteAdapter).autoIncrement,\n primaryKey: true,\n }\n\n return 'integer'\n}\n"],"names":["setColumnID","adapter","columns","fields","idField","find","field","name","type","id","primaryKey","idType","defaultRandom","autoIncrement"],"mappings":"AAIA,OAAO,MAAMA,cAA2B,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAE;IACnE,MAAMC,UAAUD,OAAOE,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAK;IACtD,IAAIH,SAAS;QACX,IAAIA,QAAQI,IAAI,KAAK,UAAU;YAC7BN,QAAQO,EAAE,GAAG;gBACXF,MAAM;gBACNC,MAAM;gBACNE,YAAY;YACd;YACA,OAAO;QACT;QAEA,IAAIN,QAAQI,IAAI,KAAK,QAAQ;YAC3BN,QAAQO,EAAE,GAAG;gBACXF,MAAM;gBACNC,MAAM;gBACNE,YAAY;YACd;YACA,OAAO;QACT;IACF;IAEA,IAAIT,QAAQU,MAAM,KAAK,QAAQ;QAC7BT,QAAQO,EAAE,GAAG;YACXF,MAAM;YACNC,MAAM;YACNI,eAAe;YACfF,YAAY;QACd;QAEA,OAAO;IACT;IAEAR,QAAQO,EAAE,GAAG;QACXF,MAAM;QACNC,MAAM;QACNK,eAAe,AAACZ,QAAqCY,aAAa;QAClEH,YAAY;IACd;IAEA,OAAO;AACT,EAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { Client, Config, ResultSet } from '@libsql/client';
|
|
2
|
-
import type { extendDrizzleTable } from '@payloadcms/drizzle';
|
|
3
|
-
import type { BaseSQLiteAdapter, BaseSQLiteArgs } from '@payloadcms/drizzle/sqlite';
|
|
2
|
+
import type { extendDrizzleTable, Operators } from '@payloadcms/drizzle';
|
|
4
3
|
import type { BuildQueryJoinAliases, DrizzleAdapter } from '@payloadcms/drizzle/types';
|
|
5
4
|
import type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm';
|
|
6
5
|
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
|
|
@@ -47,7 +46,23 @@ export type Args = {
|
|
|
47
46
|
*/
|
|
48
47
|
blocksAsJSON?: boolean;
|
|
49
48
|
client: Config;
|
|
50
|
-
|
|
49
|
+
/** Generated schema from payload generate:db-schema file path */
|
|
50
|
+
generateSchemaOutputFile?: string;
|
|
51
|
+
idType?: 'number' | 'uuid';
|
|
52
|
+
localesSuffix?: string;
|
|
53
|
+
logger?: DrizzleConfig['logger'];
|
|
54
|
+
migrationDir?: string;
|
|
55
|
+
prodMigrations?: {
|
|
56
|
+
down: (args: MigrateDownArgs) => Promise<void>;
|
|
57
|
+
name: string;
|
|
58
|
+
up: (args: MigrateUpArgs) => Promise<void>;
|
|
59
|
+
}[];
|
|
60
|
+
push?: boolean;
|
|
61
|
+
relationshipsSuffix?: string;
|
|
62
|
+
schemaName?: string;
|
|
63
|
+
transactionOptions?: false | SQLiteTransactionConfig;
|
|
64
|
+
versionsSuffix?: string;
|
|
65
|
+
};
|
|
51
66
|
export type GenericColumns = {
|
|
52
67
|
[x: string]: AnySQLiteColumn;
|
|
53
68
|
};
|
|
@@ -94,10 +109,45 @@ type Drizzle = {
|
|
|
94
109
|
$client: Client;
|
|
95
110
|
} & LibSQLDatabase<ResolveSchemaType<GeneratedDatabaseSchema>>;
|
|
96
111
|
export type SQLiteAdapter = {
|
|
112
|
+
afterSchemaInit: SQLiteSchemaHook[];
|
|
113
|
+
autoIncrement: boolean;
|
|
114
|
+
beforeSchemaInit: SQLiteSchemaHook[];
|
|
97
115
|
client: Client;
|
|
98
116
|
clientConfig: Args['client'];
|
|
117
|
+
countDistinct: CountDistinct;
|
|
118
|
+
defaultDrizzleSnapshot: any;
|
|
119
|
+
deleteWhere: DeleteWhere;
|
|
99
120
|
drizzle: Drizzle;
|
|
100
|
-
|
|
121
|
+
dropDatabase: DropDatabase;
|
|
122
|
+
execute: Execute<unknown>;
|
|
123
|
+
/**
|
|
124
|
+
* An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
|
|
125
|
+
* Used for returning properly formed errors from unique fields
|
|
126
|
+
*/
|
|
127
|
+
fieldConstraints: Record<string, Record<string, string>>;
|
|
128
|
+
idType: Args['idType'];
|
|
129
|
+
initializing: Promise<void>;
|
|
130
|
+
insert: Insert;
|
|
131
|
+
localesSuffix?: string;
|
|
132
|
+
logger: DrizzleConfig['logger'];
|
|
133
|
+
operators: Operators;
|
|
134
|
+
prodMigrations?: {
|
|
135
|
+
down: (args: MigrateDownArgs) => Promise<void>;
|
|
136
|
+
name: string;
|
|
137
|
+
up: (args: MigrateUpArgs) => Promise<void>;
|
|
138
|
+
}[];
|
|
139
|
+
push: boolean;
|
|
140
|
+
rejectInitializing: () => void;
|
|
141
|
+
relations: Record<string, GenericRelation>;
|
|
142
|
+
relationshipsSuffix?: string;
|
|
143
|
+
resolveInitializing: () => void;
|
|
144
|
+
schema: Record<string, GenericRelation | GenericTable>;
|
|
145
|
+
schemaName?: Args['schemaName'];
|
|
146
|
+
tableNameMap: Map<string, string>;
|
|
147
|
+
tables: Record<string, GenericTable>;
|
|
148
|
+
transactionOptions: SQLiteTransactionConfig;
|
|
149
|
+
versionsSuffix?: string;
|
|
150
|
+
} & SQLiteDrizzleAdapter;
|
|
101
151
|
export type IDType = 'integer' | 'numeric' | 'text';
|
|
102
152
|
export type MigrateUpArgs = {
|
|
103
153
|
/**
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Client, Config, ResultSet } from '@libsql/client'\nimport type { extendDrizzleTable, Operators } from '@payloadcms/drizzle'\nimport type {
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Client, Config, ResultSet } from '@libsql/client'\nimport type { extendDrizzleTable, Operators } from '@payloadcms/drizzle'\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type {\n AnySQLiteColumn,\n SQLiteColumn,\n SQLiteInsertOnConflictDoUpdateConfig,\n SQLiteTableWithColumns,\n SQLiteTransactionConfig,\n} from 'drizzle-orm/sqlite-core'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { Payload, PayloadRequest } from 'payload'\n\ntype SQLiteSchema = {\n relations: Record<string, GenericRelation>\n tables: Record<string, SQLiteTableWithColumns<any>>\n}\n\ntype SQLiteSchemaHookArgs = {\n extendTable: typeof extendDrizzleTable\n schema: SQLiteSchema\n}\n\nexport type SQLiteSchemaHook = (args: SQLiteSchemaHookArgs) => Promise<SQLiteSchema> | SQLiteSchema\n\nexport type Args = {\n /**\n * Transform the schema after it's built.\n * You can use it to customize the schema with features that aren't supported by Payload.\n * Examples may include: composite indices, generated columns, vectors\n */\n afterSchemaInit?: SQLiteSchemaHook[]\n /**\n * Enable this flag if you want to thread your own ID to create operation data, for example:\n * ```ts\n * // doc created with id 1\n * const doc = await payload.create({ collection: 'posts', data: {id: 1, title: \"my title\"}})\n * ```\n */\n allowIDOnCreate?: boolean\n /**\n * Enable [AUTOINCREMENT](https://www.sqlite.org/autoinc.html) for Primary Keys.\n * This ensures that the same ID cannot be reused from previously deleted rows.\n */\n autoIncrement?: boolean\n /**\n * Transform the schema before it's built.\n * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.\n * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)\n */\n beforeSchemaInit?: SQLiteSchemaHook[]\n /**\n * Store blocks as JSON column instead of storing them in relational structure.\n */\n blocksAsJSON?: boolean\n client: Config\n /** Generated schema from payload generate:db-schema file path */\n generateSchemaOutputFile?: string\n idType?: 'number' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n relationshipsSuffix?: string\n schemaName?: string\n transactionOptions?: false | SQLiteTransactionConfig\n versionsSuffix?: string\n}\n\nexport type GenericColumns = {\n [x: string]: AnySQLiteColumn\n}\n\nexport type GenericTable = SQLiteTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type CountDistinct = (args: {\n column?: SQLiteColumn<any>\n db: LibSQLDatabase\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: LibSQLDatabase\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: SQLiteAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: LibSQLDatabase\n drizzle?: LibSQLDatabase\n raw?: string\n sql?: SQL<unknown>\n}) => SQLiteRaw<Promise<T>> | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: LibSQLDatabase\n onConflictDoUpdate?: SQLiteInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\n// Explicitly omit drizzle property for complete override in SQLiteAdapter, required in ts 5.5\ntype SQLiteDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'idType'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport interface GeneratedDatabaseSchema {\n schemaUntyped: Record<string, unknown>\n}\n\ntype ResolveSchemaType<T> = 'schema' extends keyof T\n ? T['schema']\n : GeneratedDatabaseSchema['schemaUntyped']\n\ntype Drizzle = { $client: Client } & LibSQLDatabase<ResolveSchemaType<GeneratedDatabaseSchema>>\n\nexport type SQLiteAdapter = {\n afterSchemaInit: SQLiteSchemaHook[]\n autoIncrement: boolean\n beforeSchemaInit: SQLiteSchemaHook[]\n client: Client\n clientConfig: Args['client']\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: any\n deleteWhere: DeleteWhere\n drizzle: Drizzle\n dropDatabase: DropDatabase\n execute: Execute<unknown>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n} & SQLiteDrizzleAdapter\n\nexport type IDType = 'integer' | 'numeric' | 'text'\n\nexport type MigrateUpArgs = {\n /**\n * The SQLite Drizzle instance that you can use to execute SQL directly within the current transaction.\n * @example\n * ```ts\n * import { type MigrateUpArgs, sql } from '@payloadcms/db-sqlite'\n *\n * export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {\n * const { rows: posts } = await db.run(sql`SELECT * FROM posts`)\n * }\n * ```\n */\n db: Drizzle\n /**\n * The Payload instance that you can use to execute Local API methods\n * To use the current transaction you must pass `req` to arguments\n * @example\n * ```ts\n * import { type MigrateUpArgs } from '@payloadcms/db-sqlite'\n *\n * export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {\n * const posts = await payload.find({ collection: 'posts', req })\n * }\n * ```\n */\n payload: Payload\n /**\n * The `PayloadRequest` object that contains the current transaction\n */\n req: PayloadRequest\n}\nexport type MigrateDownArgs = {\n /**\n * The SQLite Drizzle instance that you can use to execute SQL directly within the current transaction.\n * @example\n * ```ts\n * import { type MigrateDownArgs, sql } from '@payloadcms/db-sqlite'\n *\n * export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {\n * const { rows: posts } = await db.run(sql`SELECT * FROM posts`)\n * }\n * ```\n */\n db: Drizzle\n /**\n * The Payload instance that you can use to execute Local API methods\n * To use the current transaction you must pass `req` to arguments\n * @example\n * ```ts\n * import { type MigrateDownArgs } from '@payloadcms/db-sqlite'\n *\n * export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {\n * const posts = await payload.find({ collection: 'posts', req })\n * }\n * ```\n */\n payload: Payload\n /**\n * The `PayloadRequest` object that contains the current transaction\n */\n req: PayloadRequest\n}\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n beginTransaction: (options?: SQLiteTransactionConfig) => Promise<null | number | string>\n drizzle: Drizzle\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n tableNameMap: Map<string, string>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AAyNA,WA8BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/db-sqlite",
|
|
3
|
-
"version": "3.50.0
|
|
3
|
+
"version": "3.50.0",
|
|
4
4
|
"description": "The officially supported SQLite database adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -70,17 +70,17 @@
|
|
|
70
70
|
"prompts": "2.4.2",
|
|
71
71
|
"to-snake-case": "1.0.0",
|
|
72
72
|
"uuid": "9.0.0",
|
|
73
|
-
"@payloadcms/drizzle": "3.50.0
|
|
73
|
+
"@payloadcms/drizzle": "3.50.0"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/pg": "8.10.2",
|
|
77
77
|
"@types/to-snake-case": "1.0.0",
|
|
78
78
|
"@types/uuid": "10.0.0",
|
|
79
|
-
"payload": "3.50.0
|
|
79
|
+
"payload": "3.50.0",
|
|
80
80
|
"@payloadcms/eslint-config": "3.28.0"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
|
-
"payload": "3.50.0
|
|
83
|
+
"payload": "3.50.0"
|
|
84
84
|
},
|
|
85
85
|
"scripts": {
|
|
86
86
|
"build": "pnpm build:swc && pnpm build:types",
|