diff --git a/package-lock.json b/package-lock.json index 3dc0ddd..084dec9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@athenna/resource", - "version": "5.3.0", + "version": "5.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@athenna/resource", - "version": "5.3.0", + "version": "5.4.0", "license": "MIT", "devDependencies": { "@athenna/artisan": "^5.7.0", diff --git a/package.json b/package.json index 5b95161..67501a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@athenna/resource", - "version": "5.3.0", + "version": "5.4.0", "description": "Add transformation layers between your application data transfer.", "license": "MIT", "author": "João Lenon ", diff --git a/src/resource/BaseResource.ts b/src/resource/BaseResource.ts index f1f046e..3cb2f0e 100644 --- a/src/resource/BaseResource.ts +++ b/src/resource/BaseResource.ts @@ -22,7 +22,7 @@ export abstract class BaseResource { private defaultValues: { key: string value?: any - closure?: (item?: I) => any + closure?: (item?: I, json?: R) => any }[] /** @@ -59,20 +59,14 @@ export abstract class BaseResource { const json = this.schema(item) if (this.defaultValues.length) { - Object.keys(json).forEach(key => { - const defaultValue = this.defaultValues.find(v => v.key === key) - - if (!defaultValue) { - return - } - + this.defaultValues.forEach(defaultValue => { if (defaultValue.closure) { - Json.set(json, key, defaultValue.closure(item)) + Json.set(json, defaultValue.key, defaultValue.closure(item, json)) return } - Json.set(json, key, defaultValue.value) + Json.set(json, defaultValue.key, defaultValue.value) }) }