@payloadcms/db-sqlite 3.6.1-canary.cc3861e → 3.7.1-canary.2ce70a3

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.
Files changed (62) hide show
  1. package/dist/columnToCodeConverter.d.ts +3 -0
  2. package/dist/columnToCodeConverter.d.ts.map +1 -0
  3. package/dist/columnToCodeConverter.js +92 -0
  4. package/dist/columnToCodeConverter.js.map +1 -0
  5. package/dist/drizzle-proxy/index.d.ts +2 -0
  6. package/dist/drizzle-proxy/index.d.ts.map +1 -0
  7. package/dist/drizzle-proxy/index.js +3 -0
  8. package/dist/drizzle-proxy/index.js.map +1 -0
  9. package/dist/drizzle-proxy/libsql.d.ts +2 -0
  10. package/dist/drizzle-proxy/libsql.d.ts.map +1 -0
  11. package/dist/drizzle-proxy/libsql.js +3 -0
  12. package/dist/drizzle-proxy/libsql.js.map +1 -0
  13. package/dist/drizzle-proxy/relations.d.ts +2 -0
  14. package/dist/drizzle-proxy/relations.d.ts.map +1 -0
  15. package/dist/drizzle-proxy/relations.js +3 -0
  16. package/dist/drizzle-proxy/relations.js.map +1 -0
  17. package/dist/drizzle-proxy/sqlite-core.d.ts +2 -0
  18. package/dist/drizzle-proxy/sqlite-core.d.ts.map +1 -0
  19. package/dist/drizzle-proxy/sqlite-core.js +3 -0
  20. package/dist/drizzle-proxy/sqlite-core.js.map +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +10 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/init.d.ts.map +1 -1
  25. package/dist/init.js +19 -101
  26. package/dist/init.js.map +1 -1
  27. package/dist/schema/buildDrizzleTable.d.ts +3 -0
  28. package/dist/schema/buildDrizzleTable.d.ts.map +1 -0
  29. package/dist/schema/buildDrizzleTable.js +135 -0
  30. package/dist/schema/buildDrizzleTable.js.map +1 -0
  31. package/dist/schema/setColumnID.d.ts +2 -9
  32. package/dist/schema/setColumnID.d.ts.map +1 -1
  33. package/dist/schema/setColumnID.js +15 -4
  34. package/dist/schema/setColumnID.js.map +1 -1
  35. package/dist/types.d.ts +13 -6
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/types.js.map +1 -1
  38. package/package.json +24 -4
  39. package/dist/schema/build.d.ts +0 -52
  40. package/dist/schema/build.d.ts.map +0 -1
  41. package/dist/schema/build.js +0 -440
  42. package/dist/schema/build.js.map +0 -1
  43. package/dist/schema/createIndex.d.ts +0 -11
  44. package/dist/schema/createIndex.d.ts.map +0 -1
  45. package/dist/schema/createIndex.js +0 -20
  46. package/dist/schema/createIndex.js.map +0 -1
  47. package/dist/schema/getIDColumn.d.ts +0 -8
  48. package/dist/schema/getIDColumn.d.ts.map +0 -1
  49. package/dist/schema/getIDColumn.js +0 -24
  50. package/dist/schema/getIDColumn.js.map +0 -1
  51. package/dist/schema/idToUUID.d.ts +0 -3
  52. package/dist/schema/idToUUID.d.ts.map +0 -1
  53. package/dist/schema/idToUUID.js +0 -11
  54. package/dist/schema/idToUUID.js.map +0 -1
  55. package/dist/schema/traverseFields.d.ts +0 -44
  56. package/dist/schema/traverseFields.d.ts.map +0 -1
  57. package/dist/schema/traverseFields.js +0 -610
  58. package/dist/schema/traverseFields.js.map +0 -1
  59. package/dist/schema/withDefault.d.ts +0 -4
  60. package/dist/schema/withDefault.d.ts.map +0 -1
  61. package/dist/schema/withDefault.js +0 -12
  62. package/dist/schema/withDefault.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ import type { ColumnToCodeConverter } from '@payloadcms/drizzle/types';
2
+ export declare const columnToCodeConverter: ColumnToCodeConverter;
3
+ //# sourceMappingURL=columnToCodeConverter.d.ts.map
@@ -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,qBA+GnC,CAAA"}
@@ -0,0 +1,92 @@
1
+ export const columnToCodeConverter = ({ adapter, addImport, column, locales })=>{
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
+ options = locales;
17
+ } else {
18
+ options = column.options;
19
+ }
20
+ columnBuilderFn = 'text';
21
+ columnBuilderArgsArray.push(`enum: [${options.map((locale)=>`'${locale}'`).join(', ')}]`);
22
+ break;
23
+ }
24
+ case 'geometry':
25
+ case 'jsonb':
26
+ {
27
+ columnBuilderFn = 'text';
28
+ columnBuilderArgsArray.push("mode: 'json'");
29
+ break;
30
+ }
31
+ case 'serial':
32
+ {
33
+ columnBuilderFn = 'integer';
34
+ break;
35
+ }
36
+ case 'timestamp':
37
+ {
38
+ columnBuilderFn = 'text';
39
+ defaultStatement = `default(sql\`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\`)`;
40
+ break;
41
+ }
42
+ case 'uuid':
43
+ {
44
+ columnBuilderFn = 'text';
45
+ if (column.defaultRandom) {
46
+ addImport('crypto', 'randomUUID');
47
+ defaultStatement = `$defaultFn(() => randomUUID())`;
48
+ }
49
+ break;
50
+ }
51
+ case 'varchar':
52
+ {
53
+ columnBuilderFn = 'text';
54
+ break;
55
+ }
56
+ default:
57
+ {
58
+ columnBuilderFn = column.type;
59
+ }
60
+ }
61
+ addImport(`${adapter.packageName}/drizzle/sqlite-core`, columnBuilderFn);
62
+ let columnBuilderArgs = '';
63
+ if (columnBuilderArgsArray.length) {
64
+ columnBuilderArgs = `, {${columnBuilderArgsArray.join(',')}}`;
65
+ }
66
+ let code = `${columnBuilderFn}('${column.name}'${columnBuilderArgs})`;
67
+ if (column.notNull) {
68
+ code = `${code}.notNull()`;
69
+ }
70
+ if (column.primaryKey) {
71
+ code = `${code}.primaryKey()`;
72
+ }
73
+ if (defaultStatement) {
74
+ code = `${code}.${defaultStatement}`;
75
+ } else if (typeof column.default !== 'undefined') {
76
+ let sanitizedDefault = column.default;
77
+ if (column.type === 'jsonb' || column.type === 'geometry') {
78
+ sanitizedDefault = `'${JSON.stringify(column.default)}'`;
79
+ } else if (typeof column.default === 'string' || column.type === 'numeric') {
80
+ sanitizedDefault = JSON.stringify(column.default);
81
+ }
82
+ code = `${code}.default(${sanitizedDefault})`;
83
+ }
84
+ if (column.reference) {
85
+ code = `${code}.references(() => ${column.reference.table}.${column.reference.name}, {
86
+ ${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}
87
+ })`;
88
+ }
89
+ return code;
90
+ };
91
+
92
+ //# 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}) => {\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 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 code = `${code}.primaryKey()`\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' || column.type === 'numeric') {\n sanitizedDefault = JSON.stringify(column.default)\n }\n\n code = `${code}.default(${sanitizedDefault})`\n }\n\n if (column.reference) {\n code = `${code}.references(() => ${column.reference.table}.${column.reference.name}, {\n ${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}\n })`\n }\n\n return code\n}\n"],"names":["columnToCodeConverter","adapter","addImport","column","locales","columnBuilderFn","type","columnBuilderArgsArray","defaultStatement","push","options","map","locale","join","defaultRandom","packageName","columnBuilderArgs","length","code","name","notNull","primaryKey","default","sanitizedDefault","JSON","stringify","reference","table","onDelete"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from 'drizzle-orm';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle-proxy/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from 'drizzle-orm';
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/drizzle-proxy/index.ts"],"sourcesContent":["export * from 'drizzle-orm'\n"],"names":[],"mappings":"AAAA,cAAc,cAAa"}
@@ -0,0 +1,2 @@
1
+ export * from 'drizzle-orm/libsql';
2
+ //# sourceMappingURL=libsql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libsql.d.ts","sourceRoot":"","sources":["../../src/drizzle-proxy/libsql.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from 'drizzle-orm/libsql';
2
+
3
+ //# sourceMappingURL=libsql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/drizzle-proxy/libsql.ts"],"sourcesContent":["export * from 'drizzle-orm/libsql'\n"],"names":[],"mappings":"AAAA,cAAc,qBAAoB"}
@@ -0,0 +1,2 @@
1
+ export * from 'drizzle-orm/relations';
2
+ //# sourceMappingURL=relations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/drizzle-proxy/relations.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from 'drizzle-orm/relations';
2
+
3
+ //# sourceMappingURL=relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/drizzle-proxy/relations.ts"],"sourcesContent":["export * from 'drizzle-orm/relations'\n"],"names":[],"mappings":"AAAA,cAAc,wBAAuB"}
@@ -0,0 +1,2 @@
1
+ export * from 'drizzle-orm/sqlite-core';
2
+ //# sourceMappingURL=sqlite-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-core.d.ts","sourceRoot":"","sources":["../../src/drizzle-proxy/sqlite-core.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from 'drizzle-orm/sqlite-core';
2
+
3
+ //# sourceMappingURL=sqlite-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/drizzle-proxy/sqlite-core.ts"],"sourcesContent":["export * from 'drizzle-orm/sqlite-core'\n"],"names":[],"mappings":"AAAA,cAAc,0BAAyB"}
@@ -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;AAyC1D,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAcrD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAIjC,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAmH3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAA;AA0C1D,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAerD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAIjC,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAAC,aAAa,CAAC,CA2H3E"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
- import { beginTransaction, buildCreateMigration, commitTransaction, count, countGlobalVersions, countVersions, create, createGlobal, createGlobalVersion, createVersion, deleteMany, deleteOne, deleteVersions, destroy, find, findGlobal, findGlobalVersions, findMigrationDir, findOne, findVersions, migrate, migrateDown, migrateFresh, migrateRefresh, migrateReset, migrateStatus, operatorMap, queryDrafts, rollbackTransaction, updateGlobal, updateGlobalVersion, updateOne, updateVersion } from '@payloadcms/drizzle';
1
+ import { beginTransaction, buildCreateMigration, commitTransaction, count, countGlobalVersions, countVersions, create, createGlobal, createGlobalVersion, createSchemaGenerator, createVersion, deleteMany, deleteOne, deleteVersions, destroy, find, findGlobal, findGlobalVersions, findMigrationDir, findOne, findVersions, migrate, migrateDown, migrateFresh, migrateRefresh, migrateReset, migrateStatus, operatorMap, queryDrafts, rollbackTransaction, updateGlobal, updateGlobalVersion, updateOne, updateVersion } from '@payloadcms/drizzle';
2
2
  import { like } from 'drizzle-orm';
3
3
  import { createDatabaseAdapter, defaultBeginTransaction } from 'payload';
4
4
  import { fileURLToPath } from 'url';
5
+ import { columnToCodeConverter } from './columnToCodeConverter.js';
5
6
  import { connect } from './connect.js';
6
7
  import { countDistinct } from './countDistinct.js';
7
8
  import { convertPathToJSONTraversal } from './createJSONQuery/convertPathToJSONTraversal.js';
@@ -44,6 +45,12 @@ export function sqliteAdapter(args) {
44
45
  json: true
45
46
  },
46
47
  fieldConstraints: {},
48
+ generateSchema: createSchemaGenerator({
49
+ columnToCodeConverter,
50
+ corePackageSuffix: 'sqlite-core',
51
+ defaultOutputFile: args.generateSchemaOutputFile,
52
+ tableImport: 'sqliteTable'
53
+ }),
47
54
  idType: postgresIDType,
48
55
  initializing,
49
56
  localesSuffix: args.localesSuffix || '_locales',
@@ -51,6 +58,8 @@ export function sqliteAdapter(args) {
51
58
  operators,
52
59
  prodMigrations: args.prodMigrations,
53
60
  push: args.push,
61
+ rawRelations: {},
62
+ rawTables: {},
54
63
  relations: {},
55
64
  relationshipsSuffix: args.relationshipsSuffix || '_rels',
56
65
  schema: {},
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 createVersion,\n deleteMany,\n deleteOne,\n deleteVersions,\n destroy,\n find,\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 updateOne,\n updateVersion,\n} from '@payloadcms/drizzle'\nimport { like } 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'\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\nexport type { MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nexport { sql } from 'drizzle-orm'\n\nconst filename = fileURLToPath(import.meta.url)\n\nexport function sqliteAdapter(args: Args): DatabaseAdapterObj<SQLiteAdapter> {\n const postgresIDType = args.idType || 'serial'\n const payloadIDType = postgresIDType === 'serial' ? 'number' : 'text'\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 } as unknown as Operators\n\n return createDatabaseAdapter<SQLiteAdapter>({\n name: 'sqlite',\n afterSchemaInit: args.afterSchemaInit ?? [],\n beforeSchemaInit: args.beforeSchemaInit ?? [],\n client: undefined,\n clientConfig: args.client,\n defaultDrizzleSnapshot,\n drizzle: undefined,\n features: {\n json: true,\n },\n fieldConstraints: {},\n idType: postgresIDType,\n initializing,\n localesSuffix: args.localesSuffix || '_locales',\n logger: args.logger,\n operators,\n prodMigrations: args.prodMigrations,\n push: args.push,\n relations: {},\n relationshipsSuffix: args.relationshipsSuffix || '_rels',\n schema: {},\n schemaName: args.schemaName,\n sessions: {},\n tableNameMap: new Map<string, string>(),\n tables: {},\n transactionOptions: args.transactionOptions || undefined,\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 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: updateOne,\n })\n }\n\n return {\n defaultIDType: payloadIDType,\n init: adapter,\n }\n}\n"],"names":["beginTransaction","buildCreateMigration","commitTransaction","count","countGlobalVersions","countVersions","create","createGlobal","createGlobalVersion","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","rollbackTransaction","updateGlobal","updateGlobalVersion","updateOne","updateVersion","like","createDatabaseAdapter","defaultBeginTransaction","fileURLToPath","connect","countDistinct","convertPathToJSONTraversal","createJSONQuery","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","requireDrizzleKit","sql","filename","url","sqliteAdapter","args","postgresIDType","idType","payloadIDType","adapter","payload","migrationDir","resolveInitializing","rejectInitializing","initializing","Promise","res","rej","operators","contains","name","afterSchemaInit","beforeSchemaInit","client","undefined","clientConfig","drizzle","features","json","fieldConstraints","localesSuffix","logger","prodMigrations","push","relations","relationshipsSuffix","schema","schemaName","sessions","tableNameMap","Map","tables","transactionOptions","versionsSuffix","createMigration","executeMethod","sanitizeStatements","sqlExecute","statements","map","statement","replaceAll","join","defaultIDType","indexes","Set","packageName","upsert"],"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 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 updateOne,\n updateVersion,\n} from '@payloadcms/drizzle'\nimport { like } 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\nexport type { MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nexport { sql } from 'drizzle-orm'\n\nconst filename = fileURLToPath(import.meta.url)\n\nexport function sqliteAdapter(args: Args): DatabaseAdapterObj<SQLiteAdapter> {\n const postgresIDType = args.idType || 'serial'\n const payloadIDType = postgresIDType === 'serial' ? 'number' : 'text'\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 } as unknown as Operators\n\n return createDatabaseAdapter<SQLiteAdapter>({\n name: 'sqlite',\n afterSchemaInit: args.afterSchemaInit ?? [],\n beforeSchemaInit: args.beforeSchemaInit ?? [],\n client: undefined,\n clientConfig: args.client,\n defaultDrizzleSnapshot,\n drizzle: undefined,\n features: {\n json: true,\n },\n fieldConstraints: {},\n generateSchema: createSchemaGenerator({\n columnToCodeConverter,\n corePackageSuffix: 'sqlite-core',\n defaultOutputFile: args.generateSchemaOutputFile,\n tableImport: 'sqliteTable',\n }),\n idType: postgresIDType,\n initializing,\n localesSuffix: args.localesSuffix || '_locales',\n logger: args.logger,\n operators,\n prodMigrations: args.prodMigrations,\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 transactionOptions: args.transactionOptions || undefined,\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 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: updateOne,\n })\n }\n\n return {\n defaultIDType: payloadIDType,\n init: adapter,\n }\n}\n"],"names":["beginTransaction","buildCreateMigration","commitTransaction","count","countGlobalVersions","countVersions","create","createGlobal","createGlobalVersion","createSchemaGenerator","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","rollbackTransaction","updateGlobal","updateGlobalVersion","updateOne","updateVersion","like","createDatabaseAdapter","defaultBeginTransaction","fileURLToPath","columnToCodeConverter","connect","countDistinct","convertPathToJSONTraversal","createJSONQuery","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","requireDrizzleKit","sql","filename","url","sqliteAdapter","args","postgresIDType","idType","payloadIDType","adapter","payload","migrationDir","resolveInitializing","rejectInitializing","initializing","Promise","res","rej","operators","contains","name","afterSchemaInit","beforeSchemaInit","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","upsert"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAY9D,eAAO,MAAM,IAAI,EAAE,IA6HlB,CAAA"}
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,IA4BlB,CAAA"}
package/dist/init.js CHANGED
@@ -1,113 +1,31 @@
1
- import { createTableName, executeSchemaHooks } from '@payloadcms/drizzle';
2
- import { uniqueIndex } from 'drizzle-orm/sqlite-core';
3
- import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
4
- import toSnakeCase from 'to-snake-case';
5
- import { buildTable } from './schema/build.js';
1
+ import { buildDrizzleRelations, buildRawSchema, executeSchemaHooks } from '@payloadcms/drizzle';
2
+ import { buildDrizzleTable } from './schema/buildDrizzleTable.js';
3
+ import { setColumnID } from './schema/setColumnID.js';
6
4
  export const init = async function init() {
7
5
  let locales;
8
- await executeSchemaHooks({
9
- type: 'beforeSchemaInit',
10
- adapter: this
11
- });
6
+ this.rawRelations = {};
7
+ this.rawTables = {};
12
8
  if (this.payload.config.localization) {
13
9
  locales = this.payload.config.localization.locales.map(({ code })=>code);
14
10
  }
15
- this.payload.config.collections.forEach((collection)=>{
16
- createTableName({
17
- adapter: this,
18
- config: collection
19
- });
20
- if (collection.versions) {
21
- createTableName({
22
- adapter: this,
23
- config: collection,
24
- versions: true,
25
- versionsCustomName: true
26
- });
27
- }
11
+ const adapter = this;
12
+ buildRawSchema({
13
+ adapter,
14
+ setColumnID
28
15
  });
29
- this.payload.config.collections.forEach((collection)=>{
30
- const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
31
- const config = this.payload.config;
32
- const baseExtraConfig = {};
33
- if (collection.upload.filenameCompoundIndex) {
34
- const indexName = `${tableName}_filename_compound_idx`;
35
- baseExtraConfig.filename_compound_index = (cols)=>{
36
- const colsConstraint = collection.upload.filenameCompoundIndex.map((f)=>{
37
- return cols[f];
38
- });
39
- return uniqueIndex(indexName).on(colsConstraint[0], ...colsConstraint.slice(1));
40
- };
41
- }
42
- if (collection.upload.filenameCompoundIndex) {
43
- const indexName = `${tableName}_filename_compound_idx`;
44
- baseExtraConfig.filename_compound_index = (cols)=>{
45
- const colsConstraint = collection.upload.filenameCompoundIndex.map((f)=>{
46
- return cols[f];
47
- });
48
- return uniqueIndex(indexName).on(colsConstraint[0], ...colsConstraint.slice(1));
49
- };
50
- }
51
- buildTable({
52
- adapter: this,
53
- disableNotNull: !!collection?.versions?.drafts,
54
- disableUnique: false,
55
- fields: collection.flattenedFields,
56
- locales,
57
- tableName,
58
- timestamps: collection.timestamps,
59
- versions: false
60
- });
61
- if (collection.versions) {
62
- const versionsTableName = this.tableNameMap.get(`_${toSnakeCase(collection.slug)}${this.versionsSuffix}`);
63
- const versionFields = buildVersionCollectionFields(config, collection, true);
64
- buildTable({
65
- adapter: this,
66
- disableNotNull: !!collection.versions?.drafts,
67
- disableUnique: true,
68
- fields: versionFields,
69
- locales,
70
- tableName: versionsTableName,
71
- timestamps: true,
72
- versions: true
73
- });
74
- }
16
+ await executeSchemaHooks({
17
+ type: 'beforeSchemaInit',
18
+ adapter: this
75
19
  });
76
- this.payload.config.globals.forEach((global)=>{
77
- const tableName = createTableName({
78
- adapter: this,
79
- config: global
80
- });
81
- buildTable({
82
- adapter: this,
83
- disableNotNull: !!global?.versions?.drafts,
84
- disableUnique: false,
85
- fields: global.flattenedFields,
20
+ for(const tableName in this.rawTables){
21
+ buildDrizzleTable({
22
+ adapter,
86
23
  locales,
87
- tableName,
88
- timestamps: false,
89
- versions: false
24
+ rawTable: this.rawTables[tableName]
90
25
  });
91
- if (global.versions) {
92
- const versionsTableName = createTableName({
93
- adapter: this,
94
- config: global,
95
- versions: true,
96
- versionsCustomName: true
97
- });
98
- const config = this.payload.config;
99
- const versionFields = buildVersionGlobalFields(config, global, true);
100
- buildTable({
101
- adapter: this,
102
- disableNotNull: !!global.versions?.drafts,
103
- disableUnique: true,
104
- fields: versionFields,
105
- locales,
106
- tableName: versionsTableName,
107
- timestamps: true,
108
- versions: true
109
- });
110
- }
26
+ }
27
+ buildDrizzleRelations({
28
+ adapter
111
29
  });
112
30
  await executeSchemaHooks({
113
31
  type: 'afterSchemaInit',
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport { createTableName, executeSchemaHooks } from '@payloadcms/drizzle'\nimport { uniqueIndex } from 'drizzle-orm/sqlite-core'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BaseExtraConfig } from './schema/build.js'\nimport type { SQLiteAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\n\nexport const init: Init = async function init(this: SQLiteAdapter) {\n let locales: [string, ...string[]] | undefined\n await executeSchemaHooks({ type: 'beforeSchemaInit', adapter: this })\n\n if (this.payload.config.localization) {\n locales = this.payload.config.localization.locales.map(({ code }) => code) as [\n string,\n ...string[],\n ]\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n createTableName({\n adapter: this as unknown as DrizzleAdapter,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter: this as unknown as DrizzleAdapter,\n config: collection,\n versions: true,\n versionsCustomName: true,\n })\n }\n })\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const config = this.payload.config\n\n const baseExtraConfig: BaseExtraConfig = {}\n\n if (collection.upload.filenameCompoundIndex) {\n const indexName = `${tableName}_filename_compound_idx`\n\n baseExtraConfig.filename_compound_index = (cols) => {\n const colsConstraint = collection.upload.filenameCompoundIndex.map((f) => {\n return cols[f]\n })\n return uniqueIndex(indexName).on(colsConstraint[0], ...colsConstraint.slice(1))\n }\n }\n\n if (collection.upload.filenameCompoundIndex) {\n const indexName = `${tableName}_filename_compound_idx`\n\n baseExtraConfig.filename_compound_index = (cols) => {\n const colsConstraint = collection.upload.filenameCompoundIndex.map((f) => {\n return cols[f]\n })\n return uniqueIndex(indexName).on(colsConstraint[0], ...colsConstraint.slice(1))\n }\n }\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.flattenedFields,\n locales,\n tableName,\n timestamps: collection.timestamps,\n versions: false,\n })\n\n if (collection.versions) {\n const versionsTableName = this.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${this.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(config, collection, true)\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n locales,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n this.payload.config.globals.forEach((global) => {\n const tableName = createTableName({\n adapter: this as unknown as DrizzleAdapter,\n config: global,\n })\n\n buildTable({\n adapter: this,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.flattenedFields,\n locales,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter: this as unknown as DrizzleAdapter,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const config = this.payload.config\n const versionFields = buildVersionGlobalFields(config, global, true)\n\n buildTable({\n adapter: this,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n locales,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n await executeSchemaHooks({ type: 'afterSchemaInit', adapter: this })\n}\n"],"names":["createTableName","executeSchemaHooks","uniqueIndex","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","buildTable","init","locales","type","adapter","payload","config","localization","map","code","collections","forEach","collection","versions","versionsCustomName","tableName","tableNameMap","get","slug","baseExtraConfig","upload","filenameCompoundIndex","indexName","filename_compound_index","cols","colsConstraint","f","on","slice","disableNotNull","drafts","disableUnique","fields","flattenedFields","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"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"}
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, rawTable: this.rawTables[tableName] })\n }\n\n buildDrizzleRelations({\n adapter,\n })\n\n await executeSchemaHooks({ type: 'afterSchemaInit', adapter: this })\n}\n"],"names":["buildDrizzleRelations","buildRawSchema","executeSchemaHooks","buildDrizzleTable","setColumnID","init","locales","rawRelations","rawTables","payload","config","localization","map","code","adapter","type","tableName","rawTable"],"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;YAASW,UAAU,IAAI,CAACT,SAAS,CAACQ,UAAU;QAAC;IAC5E;IAEAhB,sBAAsB;QACpBc;IACF;IAEA,MAAMZ,mBAAmB;QAAEa,MAAM;QAAmBD,SAAS,IAAI;IAAC;AACpE,EAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BuildDrizzleTable } from '@payloadcms/drizzle/types';
2
+ export declare const buildDrizzleTable: BuildDrizzleTable;
3
+ //# sourceMappingURL=buildDrizzleTable.d.ts.map
@@ -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,iBAwI/B,CAAA"}
@@ -0,0 +1,135 @@
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
+ // Not used yet in SQLite but ready here.
54
+ case 'uuid':
55
+ {
56
+ let builder = text(column.name);
57
+ if (column.defaultRandom) {
58
+ builder = builder.$defaultFn(()=>uuidv4());
59
+ }
60
+ columns[key] = builder;
61
+ break;
62
+ }
63
+ case 'varchar':
64
+ {
65
+ columns[key] = text(column.name);
66
+ break;
67
+ }
68
+ default:
69
+ columns[key] = rawColumnBuilderMap[column.type](column.name);
70
+ break;
71
+ }
72
+ if (column.reference) {
73
+ columns[key].references(()=>adapter.tables[column.reference.table][column.reference.name], {
74
+ onDelete: column.reference.onDelete
75
+ });
76
+ }
77
+ if (column.primaryKey) {
78
+ columns[key].primaryKey();
79
+ }
80
+ if (column.notNull) {
81
+ columns[key].notNull();
82
+ }
83
+ if (typeof column.default !== 'undefined') {
84
+ let sanitizedDefault = column.default;
85
+ if (column.type === 'geometry' && Array.isArray(column.default)) {
86
+ sanitizedDefault = JSON.stringify({
87
+ type: 'Point',
88
+ coordinates: [
89
+ column.default[0],
90
+ column.default[1]
91
+ ]
92
+ });
93
+ }
94
+ columns[key].default(sanitizedDefault);
95
+ }
96
+ }
97
+ const extraConfig = (cols)=>{
98
+ const config = {};
99
+ if (rawTable.indexes) {
100
+ for (const [key, rawIndex] of Object.entries(rawTable.indexes)){
101
+ let fn = index;
102
+ if (rawIndex.unique) {
103
+ fn = uniqueIndex;
104
+ }
105
+ if (Array.isArray(rawIndex.on)) {
106
+ if (rawIndex.on.length) {
107
+ config[key] = fn(rawIndex.name).on(...rawIndex.on.map((colName)=>cols[colName]));
108
+ }
109
+ } else {
110
+ config[key] = fn(rawIndex.name).on(cols[rawIndex.on]);
111
+ }
112
+ }
113
+ }
114
+ if (rawTable.foreignKeys) {
115
+ for (const [key, rawForeignKey] of Object.entries(rawTable.foreignKeys)){
116
+ let builder = foreignKey({
117
+ name: rawForeignKey.name,
118
+ columns: rawForeignKey.columns.map((colName)=>cols[colName]),
119
+ foreignColumns: rawForeignKey.foreignColumns.map((column)=>adapter.tables[column.table][column.name])
120
+ });
121
+ if (rawForeignKey.onDelete) {
122
+ builder = builder.onDelete(rawForeignKey.onDelete);
123
+ }
124
+ if (rawForeignKey.onUpdate) {
125
+ builder = builder.onDelete(rawForeignKey.onUpdate);
126
+ }
127
+ config[key] = builder;
128
+ }
129
+ }
130
+ return config;
131
+ };
132
+ adapter.tables[rawTable.name] = sqliteTable(rawTable.name, columns, extraConfig);
133
+ };
134
+
135
+ //# 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 // Not used yet in SQLite but ready here.\n case 'uuid': {\n let builder = text(column.name)\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 columns[key].references(() => adapter.tables[column.reference.table][column.reference.name], {\n onDelete: column.reference.onDelete,\n })\n }\n\n if (column.primaryKey) {\n columns[key].primaryKey()\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","defaultRandom","$defaultFn","reference","references","tables","table","onDelete","primaryKey","notNull","sanitizedDefault","Array","isArray","JSON","stringify","coordinates","extraConfig","cols","config","indexes","rawIndex","fn","unique","on","length","map","colName","foreignKeys","rawForeignKey","foreignColumns","onUpdate"],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- import type { SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core';
2
- import type { FlattenedField } from 'payload';
3
- import type { IDType } from '../types.js';
4
- type Args = {
5
- columns: Record<string, SQLiteColumnBuilder>;
6
- fields: FlattenedField[];
7
- };
8
- export declare const setColumnID: ({ columns, fields }: Args) => IDType;
9
- export {};
1
+ import type { SetColumnID } from '@payloadcms/drizzle/types';
2
+ export declare const setColumnID: SetColumnID;
10
3
  //# sourceMappingURL=setColumnID.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setColumnID.d.ts","sourceRoot":"","sources":["../../src/schema/setColumnID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC5C,MAAM,EAAE,cAAc,EAAE,CAAA;CACzB,CAAA;AACD,eAAO,MAAM,WAAW,wBAAyB,IAAI,KAAG,MAgBvD,CAAA"}
1
+ {"version":3,"file":"setColumnID.d.ts","sourceRoot":"","sources":["../../src/schema/setColumnID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,eAAO,MAAM,WAAW,EAAE,WA6BzB,CAAA"}