@mee4dy/crud
Version:
Create a backend and frontend in 5 minutes! With our powerful full stack crud system, customize it to suit you.
1 lines • 4.17 kB
Source Map (JSON)
{"version":3,"file":"orm.cjs","sources":["../../orm/orm.ts"],"sourcesContent":["import * as _ from 'lodash';\nimport { Actions, Level } from './orm.interfaces';\nimport { ORMItem } from './orm-item';\n\nexport class ORM {\n constructor(items: object[] = [], pk = 'id', actions: Actions, includes = [], level: Level = null) {\n this.setPK(pk);\n this.setLevel(level);\n this.setActions(actions);\n this.setIncludes(includes);\n this.setItems(items);\n }\n\n private items;\n private actions: Actions;\n private includes: string[] = [];\n private pk: string;\n private level: Level;\n\n public setItems(items = []) {\n const pk = this.getPK();\n const actions = this.getActions();\n const includes = this.getIncludes();\n const ormLevel = this.getLevel();\n\n this.items = items.map((item, key) => {\n const itemPath = ormLevel?.path ? `${ormLevel.path}[${key}]` : ormLevel?.path;\n const itemLevel = { ...ormLevel, path: itemPath };\n const itemORM = new ORMItem(item, pk, {\n commit(args) {\n return actions.commit ? actions.commit({ ...args, level: itemLevel }) : null;\n },\n update(args) {\n return actions.update ? actions.update({ ...args, level: itemLevel }) : null;\n },\n delete(args) {\n return actions.delete ? actions.delete({ ...args, level: itemLevel }) : null;\n },\n });\n\n includes.forEach((include) => {\n if (itemORM.hasOwnProperty(include)) {\n const includeLevel = {\n parentPK: item.pk,\n path: [itemLevel?.path, include].filter((i) => i).join('.'),\n };\n const includeItems = new ORM(itemORM[include], pk, actions, includes, includeLevel).getItems();\n\n itemORM[include] = includeItems;\n }\n });\n\n return itemORM;\n });\n\n return this;\n }\n\n public getItems() {\n return this.items;\n }\n\n public setLevel(level) {\n this.level = level;\n\n return this;\n }\n\n public getLevel() {\n return this.level;\n }\n\n public setPK(pk) {\n this.pk = pk;\n\n return this;\n }\n\n public getPK() {\n return this.pk;\n }\n\n public setActions(actions) {\n this.actions = actions;\n\n return this;\n }\n\n public getActions() {\n return this.actions;\n }\n\n public setIncludes(includes) {\n this.includes = includes;\n\n return this;\n }\n\n public getIncludes() {\n return this.includes;\n }\n}\n"],"names":["ORM","items","pk","actions","includes","level","ormLevel","item","key","itemPath","itemLevel","itemORM","ORMItem","args","include","includeLevel","i","includeItems"],"mappings":"kHAIO,MAAMA,CAAI,CACf,YAAYC,EAAkB,CAAI,EAAAC,EAAK,KAAMC,EAAkBC,EAAW,CAAA,EAAIC,EAAe,KAAM,CAUnG,KAAQ,SAAqB,CAAC,EAT5B,KAAK,MAAMH,CAAE,EACb,KAAK,SAASG,CAAK,EACnB,KAAK,WAAWF,CAAO,EACvB,KAAK,YAAYC,CAAQ,EACzB,KAAK,SAASH,CAAK,CAAA,CASd,SAASA,EAAQ,GAAI,CACpB,MAAAC,EAAK,KAAK,MAAM,EAChBC,EAAU,KAAK,WAAW,EAC1BC,EAAW,KAAK,YAAY,EAC5BE,EAAW,KAAK,SAAS,EAE/B,YAAK,MAAQL,EAAM,IAAI,CAACM,EAAMC,IAAQ,CAC9B,MAAAC,EAAWH,GAAA,MAAAA,EAAU,KAAO,GAAGA,EAAS,IAAI,IAAIE,CAAG,IAAMF,GAAA,YAAAA,EAAU,KACnEI,EAAY,CAAE,GAAGJ,EAAU,KAAMG,CAAS,EAC1CE,EAAU,IAAIC,UAAQL,EAAML,EAAI,CACpC,OAAOW,EAAM,CACJ,OAAAV,EAAQ,OAASA,EAAQ,OAAO,CAAE,GAAGU,EAAM,MAAOH,CAAW,CAAA,EAAI,IAC1E,EACA,OAAOG,EAAM,CACJ,OAAAV,EAAQ,OAASA,EAAQ,OAAO,CAAE,GAAGU,EAAM,MAAOH,CAAW,CAAA,EAAI,IAC1E,EACA,OAAOG,EAAM,CACJ,OAAAV,EAAQ,OAASA,EAAQ,OAAO,CAAE,GAAGU,EAAM,MAAOH,CAAW,CAAA,EAAI,IAAA,CAC1E,CACD,EAEQ,OAAAN,EAAA,QAASU,GAAY,CACxB,GAAAH,EAAQ,eAAeG,CAAO,EAAG,CACnC,MAAMC,EAAe,CACnB,SAAUR,EAAK,GACf,KAAM,CAACG,GAAA,YAAAA,EAAW,KAAMI,CAAO,EAAE,OAAQE,GAAMA,CAAC,EAAE,KAAK,GAAG,CAC5D,EACMC,EAAe,IAAIjB,EAAIW,EAAQG,CAAO,EAAGZ,EAAIC,EAASC,EAAUW,CAAY,EAAE,SAAS,EAE7FJ,EAAQG,CAAO,EAAIG,CAAA,CACrB,CACD,EAEMN,CAAA,CACR,EAEM,IAAA,CAGF,UAAW,CAChB,OAAO,KAAK,KAAA,CAGP,SAASN,EAAO,CACrB,YAAK,MAAQA,EAEN,IAAA,CAGF,UAAW,CAChB,OAAO,KAAK,KAAA,CAGP,MAAMH,EAAI,CACf,YAAK,GAAKA,EAEH,IAAA,CAGF,OAAQ,CACb,OAAO,KAAK,EAAA,CAGP,WAAWC,EAAS,CACzB,YAAK,QAAUA,EAER,IAAA,CAGF,YAAa,CAClB,OAAO,KAAK,OAAA,CAGP,YAAYC,EAAU,CAC3B,YAAK,SAAWA,EAET,IAAA,CAGF,aAAc,CACnB,OAAO,KAAK,QAAA,CAEhB"}