@payloadcms/db-mongodb 3.0.0-canary.a78fca3 → 3.0.0-canary.ab70b75
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/connect.d.ts.map +1 -1
- package/dist/connect.js +13 -4
- package/dist/connect.js.map +1 -1
- package/dist/count.d.ts.map +1 -1
- package/dist/count.js +1 -1
- package/dist/count.js.map +1 -1
- package/dist/create.d.ts.map +1 -1
- package/dist/create.js +14 -4
- package/dist/create.js.map +1 -1
- package/dist/createGlobal.d.ts.map +1 -1
- package/dist/createGlobal.js +11 -6
- package/dist/createGlobal.js.map +1 -1
- package/dist/createGlobalVersion.d.ts +1 -1
- package/dist/createGlobalVersion.d.ts.map +1 -1
- package/dist/createGlobalVersion.js +14 -5
- package/dist/createGlobalVersion.js.map +1 -1
- package/dist/createMigration.d.ts.map +1 -1
- package/dist/createMigration.js +3 -3
- package/dist/createMigration.js.map +1 -1
- package/dist/createVersion.d.ts +1 -1
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js +32 -10
- package/dist/createVersion.js.map +1 -1
- package/dist/deleteMany.d.ts.map +1 -1
- package/dist/deleteMany.js +1 -1
- package/dist/deleteMany.js.map +1 -1
- package/dist/deleteOne.d.ts.map +1 -1
- package/dist/deleteOne.js +2 -2
- package/dist/deleteOne.js.map +1 -1
- package/dist/deleteVersions.d.ts.map +1 -1
- package/dist/deleteVersions.js +1 -1
- package/dist/deleteVersions.js.map +1 -1
- package/dist/destroy.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +28 -5
- package/dist/find.js.map +1 -1
- package/dist/findGlobal.d.ts.map +1 -1
- package/dist/findGlobal.js +2 -2
- package/dist/findGlobal.js.map +1 -1
- package/dist/findGlobalVersions.d.ts.map +1 -1
- package/dist/findGlobalVersions.js +11 -5
- package/dist/findGlobalVersions.js.map +1 -1
- package/dist/findOne.d.ts.map +1 -1
- package/dist/findOne.js +20 -4
- package/dist/findOne.js.map +1 -1
- package/dist/findVersions.d.ts.map +1 -1
- package/dist/findVersions.js +9 -3
- package/dist/findVersions.js.map +1 -1
- package/dist/index.d.ts +52 -35
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +10 -7
- package/dist/init.js.map +1 -1
- package/dist/migrateFresh.js.map +1 -1
- package/dist/models/buildCollectionSchema.d.ts +1 -27
- package/dist/models/buildCollectionSchema.d.ts.map +1 -1
- package/dist/models/buildCollectionSchema.js +16 -4
- package/dist/models/buildCollectionSchema.js.map +1 -1
- package/dist/models/buildGlobalModel.js +2 -2
- package/dist/models/buildGlobalModel.js.map +1 -1
- package/dist/models/buildSchema.d.ts +1 -27
- package/dist/models/buildSchema.d.ts.map +1 -1
- package/dist/models/buildSchema.js +112 -22
- package/dist/models/buildSchema.js.map +1 -1
- package/dist/predefinedMigrations/versions-v1-v2.js.map +1 -1
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.js +0 -2
- package/dist/queries/buildAndOrConditions.js.map +1 -1
- package/dist/queries/buildQuery.d.ts +2 -2
- package/dist/queries/buildQuery.d.ts.map +1 -1
- package/dist/queries/buildQuery.js +1 -2
- package/dist/queries/buildQuery.js.map +1 -1
- package/dist/queries/buildSearchParams.d.ts.map +1 -1
- package/dist/queries/buildSearchParams.js +19 -11
- package/dist/queries/buildSearchParams.js.map +1 -1
- package/dist/queries/buildSortParam.d.ts +3 -28
- package/dist/queries/buildSortParam.d.ts.map +1 -1
- package/dist/queries/buildSortParam.js +26 -17
- package/dist/queries/buildSortParam.js.map +1 -1
- package/dist/queries/getLocalizedSortProperty.js.map +1 -1
- package/dist/queries/getLocalizedSortProperty.spec.js +43 -43
- package/dist/queries/getLocalizedSortProperty.spec.js.map +1 -1
- package/dist/queries/mock.js.map +1 -1
- package/dist/queries/operatorMap.js.map +1 -1
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +5 -6
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
- package/dist/queries/sanitizeQueryValue.js +142 -26
- package/dist/queries/sanitizeQueryValue.js.map +1 -1
- package/dist/queryDrafts.d.ts.map +1 -1
- package/dist/queryDrafts.js +29 -8
- package/dist/queryDrafts.js.map +1 -1
- package/dist/testCredentials.js.map +1 -1
- package/dist/transactions/beginTransaction.d.ts.map +1 -1
- package/dist/transactions/beginTransaction.js +2 -0
- package/dist/transactions/beginTransaction.js.map +1 -1
- package/dist/transactions/commitTransaction.d.ts.map +1 -1
- package/dist/transactions/commitTransaction.js +3 -0
- package/dist/transactions/commitTransaction.js.map +1 -1
- package/dist/transactions/rollbackTransaction.d.ts.map +1 -1
- package/dist/transactions/rollbackTransaction.js +13 -7
- package/dist/transactions/rollbackTransaction.js.map +1 -1
- package/dist/types.d.ts +7 -29
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/updateGlobal.d.ts.map +1 -1
- package/dist/updateGlobal.js +9 -3
- package/dist/updateGlobal.js.map +1 -1
- package/dist/updateGlobalVersion.d.ts +2 -2
- package/dist/updateGlobalVersion.d.ts.map +1 -1
- package/dist/updateGlobalVersion.js +11 -4
- package/dist/updateGlobalVersion.js.map +1 -1
- package/dist/updateOne.d.ts.map +1 -1
- package/dist/updateOne.js +17 -6
- package/dist/updateOne.js.map +1 -1
- package/dist/updateVersion.d.ts +1 -1
- package/dist/updateVersion.d.ts.map +1 -1
- package/dist/updateVersion.js +9 -2
- package/dist/updateVersion.js.map +1 -1
- package/dist/upsert.d.ts +3 -0
- package/dist/upsert.d.ts.map +1 -0
- package/dist/upsert.js +14 -0
- package/dist/upsert.js.map +1 -0
- package/dist/utilities/buildJoinAggregation.d.ts +17 -0
- package/dist/utilities/buildJoinAggregation.d.ts.map +1 -0
- package/dist/utilities/buildJoinAggregation.js +148 -0
- package/dist/utilities/buildJoinAggregation.js.map +1 -0
- package/dist/utilities/getDBName.d.ts.map +1 -1
- package/dist/utilities/getDBName.js +3 -1
- package/dist/utilities/getDBName.js.map +1 -1
- package/dist/utilities/handleError.d.ts +6 -2
- package/dist/utilities/handleError.d.ts.map +1 -1
- package/dist/utilities/handleError.js +11 -8
- package/dist/utilities/handleError.js.map +1 -1
- package/dist/utilities/sanitizeInternalFields.d.ts +1 -2
- package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
- package/dist/utilities/sanitizeInternalFields.js +1 -2
- package/dist/utilities/sanitizeInternalFields.js.map +1 -1
- package/dist/utilities/sanitizeRelationshipIDs.d.ts +9 -0
- package/dist/utilities/sanitizeRelationshipIDs.d.ts.map +1 -0
- package/dist/utilities/sanitizeRelationshipIDs.js +115 -0
- package/dist/utilities/sanitizeRelationshipIDs.js.map +1 -0
- package/dist/withSession.d.ts +3 -27
- package/dist/withSession.d.ts.map +1 -1
- package/dist/withSession.js +10 -4
- package/dist/withSession.js.map +1 -1
- package/package.json +11 -9
package/dist/init.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
import mongooseAggregatePaginate from 'mongoose-aggregate-paginate-v2';
|
|
2
3
|
import paginate from 'mongoose-paginate-v2';
|
|
3
4
|
import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
|
|
4
|
-
import buildCollectionSchema from './models/buildCollectionSchema.js';
|
|
5
|
+
import { buildCollectionSchema } from './models/buildCollectionSchema.js';
|
|
5
6
|
import { buildGlobalModel } from './models/buildGlobalModel.js';
|
|
6
|
-
import buildSchema from './models/buildSchema.js';
|
|
7
|
-
import getBuildQueryPlugin from './queries/buildQuery.js';
|
|
7
|
+
import { buildSchema } from './models/buildSchema.js';
|
|
8
|
+
import { getBuildQueryPlugin } from './queries/buildQuery.js';
|
|
8
9
|
import { getDBName } from './utilities/getDBName.js';
|
|
9
10
|
export const init = function init() {
|
|
10
11
|
this.payload.config.collections.forEach((collection)=>{
|
|
@@ -14,7 +15,7 @@ export const init = function init() {
|
|
|
14
15
|
config: collection,
|
|
15
16
|
versions: true
|
|
16
17
|
});
|
|
17
|
-
const versionCollectionFields = buildVersionCollectionFields(collection);
|
|
18
|
+
const versionCollectionFields = buildVersionCollectionFields(this.payload.config, collection);
|
|
18
19
|
const versionSchema = buildSchema(this.payload.config, versionCollectionFields, {
|
|
19
20
|
disableUnique: true,
|
|
20
21
|
draftsEnabled: true,
|
|
@@ -30,8 +31,10 @@ export const init = function init() {
|
|
|
30
31
|
collectionSlug: collection.slug,
|
|
31
32
|
versionsFields: versionCollectionFields
|
|
32
33
|
}));
|
|
34
|
+
if (Object.keys(collection.joins).length > 0) {
|
|
35
|
+
versionSchema.plugin(mongooseAggregatePaginate);
|
|
36
|
+
}
|
|
33
37
|
const model = mongoose.model(versionModelName, versionSchema, this.autoPluralization === true ? undefined : versionModelName);
|
|
34
|
-
// this.payload.versions[collection.slug] = model;
|
|
35
38
|
this.versions[collection.slug] = model;
|
|
36
39
|
}
|
|
37
40
|
const model = mongoose.model(getDBName({
|
|
@@ -47,7 +50,7 @@ export const init = function init() {
|
|
|
47
50
|
config: global,
|
|
48
51
|
versions: true
|
|
49
52
|
});
|
|
50
|
-
const versionGlobalFields = buildVersionGlobalFields(global);
|
|
53
|
+
const versionGlobalFields = buildVersionGlobalFields(this.payload.config, global);
|
|
51
54
|
const versionSchema = buildSchema(this.payload.config, versionGlobalFields, {
|
|
52
55
|
disableUnique: true,
|
|
53
56
|
draftsEnabled: true,
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/init.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { PaginateOptions } from 'mongoose'\nimport type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport mongoose from 'mongoose'\nimport mongooseAggregatePaginate from 'mongoose-aggregate-paginate-v2'\nimport paginate from 'mongoose-paginate-v2'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\nimport type { CollectionModel } from './types.js'\n\nimport { buildCollectionSchema } from './models/buildCollectionSchema.js'\nimport { buildGlobalModel } from './models/buildGlobalModel.js'\nimport { buildSchema } from './models/buildSchema.js'\nimport { getBuildQueryPlugin } from './queries/buildQuery.js'\nimport { getDBName } from './utilities/getDBName.js'\n\nexport const init: Init = function init(this: MongooseAdapter) {\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n const schema = buildCollectionSchema(collection, this.payload.config)\n\n if (collection.versions) {\n const versionModelName = getDBName({ config: collection, versions: true })\n\n const versionCollectionFields = buildVersionCollectionFields(this.payload.config, collection)\n\n const versionSchema = buildSchema(this.payload.config, versionCollectionFields, {\n disableUnique: true,\n draftsEnabled: true,\n indexSortableFields: this.payload.config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: false,\n },\n })\n\n versionSchema.plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true }).plugin(\n getBuildQueryPlugin({\n collectionSlug: collection.slug,\n versionsFields: versionCollectionFields,\n }),\n )\n\n if (Object.keys(collection.joins).length > 0) {\n versionSchema.plugin(mongooseAggregatePaginate)\n }\n\n const model = mongoose.model(\n versionModelName,\n versionSchema,\n this.autoPluralization === true ? undefined : versionModelName,\n ) as CollectionModel\n\n this.versions[collection.slug] = model\n }\n\n const model = mongoose.model(\n getDBName({ config: collection }),\n schema,\n this.autoPluralization === true ? undefined : collection.slug,\n ) as CollectionModel\n this.collections[collection.slug] = model\n })\n\n const model = buildGlobalModel(this.payload.config)\n this.globals = model\n\n this.payload.config.globals.forEach((global) => {\n if (global.versions) {\n const versionModelName = getDBName({ config: global, versions: true })\n\n const versionGlobalFields = buildVersionGlobalFields(this.payload.config, global)\n\n const versionSchema = buildSchema(this.payload.config, versionGlobalFields, {\n disableUnique: true,\n draftsEnabled: true,\n indexSortableFields: this.payload.config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: false,\n },\n })\n\n versionSchema\n .plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true })\n .plugin(getBuildQueryPlugin({ versionsFields: versionGlobalFields }))\n\n const versionsModel = mongoose.model(\n versionModelName,\n versionSchema,\n versionModelName,\n ) as CollectionModel\n this.versions[global.slug] = versionsModel\n }\n })\n}\n"],"names":["mongoose","mongooseAggregatePaginate","paginate","buildVersionCollectionFields","buildVersionGlobalFields","buildCollectionSchema","buildGlobalModel","buildSchema","getBuildQueryPlugin","getDBName","init","payload","config","collections","forEach","collection","schema","versions","versionModelName","versionCollectionFields","versionSchema","disableUnique","draftsEnabled","indexSortableFields","options","minimize","timestamps","plugin","useEstimatedCount","collectionSlug","slug","versionsFields","Object","keys","joins","length","model","autoPluralization","undefined","globals","global","versionGlobalFields","versionsModel"],"mappings":"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"}
|
package/dist/migrateFresh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import type { PayloadRequest } from 'payload'\n\nimport { commitTransaction, initTransaction, killTransaction, readMigrationFiles } from 'payload'\nimport prompts from 'prompts'\n\nimport type { MongooseAdapter } from './index.js'\n\n/**\n * Drop the current database and run all migrate up functions\n */\nexport async function migrateFresh(\n this: MongooseAdapter,\n { forceAcceptWarning = false }: { forceAcceptWarning?: boolean },\n): Promise<void> {\n const { payload } = this\n\n if (!forceAcceptWarning) {\n const { confirm: acceptWarning } = await prompts(\n {\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: `WARNING: This will drop your database and run all migrations. Are you sure you want to proceed?`,\n },\n {\n onCancel: () => {\n process.exit(0)\n },\n },\n )\n\n if (!acceptWarning) {\n process.exit(0)\n }\n }\n\n payload.logger.info({\n msg: `Dropping database.`,\n })\n\n await this.connection.dropDatabase()\n\n const migrationFiles = await readMigrationFiles({ payload })\n payload.logger.debug({\n msg: `Found ${migrationFiles.length} migration files.`,\n })\n\n const req = { payload } as PayloadRequest\n\n // Run all migrate up\n for (const migration of migrationFiles) {\n payload.logger.info({ msg: `Migrating: ${migration.name}` })\n try {\n const start = Date.now()\n await initTransaction(req)\n await migration.up({ payload, req })\n await payload.create({\n collection: 'payload-migrations',\n data: {\n name: migration.name,\n batch: 1,\n },\n req,\n })\n\n await commitTransaction(req)\n\n payload.logger.info({ msg: `Migrated: ${migration.name} (${Date.now() - start}ms)` })\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: `Error running migration ${migration.name}. Rolling back.`,\n })\n throw err\n }\n }\n}\n"],"names":["commitTransaction","initTransaction","killTransaction","readMigrationFiles","prompts","migrateFresh","forceAcceptWarning","payload","confirm","acceptWarning","name","type","initial","message","onCancel","process","exit","logger","info","msg","connection","dropDatabase","migrationFiles","debug","length","req","migration","start","Date","now","up","create","collection","data","batch","err","error"],"mappings":"AAEA,SAASA,iBAAiB,EAAEC,eAAe,EAAEC,eAAe,EAAEC,kBAAkB,QAAQ,UAAS;AACjG,OAAOC,aAAa,UAAS;AAI7B;;CAEC,GACD,OAAO,eAAeC,aAEpB,EAAEC,qBAAqB,KAAK,EAAoC;IAEhE,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IAExB,IAAI,CAACD,oBAAoB;QACvB,MAAM,EAAEE,SAASC,aAAa,EAAE,GAAG,MAAML,QACvC;YACEM,MAAM;YACNC,MAAM;YACNC,SAAS;YACTC,SAAS,CAAC,+FAA+F,CAAC;QAC5G,GACA;YACEC,UAAU;gBACRC,QAAQC,IAAI,CAAC;YACf;QACF;QAGF,IAAI,CAACP,eAAe;YAClBM,QAAQC,IAAI,CAAC;QACf;IACF;IAEAT,QAAQU,MAAM,CAACC,IAAI,CAAC;QAClBC,KAAK,CAAC,kBAAkB,CAAC;IAC3B;IAEA,MAAM,IAAI,CAACC,UAAU,CAACC,YAAY;IAElC,MAAMC,iBAAiB,MAAMnB,mBAAmB;QAAEI;IAAQ;IAC1DA,QAAQU,MAAM,CAACM,KAAK,CAAC;QACnBJ,KAAK,CAAC,MAAM,EAAEG,eAAeE,MAAM,CAAC,iBAAiB,CAAC;IACxD;IAEA,MAAMC,MAAM;QAAElB;IAAQ;IAEtB,qBAAqB;IACrB,KAAK,MAAMmB,aAAaJ,eAAgB;QACtCf,QAAQU,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK,CAAC,WAAW,EAAEO,UAAUhB,IAAI,CAAC,CAAC;QAAC;QAC1D,IAAI;YACF,MAAMiB,QAAQC,KAAKC,GAAG;YACtB,MAAM5B,gBAAgBwB;YACtB,MAAMC,UAAUI,EAAE,CAAC;gBAAEvB;gBAASkB;YAAI;YAClC,MAAMlB,QAAQwB,MAAM,CAAC;gBACnBC,YAAY;gBACZC,MAAM;oBACJvB,MAAMgB,UAAUhB,IAAI;oBACpBwB,OAAO;gBACT;gBACAT;YACF;YAEA,MAAMzB,kBAAkByB;YAExBlB,QAAQU,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,WAAW,EAAEO,UAAUhB,IAAI,CAAC,EAAE,EAAEkB,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YAAC;QACtF,EAAE,OAAOQ,KAAc;YACrB,MAAMjC,gBAAgBuB;YACtBlB,QAAQU,MAAM,CAACmB,KAAK,CAAC;gBACnBD;gBACAhB,KAAK,CAAC,wBAAwB,EAAEO,UAAUhB,IAAI,CAAC,eAAe,CAAC;YACjE;YACA,MAAMyB;QACR;IACF;AACF"}
|
|
@@ -1,30 +1,4 @@
|
|
|
1
|
-
/// <reference types="mongoose/types/aggregate.js" />
|
|
2
|
-
/// <reference types="mongoose/types/callback.js" />
|
|
3
|
-
/// <reference types="mongoose/types/collection.js" />
|
|
4
|
-
/// <reference types="mongoose/types/connection.js" />
|
|
5
|
-
/// <reference types="mongoose/types/cursor.js" />
|
|
6
|
-
/// <reference types="mongoose/types/document.js" />
|
|
7
|
-
/// <reference types="mongoose/types/error.js" />
|
|
8
|
-
/// <reference types="mongoose/types/expressions.js" />
|
|
9
|
-
/// <reference types="mongoose/types/helpers.js" />
|
|
10
|
-
/// <reference types="mongoose/types/middlewares.js" />
|
|
11
|
-
/// <reference types="mongoose/types/indexes.js" />
|
|
12
|
-
/// <reference types="mongoose/types/models.js" />
|
|
13
|
-
/// <reference types="mongoose/types/mongooseoptions.js" />
|
|
14
|
-
/// <reference types="mongoose/types/pipelinestage.js" />
|
|
15
|
-
/// <reference types="mongoose/types/populate.js" />
|
|
16
|
-
/// <reference types="mongoose/types/query.js" />
|
|
17
|
-
/// <reference types="mongoose/types/schemaoptions.js" />
|
|
18
|
-
/// <reference types="mongoose/types/schematypes.js" />
|
|
19
|
-
/// <reference types="mongoose/types/session.js" />
|
|
20
|
-
/// <reference types="mongoose/types/types.js" />
|
|
21
|
-
/// <reference types="mongoose/types/utility.js" />
|
|
22
|
-
/// <reference types="mongoose/types/validation.js" />
|
|
23
|
-
/// <reference types="mongoose/types/virtuals.js" />
|
|
24
|
-
/// <reference types="mongoose/types/inferschematype.js" />
|
|
25
|
-
/// <reference types="mongoose-paginate-v2" />
|
|
26
1
|
import type { Schema } from 'mongoose';
|
|
27
2
|
import type { SanitizedCollectionConfig, SanitizedConfig } from 'payload';
|
|
28
|
-
declare const buildCollectionSchema: (collection: SanitizedCollectionConfig, config: SanitizedConfig, schemaOptions?: {}) => Schema;
|
|
29
|
-
export default buildCollectionSchema;
|
|
3
|
+
export declare const buildCollectionSchema: (collection: SanitizedCollectionConfig, config: SanitizedConfig, schemaOptions?: {}) => Schema;
|
|
30
4
|
//# sourceMappingURL=buildCollectionSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCollectionSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildCollectionSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildCollectionSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildCollectionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAQzE,eAAO,MAAM,qBAAqB,eACpB,yBAAyB,UAC7B,eAAe,yBAEtB,MAqCF,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import mongooseAggregatePaginate from 'mongoose-aggregate-paginate-v2';
|
|
1
2
|
import paginate from 'mongoose-paginate-v2';
|
|
2
|
-
import getBuildQueryPlugin from '../queries/buildQuery.js';
|
|
3
|
-
import buildSchema from './buildSchema.js';
|
|
4
|
-
const buildCollectionSchema = (collection, config, schemaOptions = {})=>{
|
|
3
|
+
import { getBuildQueryPlugin } from '../queries/buildQuery.js';
|
|
4
|
+
import { buildSchema } from './buildSchema.js';
|
|
5
|
+
export const buildCollectionSchema = (collection, config, schemaOptions = {})=>{
|
|
5
6
|
const schema = buildSchema(config, collection.fields, {
|
|
6
7
|
draftsEnabled: Boolean(typeof collection?.versions === 'object' && collection.versions.drafts),
|
|
7
8
|
indexSortableFields: config.indexSortableFields,
|
|
@@ -11,6 +12,15 @@ const buildCollectionSchema = (collection, config, schemaOptions = {})=>{
|
|
|
11
12
|
...schemaOptions
|
|
12
13
|
}
|
|
13
14
|
});
|
|
15
|
+
if (Array.isArray(collection.upload.filenameCompoundIndex)) {
|
|
16
|
+
const indexDefinition = collection.upload.filenameCompoundIndex.reduce((acc, index)=>{
|
|
17
|
+
acc[index] = 1;
|
|
18
|
+
return acc;
|
|
19
|
+
}, {});
|
|
20
|
+
schema.index(indexDefinition, {
|
|
21
|
+
unique: true
|
|
22
|
+
});
|
|
23
|
+
}
|
|
14
24
|
if (config.indexSortableFields && collection.timestamps !== false) {
|
|
15
25
|
schema.index({
|
|
16
26
|
updatedAt: 1
|
|
@@ -24,8 +34,10 @@ const buildCollectionSchema = (collection, config, schemaOptions = {})=>{
|
|
|
24
34
|
}).plugin(getBuildQueryPlugin({
|
|
25
35
|
collectionSlug: collection.slug
|
|
26
36
|
}));
|
|
37
|
+
if (Object.keys(collection.joins).length > 0) {
|
|
38
|
+
schema.plugin(mongooseAggregatePaginate);
|
|
39
|
+
}
|
|
27
40
|
return schema;
|
|
28
41
|
};
|
|
29
|
-
export default buildCollectionSchema;
|
|
30
42
|
|
|
31
43
|
//# sourceMappingURL=buildCollectionSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/buildCollectionSchema.ts"],"sourcesContent":["import type { PaginateOptions, Schema } from 'mongoose'\nimport type { SanitizedCollectionConfig, SanitizedConfig } from 'payload'\n\nimport paginate from 'mongoose-paginate-v2'\n\nimport getBuildQueryPlugin from '../queries/buildQuery.js'\nimport buildSchema from './buildSchema.js'\n\
|
|
1
|
+
{"version":3,"sources":["../../src/models/buildCollectionSchema.ts"],"sourcesContent":["import type { PaginateOptions, Schema } from 'mongoose'\nimport type { SanitizedCollectionConfig, SanitizedConfig } from 'payload'\n\nimport mongooseAggregatePaginate from 'mongoose-aggregate-paginate-v2'\nimport paginate from 'mongoose-paginate-v2'\n\nimport { getBuildQueryPlugin } from '../queries/buildQuery.js'\nimport { buildSchema } from './buildSchema.js'\n\nexport const buildCollectionSchema = (\n collection: SanitizedCollectionConfig,\n config: SanitizedConfig,\n schemaOptions = {},\n): Schema => {\n const schema = buildSchema(config, collection.fields, {\n draftsEnabled: Boolean(typeof collection?.versions === 'object' && collection.versions.drafts),\n indexSortableFields: config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: collection.timestamps !== false,\n ...schemaOptions,\n },\n })\n\n if (Array.isArray(collection.upload.filenameCompoundIndex)) {\n const indexDefinition: Record<string, 1> = collection.upload.filenameCompoundIndex.reduce(\n (acc, index) => {\n acc[index] = 1\n return acc\n },\n {},\n )\n\n schema.index(indexDefinition, { unique: true })\n }\n\n if (config.indexSortableFields && collection.timestamps !== false) {\n schema.index({ updatedAt: 1 })\n schema.index({ createdAt: 1 })\n }\n\n schema\n .plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true })\n .plugin(getBuildQueryPlugin({ collectionSlug: collection.slug }))\n\n if (Object.keys(collection.joins).length > 0) {\n schema.plugin(mongooseAggregatePaginate)\n }\n\n return schema\n}\n"],"names":["mongooseAggregatePaginate","paginate","getBuildQueryPlugin","buildSchema","buildCollectionSchema","collection","config","schemaOptions","schema","fields","draftsEnabled","Boolean","versions","drafts","indexSortableFields","options","minimize","timestamps","Array","isArray","upload","filenameCompoundIndex","indexDefinition","reduce","acc","index","unique","updatedAt","createdAt","plugin","useEstimatedCount","collectionSlug","slug","Object","keys","joins","length"],"mappings":"AAGA,OAAOA,+BAA+B,iCAAgC;AACtE,OAAOC,cAAc,uBAAsB;AAE3C,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,wBAAwB,CACnCC,YACAC,QACAC,gBAAgB,CAAC,CAAC;IAElB,MAAMC,SAASL,YAAYG,QAAQD,WAAWI,MAAM,EAAE;QACpDC,eAAeC,QAAQ,OAAON,YAAYO,aAAa,YAAYP,WAAWO,QAAQ,CAACC,MAAM;QAC7FC,qBAAqBR,OAAOQ,mBAAmB;QAC/CC,SAAS;YACPC,UAAU;YACVC,YAAYZ,WAAWY,UAAU,KAAK;YACtC,GAAGV,aAAa;QAClB;IACF;IAEA,IAAIW,MAAMC,OAAO,CAACd,WAAWe,MAAM,CAACC,qBAAqB,GAAG;QAC1D,MAAMC,kBAAqCjB,WAAWe,MAAM,CAACC,qBAAqB,CAACE,MAAM,CACvF,CAACC,KAAKC;YACJD,GAAG,CAACC,MAAM,GAAG;YACb,OAAOD;QACT,GACA,CAAC;QAGHhB,OAAOiB,KAAK,CAACH,iBAAiB;YAAEI,QAAQ;QAAK;IAC/C;IAEA,IAAIpB,OAAOQ,mBAAmB,IAAIT,WAAWY,UAAU,KAAK,OAAO;QACjET,OAAOiB,KAAK,CAAC;YAAEE,WAAW;QAAE;QAC5BnB,OAAOiB,KAAK,CAAC;YAAEG,WAAW;QAAE;IAC9B;IAEApB,OACGqB,MAAM,CAAuB5B,UAAU;QAAE6B,mBAAmB;IAAK,GACjED,MAAM,CAAC3B,oBAAoB;QAAE6B,gBAAgB1B,WAAW2B,IAAI;IAAC;IAEhE,IAAIC,OAAOC,IAAI,CAAC7B,WAAW8B,KAAK,EAAEC,MAAM,GAAG,GAAG;QAC5C5B,OAAOqB,MAAM,CAAC7B;IAChB;IAEA,OAAOQ;AACT,EAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import mongoose from 'mongoose';
|
|
2
|
-
import getBuildQueryPlugin from '../queries/buildQuery.js';
|
|
3
|
-
import buildSchema from './buildSchema.js';
|
|
2
|
+
import { getBuildQueryPlugin } from '../queries/buildQuery.js';
|
|
3
|
+
import { buildSchema } from './buildSchema.js';
|
|
4
4
|
export const buildGlobalModel = (config)=>{
|
|
5
5
|
if (config.globals && config.globals.length > 0) {
|
|
6
6
|
const globalsSchema = new mongoose.Schema({}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/buildGlobalModel.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport mongoose from 'mongoose'\n\nimport type { GlobalModel } from '../types.js'\n\nimport getBuildQueryPlugin from '../queries/buildQuery.js'\nimport buildSchema from './buildSchema.js'\n\nexport const buildGlobalModel = (config: SanitizedConfig): GlobalModel | null => {\n if (config.globals && config.globals.length > 0) {\n const globalsSchema = new mongoose.Schema(\n {},\n { discriminatorKey: 'globalType', minimize: false, timestamps: true },\n )\n\n globalsSchema.plugin(getBuildQueryPlugin())\n\n const Globals = mongoose.model('globals', globalsSchema, 'globals') as unknown as GlobalModel\n\n Object.values(config.globals).forEach((globalConfig) => {\n const globalSchema = buildSchema(config, globalConfig.fields, {\n options: {\n minimize: false,\n },\n })\n Globals.discriminator(globalConfig.slug, globalSchema)\n })\n\n return Globals\n }\n\n return null\n}\n"],"names":["mongoose","getBuildQueryPlugin","buildSchema","buildGlobalModel","config","globals","length","globalsSchema","Schema","discriminatorKey","minimize","timestamps","plugin","Globals","model","Object","values","forEach","globalConfig","globalSchema","fields","options","discriminator","slug"],"
|
|
1
|
+
{"version":3,"sources":["../../src/models/buildGlobalModel.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport mongoose from 'mongoose'\n\nimport type { GlobalModel } from '../types.js'\n\nimport { getBuildQueryPlugin } from '../queries/buildQuery.js'\nimport { buildSchema } from './buildSchema.js'\n\nexport const buildGlobalModel = (config: SanitizedConfig): GlobalModel | null => {\n if (config.globals && config.globals.length > 0) {\n const globalsSchema = new mongoose.Schema(\n {},\n { discriminatorKey: 'globalType', minimize: false, timestamps: true },\n )\n\n globalsSchema.plugin(getBuildQueryPlugin())\n\n const Globals = mongoose.model('globals', globalsSchema, 'globals') as unknown as GlobalModel\n\n Object.values(config.globals).forEach((globalConfig) => {\n const globalSchema = buildSchema(config, globalConfig.fields, {\n options: {\n minimize: false,\n },\n })\n Globals.discriminator(globalConfig.slug, globalSchema)\n })\n\n return Globals\n }\n\n return null\n}\n"],"names":["mongoose","getBuildQueryPlugin","buildSchema","buildGlobalModel","config","globals","length","globalsSchema","Schema","discriminatorKey","minimize","timestamps","plugin","Globals","model","Object","values","forEach","globalConfig","globalSchema","fields","options","discriminator","slug"],"mappings":"AAEA,OAAOA,cAAc,WAAU;AAI/B,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,mBAAmB,CAACC;IAC/B,IAAIA,OAAOC,OAAO,IAAID,OAAOC,OAAO,CAACC,MAAM,GAAG,GAAG;QAC/C,MAAMC,gBAAgB,IAAIP,SAASQ,MAAM,CACvC,CAAC,GACD;YAAEC,kBAAkB;YAAcC,UAAU;YAAOC,YAAY;QAAK;QAGtEJ,cAAcK,MAAM,CAACX;QAErB,MAAMY,UAAUb,SAASc,KAAK,CAAC,WAAWP,eAAe;QAEzDQ,OAAOC,MAAM,CAACZ,OAAOC,OAAO,EAAEY,OAAO,CAAC,CAACC;YACrC,MAAMC,eAAejB,YAAYE,QAAQc,aAAaE,MAAM,EAAE;gBAC5DC,SAAS;oBACPX,UAAU;gBACZ;YACF;YACAG,QAAQS,aAAa,CAACJ,aAAaK,IAAI,EAAEJ;QAC3C;QAEA,OAAON;IACT;IAEA,OAAO;AACT,EAAC"}
|
|
@@ -1,28 +1,3 @@
|
|
|
1
|
-
/// <reference types="mongoose/types/aggregate.js" />
|
|
2
|
-
/// <reference types="mongoose/types/callback.js" />
|
|
3
|
-
/// <reference types="mongoose/types/collection.js" />
|
|
4
|
-
/// <reference types="mongoose/types/connection.js" />
|
|
5
|
-
/// <reference types="mongoose/types/cursor.js" />
|
|
6
|
-
/// <reference types="mongoose/types/document.js" />
|
|
7
|
-
/// <reference types="mongoose/types/error.js" />
|
|
8
|
-
/// <reference types="mongoose/types/expressions.js" />
|
|
9
|
-
/// <reference types="mongoose/types/helpers.js" />
|
|
10
|
-
/// <reference types="mongoose/types/middlewares.js" />
|
|
11
|
-
/// <reference types="mongoose/types/indexes.js" />
|
|
12
|
-
/// <reference types="mongoose/types/models.js" />
|
|
13
|
-
/// <reference types="mongoose/types/mongooseoptions.js" />
|
|
14
|
-
/// <reference types="mongoose/types/pipelinestage.js" />
|
|
15
|
-
/// <reference types="mongoose/types/populate.js" />
|
|
16
|
-
/// <reference types="mongoose/types/query.js" />
|
|
17
|
-
/// <reference types="mongoose/types/schemaoptions.js" />
|
|
18
|
-
/// <reference types="mongoose/types/schematypes.js" />
|
|
19
|
-
/// <reference types="mongoose/types/session.js" />
|
|
20
|
-
/// <reference types="mongoose/types/types.js" />
|
|
21
|
-
/// <reference types="mongoose/types/utility.js" />
|
|
22
|
-
/// <reference types="mongoose/types/validation.js" />
|
|
23
|
-
/// <reference types="mongoose/types/virtuals.js" />
|
|
24
|
-
/// <reference types="mongoose/types/inferschematype.js" />
|
|
25
|
-
/// <reference types="mongoose-paginate-v2" />
|
|
26
1
|
import type { Schema, SchemaOptions } from 'mongoose';
|
|
27
2
|
import type { Field, SanitizedConfig } from 'payload';
|
|
28
3
|
export type BuildSchemaOptions = {
|
|
@@ -32,6 +7,5 @@ export type BuildSchemaOptions = {
|
|
|
32
7
|
indexSortableFields?: boolean;
|
|
33
8
|
options?: SchemaOptions;
|
|
34
9
|
};
|
|
35
|
-
declare const buildSchema: (config: SanitizedConfig, configFields: Field[], buildSchemaOptions?: BuildSchemaOptions) => Schema;
|
|
36
|
-
export default buildSchema;
|
|
10
|
+
export declare const buildSchema: (config: SanitizedConfig, configFields: Field[], buildSchemaOptions?: BuildSchemaOptions) => Schema;
|
|
37
11
|
//# sourceMappingURL=buildSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,MAAM,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAA;AACtF,OAAO,KAAK,EASV,KAAK,EAWL,eAAe,EAQhB,MAAM,SAAS,CAAA;AAWhB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AAoED,eAAO,MAAM,WAAW,WACd,eAAe,gBACT,KAAK,EAAE,uBACD,kBAAkB,KACrC,MAmCF,CAAA"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
import { fieldAffectsData, fieldIsLocalized, fieldIsPresentationalOnly, tabHasName } from 'payload/shared';
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
import { fieldAffectsData, fieldIsLocalized, fieldIsPresentationalOnly, fieldIsVirtual, tabHasName } from 'payload/shared';
|
|
3
|
+
/**
|
|
4
|
+
* get a field's defaultValue only if defined and not dynamic so that it can be set on the field schema
|
|
5
|
+
* @param field
|
|
6
|
+
*/ const formatDefaultValue = (field)=>typeof field.defaultValue !== 'undefined' && typeof field.defaultValue !== 'function' ? field.defaultValue : undefined;
|
|
3
7
|
const formatBaseSchema = (field, buildSchemaOptions)=>{
|
|
4
8
|
const { disableUnique, draftsEnabled, indexSortableFields } = buildSchemaOptions;
|
|
5
9
|
const schema = {
|
|
10
|
+
default: formatDefaultValue(field),
|
|
6
11
|
index: field.index || !disableUnique && field.unique || indexSortableFields || false,
|
|
7
12
|
required: false,
|
|
8
13
|
unique: !disableUnique && field.unique || false
|
|
@@ -29,7 +34,7 @@ const localizeSchema = (entity, schema, localization)=>{
|
|
|
29
34
|
}
|
|
30
35
|
return schema;
|
|
31
36
|
};
|
|
32
|
-
const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
|
|
37
|
+
export const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
|
|
33
38
|
const { allowIDField, options } = buildSchemaOptions;
|
|
34
39
|
let fields = {};
|
|
35
40
|
let schemaFields = configFields;
|
|
@@ -44,6 +49,9 @@ const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
|
|
|
44
49
|
}
|
|
45
50
|
const schema = new mongoose.Schema(fields, options);
|
|
46
51
|
schemaFields.forEach((field)=>{
|
|
52
|
+
if (fieldIsVirtual(field)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
47
55
|
if (!fieldIsPresentationalOnly(field)) {
|
|
48
56
|
const addFieldSchema = fieldToSchemaMap[field.type];
|
|
49
57
|
if (addFieldSchema) {
|
|
@@ -68,8 +76,7 @@ const fieldToSchemaMap = {
|
|
|
68
76
|
minimize: false
|
|
69
77
|
}
|
|
70
78
|
})
|
|
71
|
-
]
|
|
72
|
-
default: undefined
|
|
79
|
+
]
|
|
73
80
|
};
|
|
74
81
|
schema.add({
|
|
75
82
|
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
@@ -82,8 +89,7 @@ const fieldToSchemaMap = {
|
|
|
82
89
|
_id: false,
|
|
83
90
|
discriminatorKey: 'blockType'
|
|
84
91
|
})
|
|
85
|
-
]
|
|
86
|
-
default: undefined
|
|
92
|
+
]
|
|
87
93
|
};
|
|
88
94
|
schema.add({
|
|
89
95
|
[field.name]: localizeSchema(field, fieldSchema, config.localization)
|
|
@@ -101,12 +107,10 @@ const fieldToSchemaMap = {
|
|
|
101
107
|
});
|
|
102
108
|
if (field.localized && config.localization) {
|
|
103
109
|
config.localization.localeCodes.forEach((localeCode)=>{
|
|
104
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
105
110
|
// @ts-expect-error Possible incorrect typing in mongoose types, this works
|
|
106
111
|
schema.path(`${field.name}.${localeCode}`).discriminator(blockItem.slug, blockSchema);
|
|
107
112
|
});
|
|
108
113
|
} else {
|
|
109
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
110
114
|
// @ts-expect-error Possible incorrect typing in mongoose types, this works
|
|
111
115
|
schema.path(field.name).discriminator(blockItem.slug, blockSchema);
|
|
112
116
|
}
|
|
@@ -132,6 +136,9 @@ const fieldToSchemaMap = {
|
|
|
132
136
|
},
|
|
133
137
|
collapsible: (field, schema, config, buildSchemaOptions)=>{
|
|
134
138
|
field.fields.forEach((subField)=>{
|
|
139
|
+
if (fieldIsVirtual(subField)) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
135
142
|
const addFieldSchema = fieldToSchemaMap[subField.type];
|
|
136
143
|
if (addFieldSchema) {
|
|
137
144
|
addFieldSchema(subField, schema, config, buildSchemaOptions);
|
|
@@ -209,7 +216,7 @@ const fieldToSchemaMap = {
|
|
|
209
216
|
type: [
|
|
210
217
|
Number
|
|
211
218
|
],
|
|
212
|
-
default: field
|
|
219
|
+
default: formatDefaultValue(field),
|
|
213
220
|
required: false
|
|
214
221
|
}
|
|
215
222
|
};
|
|
@@ -243,7 +250,9 @@ const fieldToSchemaMap = {
|
|
|
243
250
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
244
251
|
type: String,
|
|
245
252
|
enum: field.options.map((option)=>{
|
|
246
|
-
if (typeof option === 'object')
|
|
253
|
+
if (typeof option === 'object') {
|
|
254
|
+
return option.value;
|
|
255
|
+
}
|
|
247
256
|
return option;
|
|
248
257
|
})
|
|
249
258
|
};
|
|
@@ -285,7 +294,7 @@ const fieldToSchemaMap = {
|
|
|
285
294
|
type: [
|
|
286
295
|
localeSchema
|
|
287
296
|
],
|
|
288
|
-
default:
|
|
297
|
+
default: formatDefaultValue(field)
|
|
289
298
|
} : localeSchema
|
|
290
299
|
};
|
|
291
300
|
}, {}),
|
|
@@ -310,7 +319,7 @@ const fieldToSchemaMap = {
|
|
|
310
319
|
type: [
|
|
311
320
|
schemaToReturn
|
|
312
321
|
],
|
|
313
|
-
default:
|
|
322
|
+
default: formatDefaultValue(field)
|
|
314
323
|
};
|
|
315
324
|
}
|
|
316
325
|
} else {
|
|
@@ -324,7 +333,7 @@ const fieldToSchemaMap = {
|
|
|
324
333
|
type: [
|
|
325
334
|
schemaToReturn
|
|
326
335
|
],
|
|
327
|
-
default:
|
|
336
|
+
default: formatDefaultValue(field)
|
|
328
337
|
};
|
|
329
338
|
}
|
|
330
339
|
}
|
|
@@ -343,6 +352,9 @@ const fieldToSchemaMap = {
|
|
|
343
352
|
},
|
|
344
353
|
row: (field, schema, config, buildSchemaOptions)=>{
|
|
345
354
|
field.fields.forEach((subField)=>{
|
|
355
|
+
if (fieldIsVirtual(subField)) {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
346
358
|
const addFieldSchema = fieldToSchemaMap[subField.type];
|
|
347
359
|
if (addFieldSchema) {
|
|
348
360
|
addFieldSchema(subField, schema, config, buildSchemaOptions);
|
|
@@ -354,7 +366,9 @@ const fieldToSchemaMap = {
|
|
|
354
366
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
355
367
|
type: String,
|
|
356
368
|
enum: field.options.map((option)=>{
|
|
357
|
-
if (typeof option === 'object')
|
|
369
|
+
if (typeof option === 'object') {
|
|
370
|
+
return option.value;
|
|
371
|
+
}
|
|
358
372
|
return option;
|
|
359
373
|
})
|
|
360
374
|
};
|
|
@@ -370,6 +384,9 @@ const fieldToSchemaMap = {
|
|
|
370
384
|
tabs: (field, schema, config, buildSchemaOptions)=>{
|
|
371
385
|
field.tabs.forEach((tab)=>{
|
|
372
386
|
if (tabHasName(tab)) {
|
|
387
|
+
if (fieldIsVirtual(tab)) {
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
373
390
|
const baseSchema = {
|
|
374
391
|
type: buildSchema(config, tab.fields, {
|
|
375
392
|
disableUnique: buildSchemaOptions.disableUnique,
|
|
@@ -386,6 +403,9 @@ const fieldToSchemaMap = {
|
|
|
386
403
|
});
|
|
387
404
|
} else {
|
|
388
405
|
tab.fields.forEach((subField)=>{
|
|
406
|
+
if (fieldIsVirtual(subField)) {
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
389
409
|
const addFieldSchema = fieldToSchemaMap[subField.type];
|
|
390
410
|
if (addFieldSchema) {
|
|
391
411
|
addFieldSchema(subField, schema, config, buildSchemaOptions);
|
|
@@ -415,16 +435,86 @@ const fieldToSchemaMap = {
|
|
|
415
435
|
});
|
|
416
436
|
},
|
|
417
437
|
upload: (field, schema, config, buildSchemaOptions)=>{
|
|
418
|
-
const
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
438
|
+
const hasManyRelations = Array.isArray(field.relationTo);
|
|
439
|
+
let schemaToReturn = {};
|
|
440
|
+
if (field.localized && config.localization) {
|
|
441
|
+
schemaToReturn = {
|
|
442
|
+
type: config.localization.localeCodes.reduce((locales, locale)=>{
|
|
443
|
+
let localeSchema = {};
|
|
444
|
+
if (hasManyRelations) {
|
|
445
|
+
localeSchema = {
|
|
446
|
+
...formatBaseSchema(field, buildSchemaOptions),
|
|
447
|
+
_id: false,
|
|
448
|
+
type: mongoose.Schema.Types.Mixed,
|
|
449
|
+
relationTo: {
|
|
450
|
+
type: String,
|
|
451
|
+
enum: field.relationTo
|
|
452
|
+
},
|
|
453
|
+
value: {
|
|
454
|
+
type: mongoose.Schema.Types.Mixed,
|
|
455
|
+
refPath: `${field.name}.${locale}.relationTo`
|
|
456
|
+
}
|
|
457
|
+
};
|
|
458
|
+
} else {
|
|
459
|
+
localeSchema = {
|
|
460
|
+
...formatBaseSchema(field, buildSchemaOptions),
|
|
461
|
+
type: mongoose.Schema.Types.Mixed,
|
|
462
|
+
ref: field.relationTo
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
return {
|
|
466
|
+
...locales,
|
|
467
|
+
[locale]: field.hasMany ? {
|
|
468
|
+
type: [
|
|
469
|
+
localeSchema
|
|
470
|
+
],
|
|
471
|
+
default: formatDefaultValue(field)
|
|
472
|
+
} : localeSchema
|
|
473
|
+
};
|
|
474
|
+
}, {}),
|
|
475
|
+
localized: true
|
|
476
|
+
};
|
|
477
|
+
} else if (hasManyRelations) {
|
|
478
|
+
schemaToReturn = {
|
|
479
|
+
...formatBaseSchema(field, buildSchemaOptions),
|
|
480
|
+
_id: false,
|
|
481
|
+
type: mongoose.Schema.Types.Mixed,
|
|
482
|
+
relationTo: {
|
|
483
|
+
type: String,
|
|
484
|
+
enum: field.relationTo
|
|
485
|
+
},
|
|
486
|
+
value: {
|
|
487
|
+
type: mongoose.Schema.Types.Mixed,
|
|
488
|
+
refPath: `${field.name}.relationTo`
|
|
489
|
+
}
|
|
490
|
+
};
|
|
491
|
+
if (field.hasMany) {
|
|
492
|
+
schemaToReturn = {
|
|
493
|
+
type: [
|
|
494
|
+
schemaToReturn
|
|
495
|
+
],
|
|
496
|
+
default: formatDefaultValue(field)
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
} else {
|
|
500
|
+
schemaToReturn = {
|
|
501
|
+
...formatBaseSchema(field, buildSchemaOptions),
|
|
502
|
+
type: mongoose.Schema.Types.Mixed,
|
|
503
|
+
ref: field.relationTo
|
|
504
|
+
};
|
|
505
|
+
if (field.hasMany) {
|
|
506
|
+
schemaToReturn = {
|
|
507
|
+
type: [
|
|
508
|
+
schemaToReturn
|
|
509
|
+
],
|
|
510
|
+
default: formatDefaultValue(field)
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
}
|
|
423
514
|
schema.add({
|
|
424
|
-
[field.name]:
|
|
515
|
+
[field.name]: schemaToReturn
|
|
425
516
|
});
|
|
426
517
|
}
|
|
427
518
|
};
|
|
428
|
-
export default buildSchema;
|
|
429
519
|
|
|
430
520
|
//# sourceMappingURL=buildSchema.js.map
|