@payloadcms/db-postgres 3.0.0-canary.e14c80d → 3.0.0-canary.e1fc0e0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/connect.d.ts.map +1 -1
- package/dist/connect.js +24 -6
- package/dist/connect.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -16
- package/dist/index.js.map +1 -1
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts.map +1 -1
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js +3 -1
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js.map +1 -1
- package/dist/predefinedMigrations/v2-v3/index.js +2 -2
- package/dist/predefinedMigrations/v2-v3/index.js.map +1 -1
- package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -1
- package/dist/predefinedMigrations/v2-v3/migrateRelationships.js +9 -3
- package/dist/predefinedMigrations/v2-v3/migrateRelationships.js.map +1 -1
- package/dist/types.d.ts +27 -106
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +11 -9
- package/dist/countDistinct.d.ts +0 -3
- package/dist/countDistinct.d.ts.map +0 -1
- package/dist/countDistinct.js +0 -24
- package/dist/countDistinct.js.map +0 -1
- package/dist/createJSONQuery/convertPathToJSONTraversal.d.ts +0 -2
- package/dist/createJSONQuery/convertPathToJSONTraversal.d.ts.map +0 -1
- package/dist/createJSONQuery/convertPathToJSONTraversal.js +0 -14
- package/dist/createJSONQuery/convertPathToJSONTraversal.js.map +0 -1
- package/dist/createJSONQuery/formatJSONPathSegment.d.ts +0 -2
- package/dist/createJSONQuery/formatJSONPathSegment.d.ts.map +0 -1
- package/dist/createJSONQuery/formatJSONPathSegment.js +0 -5
- package/dist/createJSONQuery/formatJSONPathSegment.js.map +0 -1
- package/dist/createJSONQuery/index.d.ts +0 -10
- package/dist/createJSONQuery/index.d.ts.map +0 -1
- package/dist/createJSONQuery/index.js +0 -54
- package/dist/createJSONQuery/index.js.map +0 -1
- package/dist/createMigration.d.ts +0 -3
- package/dist/createMigration.d.ts.map +0 -1
- package/dist/createMigration.js +0 -91
- package/dist/createMigration.js.map +0 -1
- package/dist/defaultSnapshot.d.ts +0 -3
- package/dist/defaultSnapshot.d.ts.map +0 -1
- package/dist/defaultSnapshot.js +0 -17
- package/dist/defaultSnapshot.js.map +0 -1
- package/dist/deleteWhere.d.ts +0 -3
- package/dist/deleteWhere.d.ts.map +0 -1
- package/dist/deleteWhere.js +0 -6
- package/dist/deleteWhere.js.map +0 -1
- package/dist/dropDatabase.d.ts +0 -3
- package/dist/dropDatabase.d.ts.map +0 -1
- package/dist/dropDatabase.js +0 -9
- package/dist/dropDatabase.js.map +0 -1
- package/dist/execute.d.ts +0 -3
- package/dist/execute.d.ts.map +0 -1
- package/dist/execute.js +0 -11
- package/dist/execute.js.map +0 -1
- package/dist/getMigrationTemplate.d.ts +0 -4
- package/dist/getMigrationTemplate.d.ts.map +0 -1
- package/dist/getMigrationTemplate.js +0 -13
- package/dist/getMigrationTemplate.js.map +0 -1
- package/dist/init.d.ts +0 -3
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -95
- package/dist/init.js.map +0 -1
- package/dist/insert.d.ts +0 -3
- package/dist/insert.d.ts.map +0 -1
- package/dist/insert.js +0 -12
- package/dist/insert.js.map +0 -1
- package/dist/requireDrizzleKit.d.ts +0 -3
- package/dist/requireDrizzleKit.d.ts.map +0 -1
- package/dist/requireDrizzleKit.js +0 -5
- package/dist/requireDrizzleKit.js.map +0 -1
- package/dist/schema/build.d.ts +0 -38
- package/dist/schema/build.d.ts.map +0 -1
- package/dist/schema/build.js +0 -369
- package/dist/schema/build.js.map +0 -1
- package/dist/schema/createIndex.d.ts +0 -12
- package/dist/schema/createIndex.d.ts.map +0 -1
- package/dist/schema/createIndex.js +0 -18
- package/dist/schema/createIndex.js.map +0 -1
- package/dist/schema/idToUUID.d.ts +0 -3
- package/dist/schema/idToUUID.d.ts.map +0 -1
- package/dist/schema/idToUUID.js +0 -11
- package/dist/schema/idToUUID.js.map +0 -1
- package/dist/schema/parentIDColumnMap.d.ts +0 -4
- package/dist/schema/parentIDColumnMap.d.ts.map +0 -1
- package/dist/schema/parentIDColumnMap.js +0 -9
- package/dist/schema/parentIDColumnMap.js.map +0 -1
- package/dist/schema/setColumnID.d.ts +0 -11
- package/dist/schema/setColumnID.d.ts.map +0 -1
- package/dist/schema/setColumnID.js +0 -24
- package/dist/schema/setColumnID.js.map +0 -1
- package/dist/schema/traverseFields.d.ts +0 -36
- package/dist/schema/traverseFields.d.ts.map +0 -1
- package/dist/schema/traverseFields.js +0 -613
- package/dist/schema/traverseFields.js.map +0 -1
- package/dist/schema/withDefault.d.ts +0 -4
- package/dist/schema/withDefault.d.ts.map +0 -1
- package/dist/schema/withDefault.js +0 -10
- package/dist/schema/withDefault.js.map +0 -1
package/dist/dropDatabase.js
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
export const dropDatabase = async function dropDatabase({ adapter }) {
|
2
|
-
await adapter.execute({
|
3
|
-
drizzle: adapter.drizzle,
|
4
|
-
raw: `drop schema if exists ${this.schemaName || 'public'} cascade;
|
5
|
-
create schema ${this.schemaName || 'public'};`
|
6
|
-
});
|
7
|
-
};
|
8
|
-
|
9
|
-
//# sourceMappingURL=dropDatabase.js.map
|
package/dist/dropDatabase.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/dropDatabase.ts"],"sourcesContent":["import type { DropDatabase } from './types.js'\n\nexport const dropDatabase: DropDatabase = async function dropDatabase({ adapter }) {\n await adapter.execute({\n drizzle: adapter.drizzle,\n raw: `drop schema if exists ${this.schemaName || 'public'} cascade;\n create schema ${this.schemaName || 'public'};`,\n })\n}\n"],"names":["dropDatabase","adapter","execute","drizzle","raw","schemaName"],"mappings":"AAEA,OAAO,MAAMA,eAA6B,eAAeA,aAAa,EAAEC,OAAO,EAAE;IAC/E,MAAMA,QAAQC,OAAO,CAAC;QACpBC,SAASF,QAAQE,OAAO;QACxBC,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAACC,UAAU,IAAI,SAAS;kBAC5C,EAAE,IAAI,CAACA,UAAU,IAAI,SAAS,CAAC,CAAC;IAChD;AACF,EAAC"}
|
package/dist/execute.d.ts
DELETED
package/dist/execute.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
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,CAQhC,CAAA"}
|
package/dist/execute.js
DELETED
@@ -1,11 +0,0 @@
|
|
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
|
-
return executeFrom.execute(sql.raw(raw));
|
6
|
-
} else {
|
7
|
-
return executeFrom.execute(sql`${statement}`);
|
8
|
-
}
|
9
|
-
};
|
10
|
-
|
11
|
-
//# sourceMappingURL=execute.js.map
|
package/dist/execute.js.map
DELETED
@@ -1 +0,0 @@
|
|
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 return executeFrom.execute(sql.raw(raw))\n } else {\n return executeFrom.execute(sql`${statement}`)\n }\n}\n"],"names":["sql","execute","db","drizzle","raw","statement","executeFrom"],"mappings":"AAAA,SAASA,GAAG,QAAQ,cAAa;AAIjC,OAAO,MAAMC,UAAwB,SAASA,QAAQ,EAAEC,EAAE,EAAEC,OAAO,EAAEC,GAAG,EAAEJ,KAAKK,SAAS,EAAE;IACxF,MAAMC,cAAcJ,MAAMC;IAE1B,IAAIC,KAAK;QACP,OAAOE,YAAYL,OAAO,CAACD,IAAII,GAAG,CAACA;IACrC,OAAO;QACL,OAAOE,YAAYL,OAAO,CAACD,GAAG,CAAC,EAAEK,UAAU,CAAC;IAC9C;AACF,EAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"getMigrationTemplate.d.ts","sourceRoot":"","sources":["../src/getMigrationTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,eAAO,MAAM,MAAM,SAAU,MAAM,WAIpB,CAAA;AAEf,eAAO,MAAM,oBAAoB,iCAI9B,qBAAqB,KAAG,MAS1B,CAAA"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
export const indent = (text)=>text.split('\n').map((line)=>` ${line}`).join('\n');
|
2
|
-
export const getMigrationTemplate = ({ downSQL, imports, upSQL })=>`import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
3
|
-
${imports ? `${imports}\n` : ''}
|
4
|
-
export async function up({ payload, req }: MigrateUpArgs): Promise<void> {
|
5
|
-
${indent(upSQL)}
|
6
|
-
}
|
7
|
-
|
8
|
-
export async function down({ payload, req }: MigrateDownArgs): Promise<void> {
|
9
|
-
${indent(downSQL)}
|
10
|
-
}
|
11
|
-
`;
|
12
|
-
|
13
|
-
//# sourceMappingURL=getMigrationTemplate.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/getMigrationTemplate.ts"],"sourcesContent":["import type { MigrationTemplateArgs } from 'payload'\n\nexport const indent = (text: string) =>\n text\n .split('\\n')\n .map((line) => ` ${line}`)\n .join('\\n')\n\nexport const getMigrationTemplate = ({\n downSQL,\n imports,\n upSQL,\n}: MigrationTemplateArgs): string => `import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'\n${imports ? `${imports}\\n` : ''}\nexport async function up({ payload, req }: MigrateUpArgs): Promise<void> {\n${indent(upSQL)}\n}\n\nexport async function down({ payload, req }: MigrateDownArgs): Promise<void> {\n${indent(downSQL)}\n}\n`\n"],"names":["indent","text","split","map","line","join","getMigrationTemplate","downSQL","imports","upSQL"],"mappings":"AAEA,OAAO,MAAMA,SAAS,CAACC,OACrBA,KACGC,KAAK,CAAC,MACNC,GAAG,CAAC,CAACC,OAAS,CAAC,EAAE,EAAEA,KAAK,CAAC,EACzBC,IAAI,CAAC,MAAK;AAEf,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,OAAO,EACPC,OAAO,EACPC,KAAK,EACiB,GAAa,CAAC;AACtC,EAAED,UAAU,CAAC,EAAEA,QAAQ,EAAE,CAAC,GAAG,GAAG;;AAEhC,EAAER,OAAOS,OAAO;;;;AAIhB,EAAET,OAAOO,SAAS;;AAElB,CAAC,CAAA"}
|
package/dist/init.d.ts
DELETED
package/dist/init.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAY9D,eAAO,MAAM,IAAI,EAAE,IAqGlB,CAAA"}
|
package/dist/init.js
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
import { createTableName } from '@payloadcms/drizzle';
|
2
|
-
import { uniqueIndex } from 'drizzle-orm/pg-core';
|
3
|
-
import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
|
4
|
-
import toSnakeCase from 'to-snake-case';
|
5
|
-
import { buildTable } from './schema/build.js';
|
6
|
-
export const init = function init() {
|
7
|
-
if (this.payload.config.localization) {
|
8
|
-
this.enums.enum__locales = this.pgSchema.enum('_locales', this.payload.config.localization.locales.map(({ code })=>code));
|
9
|
-
}
|
10
|
-
this.payload.config.collections.forEach((collection)=>{
|
11
|
-
createTableName({
|
12
|
-
adapter: this,
|
13
|
-
config: collection
|
14
|
-
});
|
15
|
-
if (collection.versions) {
|
16
|
-
createTableName({
|
17
|
-
adapter: this,
|
18
|
-
config: collection,
|
19
|
-
versions: true,
|
20
|
-
versionsCustomName: true
|
21
|
-
});
|
22
|
-
}
|
23
|
-
});
|
24
|
-
this.payload.config.collections.forEach((collection)=>{
|
25
|
-
const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
|
26
|
-
const baseExtraConfig = {};
|
27
|
-
if (collection.upload.filenameCompoundIndex) {
|
28
|
-
const indexName = `${tableName}_filename_compound_idx`;
|
29
|
-
baseExtraConfig.filename_compound_index = (cols)=>{
|
30
|
-
const colsConstraint = collection.upload.filenameCompoundIndex.map((f)=>{
|
31
|
-
return cols[f];
|
32
|
-
});
|
33
|
-
return uniqueIndex(indexName).on(colsConstraint[0], ...colsConstraint.slice(1));
|
34
|
-
};
|
35
|
-
}
|
36
|
-
buildTable({
|
37
|
-
adapter: this,
|
38
|
-
baseExtraConfig,
|
39
|
-
disableNotNull: !!collection?.versions?.drafts,
|
40
|
-
disableUnique: false,
|
41
|
-
fields: collection.fields,
|
42
|
-
tableName,
|
43
|
-
timestamps: collection.timestamps,
|
44
|
-
versions: false
|
45
|
-
});
|
46
|
-
if (collection.versions) {
|
47
|
-
const versionsTableName = this.tableNameMap.get(`_${toSnakeCase(collection.slug)}${this.versionsSuffix}`);
|
48
|
-
const versionFields = buildVersionCollectionFields(collection);
|
49
|
-
buildTable({
|
50
|
-
adapter: this,
|
51
|
-
disableNotNull: !!collection.versions?.drafts,
|
52
|
-
disableUnique: true,
|
53
|
-
fields: versionFields,
|
54
|
-
tableName: versionsTableName,
|
55
|
-
timestamps: true,
|
56
|
-
versions: true
|
57
|
-
});
|
58
|
-
}
|
59
|
-
});
|
60
|
-
this.payload.config.globals.forEach((global)=>{
|
61
|
-
const tableName = createTableName({
|
62
|
-
adapter: this,
|
63
|
-
config: global
|
64
|
-
});
|
65
|
-
buildTable({
|
66
|
-
adapter: this,
|
67
|
-
disableNotNull: !!global?.versions?.drafts,
|
68
|
-
disableUnique: false,
|
69
|
-
fields: global.fields,
|
70
|
-
tableName,
|
71
|
-
timestamps: false,
|
72
|
-
versions: false
|
73
|
-
});
|
74
|
-
if (global.versions) {
|
75
|
-
const versionsTableName = createTableName({
|
76
|
-
adapter: this,
|
77
|
-
config: global,
|
78
|
-
versions: true,
|
79
|
-
versionsCustomName: true
|
80
|
-
});
|
81
|
-
const versionFields = buildVersionGlobalFields(global);
|
82
|
-
buildTable({
|
83
|
-
adapter: this,
|
84
|
-
disableNotNull: !!global.versions?.drafts,
|
85
|
-
disableUnique: true,
|
86
|
-
fields: versionFields,
|
87
|
-
tableName: versionsTableName,
|
88
|
-
timestamps: true,
|
89
|
-
versions: true
|
90
|
-
});
|
91
|
-
}
|
92
|
-
});
|
93
|
-
};
|
94
|
-
|
95
|
-
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport { createTableName } from '@payloadcms/drizzle'\nimport { uniqueIndex } from 'drizzle-orm/pg-core'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BaseExtraConfig } from './schema/build.js'\nimport type { PostgresAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\n\nexport const init: Init = function init(this: PostgresAdapter) {\n if (this.payload.config.localization) {\n this.enums.enum__locales = this.pgSchema.enum(\n '_locales',\n this.payload.config.localization.locales.map(({ code }) => code) as [string, ...string[]],\n )\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n createTableName({\n adapter: this,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter: this,\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\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 buildTable({\n adapter: this,\n baseExtraConfig,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.fields,\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(collection)\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n this.payload.config.globals.forEach((global) => {\n const tableName = createTableName({ adapter: this, config: global })\n\n buildTable({\n adapter: this,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.fields,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter: this,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const versionFields = buildVersionGlobalFields(global)\n\n buildTable({\n adapter: this,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["createTableName","uniqueIndex","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","buildTable","init","payload","config","localization","enums","enum__locales","pgSchema","enum","locales","map","code","collections","forEach","collection","adapter","versions","versionsCustomName","tableName","tableNameMap","get","slug","baseExtraConfig","upload","filenameCompoundIndex","indexName","filename_compound_index","cols","colsConstraint","f","on","slice","disableNotNull","drafts","disableUnique","fields","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"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"}
|
package/dist/insert.d.ts
DELETED
package/dist/insert.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,eAAO,MAAM,MAAM,EAAE,MAoBpB,CAAA"}
|
package/dist/insert.js
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
export const insert = async function insert({ db, onConflictDoUpdate, tableName, values }) {
|
2
|
-
const table = this.tables[tableName];
|
3
|
-
let result;
|
4
|
-
if (onConflictDoUpdate) {
|
5
|
-
result = await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning();
|
6
|
-
} else {
|
7
|
-
result = await db.insert(table).values(values).returning();
|
8
|
-
}
|
9
|
-
return result;
|
10
|
-
};
|
11
|
-
|
12
|
-
//# sourceMappingURL=insert.js.map
|
package/dist/insert.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/insert.ts"],"sourcesContent":["import type { TransactionPg } from '@payloadcms/drizzle/types'\n\nimport type { Insert } from './types.js'\n\nexport const insert: Insert = async function insert({\n db,\n onConflictDoUpdate,\n tableName,\n values,\n}): Promise<Record<string, unknown>[]> {\n const table = this.tables[tableName]\n let result\n\n if (onConflictDoUpdate) {\n result = await (db as TransactionPg)\n .insert(table)\n .values(values)\n .onConflictDoUpdate(onConflictDoUpdate)\n .returning()\n } else {\n result = await (db as TransactionPg).insert(table).values(values).returning()\n }\n\n return result\n}\n"],"names":["insert","db","onConflictDoUpdate","tableName","values","table","tables","result","returning"],"mappings":"AAIA,OAAO,MAAMA,SAAiB,eAAeA,OAAO,EAClDC,EAAE,EACFC,kBAAkB,EAClBC,SAAS,EACTC,MAAM,EACP;IACC,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IACpC,IAAII;IAEJ,IAAIL,oBAAoB;QACtBK,SAAS,MAAM,AAACN,GACbD,MAAM,CAACK,OACPD,MAAM,CAACA,QACPF,kBAAkB,CAACA,oBACnBM,SAAS;IACd,OAAO;QACLD,SAAS,MAAM,AAACN,GAAqBD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQI,SAAS;IAC7E;IAEA,OAAOD;AACT,EAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"requireDrizzleKit.d.ts","sourceRoot":"","sources":["../src/requireDrizzleKit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAIlE,eAAO,MAAM,iBAAiB,EAAE,iBAAoD,CAAA"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/requireDrizzleKit.ts"],"sourcesContent":["import type { RequireDrizzleKit } from '@payloadcms/drizzle/types'\n\nimport { createRequire } from 'module'\nconst require = createRequire(import.meta.url)\nexport const requireDrizzleKit: RequireDrizzleKit = () => require('drizzle-kit/api')\n"],"names":["createRequire","require","url","requireDrizzleKit"],"mappings":"AAEA,SAASA,aAAa,QAAQ,SAAQ;AACtC,MAAMC,UAAUD,cAAc,YAAYE,GAAG;AAC7C,OAAO,MAAMC,oBAAuC,IAAMF,QAAQ,mBAAkB"}
|
package/dist/schema/build.d.ts
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
import type { ForeignKeyBuilder, IndexBuilder, PgColumnBuilder, UniqueConstraintBuilder } from 'drizzle-orm/pg-core';
|
2
|
-
import type { Field } from 'payload';
|
3
|
-
import type { GenericColumns, PostgresAdapter } from '../types.js';
|
4
|
-
export type BaseExtraConfig = Record<string, (cols: GenericColumns) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder>;
|
5
|
-
export type RelationMap = Map<string, {
|
6
|
-
localized: boolean;
|
7
|
-
target: string;
|
8
|
-
type: 'many' | 'one';
|
9
|
-
}>;
|
10
|
-
type Args = {
|
11
|
-
adapter: PostgresAdapter;
|
12
|
-
baseColumns?: Record<string, PgColumnBuilder>;
|
13
|
-
/**
|
14
|
-
* After table is created, run these functions to add extra config to the table
|
15
|
-
* ie. indexes, multiple columns, etc
|
16
|
-
*/
|
17
|
-
baseExtraConfig?: BaseExtraConfig;
|
18
|
-
buildNumbers?: boolean;
|
19
|
-
buildRelationships?: boolean;
|
20
|
-
disableNotNull: boolean;
|
21
|
-
disableUnique: boolean;
|
22
|
-
fields: Field[];
|
23
|
-
rootRelationsToBuild?: RelationMap;
|
24
|
-
rootRelationships?: Set<string>;
|
25
|
-
rootTableIDColType?: string;
|
26
|
-
rootTableName?: string;
|
27
|
-
tableName: string;
|
28
|
-
timestamps?: boolean;
|
29
|
-
versions: boolean;
|
30
|
-
};
|
31
|
-
type Result = {
|
32
|
-
hasManyNumberField: 'index' | boolean;
|
33
|
-
hasManyTextField: 'index' | boolean;
|
34
|
-
relationsToBuild: RelationMap;
|
35
|
-
};
|
36
|
-
export declare const buildTable: ({ adapter, baseColumns, baseExtraConfig, disableNotNull, disableUnique, fields, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions, }: Args) => Result;
|
37
|
-
export {};
|
38
|
-
//# sourceMappingURL=build.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/schema/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,EAEf,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAgBpC,OAAO,KAAK,EAAE,cAAc,EAAwB,eAAe,EAAE,MAAM,aAAa,CAAA;AAMxF,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,CAAC,IAAI,EAAE,cAAc,KAAK,iBAAiB,GAAG,YAAY,GAAG,uBAAuB,CACrF,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,CAAC,CAAA;AAEnG,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;IACnC,gBAAgB,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,0NAcpB,IAAI,KAAG,MAqYT,CAAA"}
|
package/dist/schema/build.js
DELETED
@@ -1,369 +0,0 @@
|
|
1
|
-
import { createTableName } from '@payloadcms/drizzle';
|
2
|
-
import { relations } from 'drizzle-orm';
|
3
|
-
import { foreignKey, index, integer, numeric, serial, timestamp, unique, varchar } from 'drizzle-orm/pg-core';
|
4
|
-
import toSnakeCase from 'to-snake-case';
|
5
|
-
import { parentIDColumnMap } from './parentIDColumnMap.js';
|
6
|
-
import { setColumnID } from './setColumnID.js';
|
7
|
-
import { traverseFields } from './traverseFields.js';
|
8
|
-
export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, disableNotNull, disableUnique = false, fields, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions })=>{
|
9
|
-
const isRoot = !incomingRootTableName;
|
10
|
-
const rootTableName = incomingRootTableName || tableName;
|
11
|
-
const columns = baseColumns;
|
12
|
-
const indexes = {};
|
13
|
-
const localesColumns = {};
|
14
|
-
const localesIndexes = {};
|
15
|
-
let localesTable;
|
16
|
-
let textsTable;
|
17
|
-
let numbersTable;
|
18
|
-
// Relationships to the base collection
|
19
|
-
const relationships = rootRelationships || new Set();
|
20
|
-
let relationshipsTable;
|
21
|
-
// Drizzle relations
|
22
|
-
const relationsToBuild = new Map();
|
23
|
-
const idColType = setColumnID({
|
24
|
-
adapter,
|
25
|
-
columns,
|
26
|
-
fields
|
27
|
-
});
|
28
|
-
const { hasLocalizedField, hasLocalizedManyNumberField, hasLocalizedManyTextField, hasLocalizedRelationshipField, hasManyNumberField, hasManyTextField } = traverseFields({
|
29
|
-
adapter,
|
30
|
-
columns,
|
31
|
-
disableNotNull,
|
32
|
-
disableUnique,
|
33
|
-
fields,
|
34
|
-
indexes,
|
35
|
-
localesColumns,
|
36
|
-
localesIndexes,
|
37
|
-
newTableName: tableName,
|
38
|
-
parentTableName: tableName,
|
39
|
-
relationsToBuild,
|
40
|
-
relationships,
|
41
|
-
rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,
|
42
|
-
rootTableIDColType: rootTableIDColType || idColType,
|
43
|
-
rootTableName,
|
44
|
-
versions
|
45
|
-
});
|
46
|
-
// split the relationsToBuild by localized and non-localized
|
47
|
-
const localizedRelations = new Map();
|
48
|
-
const nonLocalizedRelations = new Map();
|
49
|
-
relationsToBuild.forEach(({ type, localized, target }, key)=>{
|
50
|
-
const map = localized ? localizedRelations : nonLocalizedRelations;
|
51
|
-
map.set(key, {
|
52
|
-
type,
|
53
|
-
target
|
54
|
-
});
|
55
|
-
});
|
56
|
-
if (timestamps) {
|
57
|
-
columns.createdAt = timestamp('created_at', {
|
58
|
-
mode: 'string',
|
59
|
-
precision: 3,
|
60
|
-
withTimezone: true
|
61
|
-
}).defaultNow().notNull();
|
62
|
-
columns.updatedAt = timestamp('updated_at', {
|
63
|
-
mode: 'string',
|
64
|
-
precision: 3,
|
65
|
-
withTimezone: true
|
66
|
-
}).defaultNow().notNull();
|
67
|
-
}
|
68
|
-
const table = adapter.pgSchema.table(tableName, columns, (cols)=>{
|
69
|
-
const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func])=>{
|
70
|
-
config[key] = func(cols);
|
71
|
-
return config;
|
72
|
-
}, {});
|
73
|
-
const result = Object.entries(indexes).reduce((acc, [colName, func])=>{
|
74
|
-
acc[colName] = func(cols);
|
75
|
-
return acc;
|
76
|
-
}, extraConfig);
|
77
|
-
return result;
|
78
|
-
});
|
79
|
-
adapter.tables[tableName] = table;
|
80
|
-
if (hasLocalizedField || localizedRelations.size) {
|
81
|
-
const localeTableName = `${tableName}${adapter.localesSuffix}`;
|
82
|
-
localesColumns.id = serial('id').primaryKey();
|
83
|
-
localesColumns._locale = adapter.enums.enum__locales('_locale').notNull();
|
84
|
-
localesColumns._parentID = parentIDColumnMap[idColType]('_parent_id').notNull();
|
85
|
-
localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols)=>{
|
86
|
-
return Object.entries(localesIndexes).reduce((acc, [colName, func])=>{
|
87
|
-
acc[colName] = func(cols);
|
88
|
-
return acc;
|
89
|
-
}, {
|
90
|
-
_localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on(cols._locale, cols._parentID),
|
91
|
-
_parentIdFk: foreignKey({
|
92
|
-
name: `${localeTableName}_parent_id_fk`,
|
93
|
-
columns: [
|
94
|
-
cols._parentID
|
95
|
-
],
|
96
|
-
foreignColumns: [
|
97
|
-
table.id
|
98
|
-
]
|
99
|
-
}).onDelete('cascade')
|
100
|
-
});
|
101
|
-
});
|
102
|
-
adapter.tables[localeTableName] = localesTable;
|
103
|
-
adapter.relations[`relations_${localeTableName}`] = relations(localesTable, ({ many, one })=>{
|
104
|
-
const result = {};
|
105
|
-
result._parentID = one(table, {
|
106
|
-
fields: [
|
107
|
-
localesTable._parentID
|
108
|
-
],
|
109
|
-
references: [
|
110
|
-
table.id
|
111
|
-
],
|
112
|
-
// name the relationship by what the many() relationName is
|
113
|
-
relationName: '_locales'
|
114
|
-
});
|
115
|
-
localizedRelations.forEach(({ type, target }, key)=>{
|
116
|
-
if (type === 'one') {
|
117
|
-
result[key] = one(adapter.tables[target], {
|
118
|
-
fields: [
|
119
|
-
localesTable[key]
|
120
|
-
],
|
121
|
-
references: [
|
122
|
-
adapter.tables[target].id
|
123
|
-
],
|
124
|
-
relationName: key
|
125
|
-
});
|
126
|
-
}
|
127
|
-
if (type === 'many') {
|
128
|
-
result[key] = many(adapter.tables[target], {
|
129
|
-
relationName: key
|
130
|
-
});
|
131
|
-
}
|
132
|
-
});
|
133
|
-
return result;
|
134
|
-
});
|
135
|
-
}
|
136
|
-
if (isRoot) {
|
137
|
-
if (hasManyTextField) {
|
138
|
-
const textsTableName = `${rootTableName}_texts`;
|
139
|
-
const columns = {
|
140
|
-
id: serial('id').primaryKey(),
|
141
|
-
order: integer('order').notNull(),
|
142
|
-
parent: parentIDColumnMap[idColType]('parent_id').notNull(),
|
143
|
-
path: varchar('path').notNull(),
|
144
|
-
text: varchar('text')
|
145
|
-
};
|
146
|
-
if (hasLocalizedManyTextField) {
|
147
|
-
columns.locale = adapter.enums.enum__locales('locale');
|
148
|
-
}
|
149
|
-
textsTable = adapter.pgSchema.table(textsTableName, columns, (cols)=>{
|
150
|
-
const config = {
|
151
|
-
orderParentIdx: index(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent),
|
152
|
-
parentFk: foreignKey({
|
153
|
-
name: `${textsTableName}_parent_fk`,
|
154
|
-
columns: [
|
155
|
-
cols.parent
|
156
|
-
],
|
157
|
-
foreignColumns: [
|
158
|
-
table.id
|
159
|
-
]
|
160
|
-
}).onDelete('cascade')
|
161
|
-
};
|
162
|
-
if (hasManyTextField === 'index') {
|
163
|
-
config.text_idx = index(`${textsTableName}_text_idx`).on(cols.text);
|
164
|
-
}
|
165
|
-
if (hasLocalizedManyTextField) {
|
166
|
-
config.localeParent = index(`${textsTableName}_locale_parent`).on(cols.locale, cols.parent);
|
167
|
-
}
|
168
|
-
return config;
|
169
|
-
});
|
170
|
-
adapter.tables[textsTableName] = textsTable;
|
171
|
-
adapter.relations[`relations_${textsTableName}`] = relations(textsTable, ({ one })=>({
|
172
|
-
parent: one(table, {
|
173
|
-
fields: [
|
174
|
-
textsTable.parent
|
175
|
-
],
|
176
|
-
references: [
|
177
|
-
table.id
|
178
|
-
],
|
179
|
-
relationName: '_texts'
|
180
|
-
})
|
181
|
-
}));
|
182
|
-
}
|
183
|
-
if (hasManyNumberField) {
|
184
|
-
const numbersTableName = `${rootTableName}_numbers`;
|
185
|
-
const columns = {
|
186
|
-
id: serial('id').primaryKey(),
|
187
|
-
number: numeric('number'),
|
188
|
-
order: integer('order').notNull(),
|
189
|
-
parent: parentIDColumnMap[idColType]('parent_id').notNull(),
|
190
|
-
path: varchar('path').notNull()
|
191
|
-
};
|
192
|
-
if (hasLocalizedManyNumberField) {
|
193
|
-
columns.locale = adapter.enums.enum__locales('locale');
|
194
|
-
}
|
195
|
-
numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols)=>{
|
196
|
-
const config = {
|
197
|
-
orderParentIdx: index(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent),
|
198
|
-
parentFk: foreignKey({
|
199
|
-
name: `${numbersTableName}_parent_fk`,
|
200
|
-
columns: [
|
201
|
-
cols.parent
|
202
|
-
],
|
203
|
-
foreignColumns: [
|
204
|
-
table.id
|
205
|
-
]
|
206
|
-
}).onDelete('cascade')
|
207
|
-
};
|
208
|
-
if (hasManyNumberField === 'index') {
|
209
|
-
config.numberIdx = index(`${numbersTableName}_number_idx`).on(cols.number);
|
210
|
-
}
|
211
|
-
if (hasLocalizedManyNumberField) {
|
212
|
-
config.localeParent = index(`${numbersTableName}_locale_parent`).on(cols.locale, cols.parent);
|
213
|
-
}
|
214
|
-
return config;
|
215
|
-
});
|
216
|
-
adapter.tables[numbersTableName] = numbersTable;
|
217
|
-
adapter.relations[`relations_${numbersTableName}`] = relations(numbersTable, ({ one })=>({
|
218
|
-
parent: one(table, {
|
219
|
-
fields: [
|
220
|
-
numbersTable.parent
|
221
|
-
],
|
222
|
-
references: [
|
223
|
-
table.id
|
224
|
-
],
|
225
|
-
relationName: '_numbers'
|
226
|
-
})
|
227
|
-
}));
|
228
|
-
}
|
229
|
-
if (relationships.size) {
|
230
|
-
const relationshipColumns = {
|
231
|
-
id: serial('id').primaryKey(),
|
232
|
-
order: integer('order'),
|
233
|
-
parent: parentIDColumnMap[idColType]('parent_id').notNull(),
|
234
|
-
path: varchar('path').notNull()
|
235
|
-
};
|
236
|
-
if (hasLocalizedRelationshipField) {
|
237
|
-
relationshipColumns.locale = adapter.enums.enum__locales('locale');
|
238
|
-
}
|
239
|
-
const relationExtraConfig = {};
|
240
|
-
const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`;
|
241
|
-
relationships.forEach((relationTo)=>{
|
242
|
-
const relationshipConfig = adapter.payload.collections[relationTo].config;
|
243
|
-
const formattedRelationTo = createTableName({
|
244
|
-
adapter,
|
245
|
-
config: relationshipConfig,
|
246
|
-
throwValidationError: true
|
247
|
-
});
|
248
|
-
let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer';
|
249
|
-
const relatedCollectionCustomIDType = adapter.payload.collections[relationshipConfig.slug]?.customIDType;
|
250
|
-
if (relatedCollectionCustomIDType === 'number') colType = 'numeric';
|
251
|
-
if (relatedCollectionCustomIDType === 'text') colType = 'varchar';
|
252
|
-
relationshipColumns[`${relationTo}ID`] = parentIDColumnMap[colType](`${formattedRelationTo}_id`);
|
253
|
-
relationExtraConfig[`${relationTo}IdFk`] = (cols)=>foreignKey({
|
254
|
-
name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,
|
255
|
-
columns: [
|
256
|
-
cols[`${relationTo}ID`]
|
257
|
-
],
|
258
|
-
foreignColumns: [
|
259
|
-
adapter.tables[formattedRelationTo].id
|
260
|
-
]
|
261
|
-
}).onDelete('cascade');
|
262
|
-
});
|
263
|
-
relationshipsTable = adapter.pgSchema.table(relationshipsTableName, relationshipColumns, (cols)=>{
|
264
|
-
const result = Object.entries(relationExtraConfig).reduce((config, [key, func])=>{
|
265
|
-
config[key] = func(cols);
|
266
|
-
return config;
|
267
|
-
}, {
|
268
|
-
order: index(`${relationshipsTableName}_order_idx`).on(cols.order),
|
269
|
-
parentFk: foreignKey({
|
270
|
-
name: `${relationshipsTableName}_parent_fk`,
|
271
|
-
columns: [
|
272
|
-
cols.parent
|
273
|
-
],
|
274
|
-
foreignColumns: [
|
275
|
-
table.id
|
276
|
-
]
|
277
|
-
}).onDelete('cascade'),
|
278
|
-
parentIdx: index(`${relationshipsTableName}_parent_idx`).on(cols.parent),
|
279
|
-
pathIdx: index(`${relationshipsTableName}_path_idx`).on(cols.path)
|
280
|
-
});
|
281
|
-
if (hasLocalizedRelationshipField) {
|
282
|
-
result.localeIdx = index(`${relationshipsTableName}_locale_idx`).on(cols.locale);
|
283
|
-
}
|
284
|
-
return result;
|
285
|
-
});
|
286
|
-
adapter.tables[relationshipsTableName] = relationshipsTable;
|
287
|
-
adapter.relations[`relations_${relationshipsTableName}`] = relations(relationshipsTable, ({ one })=>{
|
288
|
-
const result = {
|
289
|
-
parent: one(table, {
|
290
|
-
fields: [
|
291
|
-
relationshipsTable.parent
|
292
|
-
],
|
293
|
-
references: [
|
294
|
-
table.id
|
295
|
-
],
|
296
|
-
relationName: '_rels'
|
297
|
-
})
|
298
|
-
};
|
299
|
-
relationships.forEach((relationTo)=>{
|
300
|
-
const relatedTableName = createTableName({
|
301
|
-
adapter,
|
302
|
-
config: adapter.payload.collections[relationTo].config,
|
303
|
-
throwValidationError: true
|
304
|
-
});
|
305
|
-
const idColumnName = `${relationTo}ID`;
|
306
|
-
result[idColumnName] = one(adapter.tables[relatedTableName], {
|
307
|
-
fields: [
|
308
|
-
relationshipsTable[idColumnName]
|
309
|
-
],
|
310
|
-
references: [
|
311
|
-
adapter.tables[relatedTableName].id
|
312
|
-
],
|
313
|
-
relationName: relationTo
|
314
|
-
});
|
315
|
-
});
|
316
|
-
return result;
|
317
|
-
});
|
318
|
-
}
|
319
|
-
}
|
320
|
-
adapter.relations[`relations_${tableName}`] = relations(table, ({ many, one })=>{
|
321
|
-
const result = {};
|
322
|
-
nonLocalizedRelations.forEach(({ type, target }, key)=>{
|
323
|
-
if (type === 'one') {
|
324
|
-
result[key] = one(adapter.tables[target], {
|
325
|
-
fields: [
|
326
|
-
table[key]
|
327
|
-
],
|
328
|
-
references: [
|
329
|
-
adapter.tables[target].id
|
330
|
-
],
|
331
|
-
relationName: key
|
332
|
-
});
|
333
|
-
}
|
334
|
-
if (type === 'many') {
|
335
|
-
result[key] = many(adapter.tables[target], {
|
336
|
-
relationName: key
|
337
|
-
});
|
338
|
-
}
|
339
|
-
});
|
340
|
-
if (hasLocalizedField) {
|
341
|
-
result._locales = many(localesTable, {
|
342
|
-
relationName: '_locales'
|
343
|
-
});
|
344
|
-
}
|
345
|
-
if (hasManyTextField) {
|
346
|
-
result._texts = many(textsTable, {
|
347
|
-
relationName: '_texts'
|
348
|
-
});
|
349
|
-
}
|
350
|
-
if (hasManyNumberField) {
|
351
|
-
result._numbers = many(numbersTable, {
|
352
|
-
relationName: '_numbers'
|
353
|
-
});
|
354
|
-
}
|
355
|
-
if (relationships.size && relationshipsTable) {
|
356
|
-
result._rels = many(relationshipsTable, {
|
357
|
-
relationName: '_rels'
|
358
|
-
});
|
359
|
-
}
|
360
|
-
return result;
|
361
|
-
});
|
362
|
-
return {
|
363
|
-
hasManyNumberField,
|
364
|
-
hasManyTextField,
|
365
|
-
relationsToBuild
|
366
|
-
};
|
367
|
-
};
|
368
|
-
|
369
|
-
//# sourceMappingURL=build.js.map
|