diff --git a/packages/crud/src/crud/crud-routes.factory.ts b/packages/crud/src/crud/crud-routes.factory.ts index a0c1fdf5..91f99293 100644 --- a/packages/crud/src/crud/crud-routes.factory.ts +++ b/packages/crud/src/crud/crud-routes.factory.ts @@ -107,9 +107,8 @@ export class CrudRoutesFactory { } // set serialize - if (!isObjectFull(this.options.serialize)) { - this.options.serialize = {}; - } + const serialize = isObjectFull(this.options.serialize) ? this.options.serialize : {}; + this.options.serialize = { ...CrudConfigService.config.serialize, ...serialize }; this.options.serialize.get = isFalse(this.options.serialize.get) ? false : this.options.serialize.get || this.modelType; diff --git a/packages/crud/src/interfaces/crud-global-config.interface.ts b/packages/crud/src/interfaces/crud-global-config.interface.ts index 5000efe2..eed85f2c 100644 --- a/packages/crud/src/interfaces/crud-global-config.interface.ts +++ b/packages/crud/src/interfaces/crud-global-config.interface.ts @@ -15,4 +15,13 @@ export interface CrudGlobalConfig { cache?: number | false; alwaysPaginate?: boolean; }; + serialize?: { + getMany?: false; + get?: false; + create?: false; + createMany?: false; + update?: false; + replace?: false; + delete?: false; + }; } diff --git a/packages/crud/src/module/crud-config.service.ts b/packages/crud/src/module/crud-config.service.ts index 89c33138..6a2a6ab5 100644 --- a/packages/crud/src/module/crud-config.service.ts +++ b/packages/crud/src/module/crud-config.service.ts @@ -41,10 +41,11 @@ export class CrudConfigService { const query = isObjectFull(config.query) ? config.query : {}; const routes = isObjectFull(config.routes) ? config.routes : {}; const params = isObjectFull(config.params) ? config.params : {}; + const serialize = isObjectFull(config.serialize) ? config.serialize : {}; CrudConfigService.config = deepmerge( CrudConfigService.config, - { auth, query, routes, params }, + { auth, query, routes, params, serialize }, { arrayMerge: (a, b, c) => b }, ); } diff --git a/packages/crud/test/crud-config.service.global.spec.ts b/packages/crud/test/crud-config.service.global.spec.ts index c3d70ac2..7ae6a4ea 100644 --- a/packages/crud/test/crud-config.service.global.spec.ts +++ b/packages/crud/test/crud-config.service.global.spec.ts @@ -29,6 +29,9 @@ const conf: CrudGlobalConfig = { allowParamsOverride: true, }, }, + serialize: { + get: false, + }, }; // Important: load config before (!!!) you import AppModule