@decaf-ts/for-http 0.3.0 → 0.3.2

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/README.md CHANGED
@@ -27,7 +27,7 @@ A lightweight HTTP adapter layer for decaf-ts that enables CRUD-style repositori
27
27
 
28
28
  Documentation available [here](https://decaf-ts.github.io/for-http/)
29
29
 
30
- Minimal size: 1.7 KB kb gzipped
30
+ Minimal size: 1.4 KB kb gzipped
31
31
 
32
32
 
33
33
  # decaf-ts/for-http — Detailed Description
package/dist/for-http.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,s,a,i){"use strict";class o extends a.LoggedClass{get class(){if(!this._class)throw new r.InternalError("No class definition found for this repository");return this._class}get log(){return this.logger||(this.logger=this.adapter.log.for(this.toString())),this.logger}get pk(){return this._pk||(this._pk=s.Model.pk(this.class)),this._pk}get adapter(){if(!this._adapter)throw new r.InternalError("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");return this._adapter}get tableName(){return this._tableName||(this._tableName=t.Repository.table(this.class)),this._tableName}constructor(e,t){super(),this.observers=[],this._adapter=e,t&&(this._class=t)}url(e,t){return this.adapter.url(e,t)}async create(e,...t){let{record:r,id:s}=this.adapter.prepare(e,this.pk);return r=await this.adapter.create(this.tableName,s,r,...t),this.adapter.revert(r,this.class,this.pk,s)}async read(e,...t){const r=await this.adapter.read(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async update(e,...t){let{record:r,id:s}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,s,r,...t),this.adapter.revert(r,this.class,this.pk,s)}async delete(e,...t){const r=await this.adapter.delete(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async request(e){return this.adapter.request(e)}async createAll(e,...t){if(!e.length)return e;const r=e.map(e=>this.adapter.prepare(e,this.pk)),s=r.map(e=>e.id);let a=r.map(e=>e.record);return a=await this.adapter.createAll(this.tableName,s,a,...t),a.map((e,t)=>this.adapter.revert(e,this.class,this.pk,s[t]))}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async readAll(e,...t){return(await this.adapter.readAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async updateAll(e,...t){const r=e.map(e=>this.adapter.prepare(e,this.pk));return(await this.adapter.updateAll(this.tableName,r.map(e=>e.id),r.map(e=>e.record),...t)).map((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id))}observe(e){if(-1!==this.observers.indexOf(e))throw new r.InternalError("Observer already registered");this.observers.push(e)}unObserve(e){const t=this.observers.indexOf(e);if(-1===t)throw new r.InternalError("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(...e){(await Promise.allSettled(this.observers.map(t=>t.refresh(...e)))).forEach((e,t)=>{e.status})}toString(){return this.class.name+" rest service"}}class n extends t.Adapter{constructor(e,t,r){super(e,t,r)}flags(e,t,r){return Object.assign(super.flags(e,t,r),{headers:{}})}repository(){return o}prepare(e,r){const s=this.log.for(this.prepare),a=Object.assign({},e);return e[t.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+e[t.PersistenceKeys.METADATA]),Object.defineProperty(a,t.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[t.PersistenceKeys.METADATA]})),{record:e,id:e[r]}}revert(e,a,i,o){const n=this.log.for(this.revert),l={},c="string"==typeof a?s.Model.build(l,a):new a(l);n.silly(`Rebuilding model ${c.constructor.name} id ${o}`);const d="string"==typeof a?s.Model.get(a):a;if(!d)throw new r.InternalError("Failed to retrieve model constructor for "+a);const p=new d(e),h=e[t.PersistenceKeys.METADATA];return h&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${c.constructor.name} id ${o}: ${h}`),Object.defineProperty(p,t.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),p}url(e,t){const r=new URL(`${this.config.protocol}://${this.config.host}/${e}`);return t&&Object.entries(t).forEach(([e,t])=>r.searchParams.append(e,t.toString())),encodeURI(r.toString()).replace(/\+/g,"%20")}raw(e,r,...s){return Promise.reject(new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Sequence(e){return Promise.reject(new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}parseCondition(e){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}}const l="axios";class c extends n{constructor(e,t){super(e,l,t)}getClient(){return new i.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}async request(e){return this.client.request(e)}async create(e,t,r){try{const t=this.url(e);return this.client.post(t,r)}catch(e){throw this.parseError(e)}}async read(e,t){try{const r=this.url(e,{id:t});return this.client.get(r)}catch(e){throw this.parseError(e)}}async update(e,t,r){try{const t=this.url(e);return this.client.put(t,r)}catch(e){throw this.parseError(e)}}async delete(e,t){try{const r=this.url(e,{id:t});return this.client.delete(r)}catch(e){throw this.parseError(e)}}parseError(e){const s=[r.InternalError,t.AuthorizationError,r.ConflictError,r.NotFoundError,t.UnsupportedError];for(const t of s)if(e.message.includes(t.name))return new t(e.message);return new r.InternalError(e.message)}}c.decoration();class d extends t.Repository{constructor(e,t){super(e,t)}url(e,t){return this.adapter.url(e,t)}async request(e){return this.adapter.request(e)}}e.AxiosFlavour=l,e.AxiosHttpAdapter=c,e.HttpAdapter=n,e.RestRepository=d,e.RestService=o,e.VERSION="##VERSION##"},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/logging"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","@decaf-ts/logging","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.decafTsLogging,e.axios);
1
+ var e,r;e=this,r=function(e,r,t,s,o){"use strict";class n extends r.Repository{constructor(e,r){super(e,r)}url(e,r){return this.adapter.url(e,r)}async request(e){return this.adapter.request(e)}}class i extends n{constructor(e,r){super(e,r),this._overrides={ignoreValidation:!0,ignoreHandlers:!0}}toString(){return s.Model.tableName(this.class)+" REST service"}}class a extends r.Adapter{constructor(e,r,t){super(e,r,t)}flags(e,r,t){return Object.assign(super.flags(e,r,t),{headers:{}})}repository(){return i}prepare(e,...t){const{log:o}=this.logCtx(t,this.prepare),n=Object.assign({},e);return e[r.PersistenceKeys.METADATA]&&(o.silly("Passing along persistence metadata for "+e[r.PersistenceKeys.METADATA]),Object.defineProperty(n,r.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[r.PersistenceKeys.METADATA]})),{record:e,id:e[s.Model.pk(e.constructor)]}}revert(e,o,n,...i){const{log:a}=this.logCtx(i,this.revert),c={},l="string"==typeof o?s.Model.build(c,o):new o(c);a.silly(`Rebuilding model ${l.constructor.name} id ${n}`);const d="string"==typeof o?s.Model.get(o):o;if(!d)throw new t.InternalError("Failed to retrieve model constructor for "+o);const u=new d(e),p=e[r.PersistenceKeys.METADATA];return p&&(a.silly(`Passing along ${this.flavour} persistence metadata for ${l.constructor.name} id ${n}: ${p}`),Object.defineProperty(u,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:p})),u}toTableName(e){return"string"==typeof e?e:s.Model.tableName(e)}url(e,r){e=this.toTableName(e);const t=new URL(`${this.config.protocol}://${this.config.host}/${e}`);return r&&Object.entries(r).forEach(([e,r])=>t.searchParams.append(e,r.toString())),encodeURI(t.toString()).replace(/\+/g,"%20")}raw(e,...t){return Promise.reject(new r.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Sequence(e){return Promise.reject(new r.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(){throw new r.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}parseCondition(e){throw new r.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...s){const o="string"==typeof e?e:e.message;return o.includes(t.NotFoundError.name)?new t.NotFoundError(e):o.includes(t.ConflictError.name)?new t.ConflictError(e):o.includes(t.BadRequestError.name)?new t.BadRequestError(e):o.includes(r.QueryError.name)?new r.QueryError(e):o.includes(r.PagingError.name)?new r.PagingError(e):o.includes(r.UnsupportedError.name)?new r.UnsupportedError(e):o.includes(r.MigrationError.name)?new r.MigrationError(e):o.includes(r.ObserverError.name)?new r.ObserverError(e):o.includes(r.AuthorizationError.name)?new r.AuthorizationError(e):o.includes(r.ForbiddenError.name)?new r.ForbiddenError(e):o.includes(r.ConnectionError.name)?new r.ConnectionError(e):o.includes(t.SerializationError.name)?new t.SerializationError(e):new t.InternalError(e)}}const c="axios";class l extends a{constructor(e,r){super(e,c,r)}getClient(){return new o.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}async request(e){return this.client.request(e)}async create(e,r,t,...s){try{const r=this.url(e);return this.client.post(r,t)}catch(e){throw this.parseError(e)}}async read(e,r,...t){try{const t=this.url(e,{id:r});return this.client.get(t)}catch(e){throw this.parseError(e)}}async update(e,r,t,...s){try{const r=this.url(e);return this.client.put(r,t)}catch(e){throw this.parseError(e)}}async delete(e,r,...t){try{const t=this.url(e,{id:r});return this.client.delete(t)}catch(e){throw this.parseError(e)}}parseError(e,...r){return a.parseError(e,...r)}}l.decoration(),e.AxiosFlavour=c,e.AxiosHttpAdapter=l,e.HttpAdapter=a,e.RestRepository=n,e.RestService=i,e.VERSION="##VERSION##"},"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","axios"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.axios);
2
2
  //# sourceMappingURL=for-http.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-http.cjs","sources":["../src/RestService.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/RestRepository.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["RestService","LoggedClass","this","_class","InternalError","log","logger","adapter","for","toString","pk","_pk","Model","class","_adapter","tableName","_tableName","Repository","table","constructor","clazz","super","observers","url","path","queryParams","create","model","args","record","id","prepare","revert","read","m","update","delete","request","details","createAll","models","length","prepared","map","ids","p","records","r","i","deleteAll","keys","readAll","updateAll","u","observe","observer","indexOf","push","unObserve","index","splice","updateObservers","Promise","allSettled","o","refresh","forEach","result","status","name","HttpAdapter","Adapter","config","flavour","alias","flags","operation","overrides","Object","assign","headers","repository","PersistenceKeys","METADATA","silly","defineProperty","enumerable","writable","configurable","value","obj","ob","build","constr","get","metadata","URL","protocol","host","entries","key","searchParams","append","encodeURI","replace","raw","rawInput","process","reject","UnsupportedError","Sequence","options","Statement","parseCondition","condition","AxiosFlavour","AxiosHttpAdapter","getClient","Axios","baseURL","client","post","e","parseError","put","err","errs","AuthorizationError","ConflictError","NotFoundError","error","message","includes","decoration","RestRepository"],"mappings":"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"}
1
+ {"version":3,"file":"for-http.cjs","sources":["../src/RestRepository.ts","../src/RestService.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["RestRepository","Repository","constructor","adapter","clazz","super","url","path","queryParams","this","request","details","RestService","_overrides","ignoreValidation","ignoreHandlers","toString","Model","tableName","class","HttpAdapter","Adapter","config","flavour","alias","flags","operation","model","overrides","Object","assign","headers","repository","prepare","args","log","logCtx","result","PersistenceKeys","METADATA","silly","defineProperty","enumerable","writable","configurable","value","record","id","pk","revert","obj","ob","m","build","name","constr","get","InternalError","metadata","toTableName","t","URL","protocol","host","entries","forEach","key","searchParams","append","encodeURI","replace","raw","rawInput","Promise","reject","UnsupportedError","Sequence","options","Statement","parseCondition","condition","parseError","err","msg","message","includes","NotFoundError","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","AxiosFlavour","AxiosHttpAdapter","getClient","Axios","baseURL","client","create","_args","post","e","read","update","put","delete","decoration"],"mappings":"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"}
package/dist/for-http.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Repository as e,Adapter as t,PersistenceKeys as r,UnsupportedError as s,AuthorizationError as a}from"@decaf-ts/core";import{InternalError as i,ConflictError as n,NotFoundError as o}from"@decaf-ts/db-decorators";import{Model as l}from"@decaf-ts/decorator-validation";import{LoggedClass as c}from"@decaf-ts/logging";import{Axios as h}from"axios";class p extends c{get class(){if(!this._class)throw new i("No class definition found for this repository");return this._class}get log(){return this.logger||(this.logger=this.adapter.log.for(this.toString())),this.logger}get pk(){return this._pk||(this._pk=l.pk(this.class)),this._pk}get adapter(){if(!this._adapter)throw new i("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");return this._adapter}get tableName(){return this._tableName||(this._tableName=e.table(this.class)),this._tableName}constructor(e,t){super(),this.observers=[],this._adapter=e,t&&(this._class=t)}url(e,t){return this.adapter.url(e,t)}async create(e,...t){let{record:r,id:s}=this.adapter.prepare(e,this.pk);return r=await this.adapter.create(this.tableName,s,r,...t),this.adapter.revert(r,this.class,this.pk,s)}async read(e,...t){const r=await this.adapter.read(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async update(e,...t){let{record:r,id:s}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,s,r,...t),this.adapter.revert(r,this.class,this.pk,s)}async delete(e,...t){const r=await this.adapter.delete(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async request(e){return this.adapter.request(e)}async createAll(e,...t){if(!e.length)return e;const r=e.map(e=>this.adapter.prepare(e,this.pk)),s=r.map(e=>e.id);let a=r.map(e=>e.record);return a=await this.adapter.createAll(this.tableName,s,a,...t),a.map((e,t)=>this.adapter.revert(e,this.class,this.pk,s[t]))}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async readAll(e,...t){return(await this.adapter.readAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async updateAll(e,...t){const r=e.map(e=>this.adapter.prepare(e,this.pk));return(await this.adapter.updateAll(this.tableName,r.map(e=>e.id),r.map(e=>e.record),...t)).map((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id))}observe(e){if(-1!==this.observers.indexOf(e))throw new i("Observer already registered");this.observers.push(e)}unObserve(e){const t=this.observers.indexOf(e);if(-1===t)throw new i("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(...e){(await Promise.allSettled(this.observers.map(t=>t.refresh(...e)))).forEach((e,t)=>{e.status})}toString(){return this.class.name+" rest service"}}class d extends t{constructor(e,t,r){super(e,t,r)}flags(e,t,r){return Object.assign(super.flags(e,t,r),{headers:{}})}repository(){return p}prepare(e,t){const s=this.log.for(this.prepare),a=Object.assign({},e);return e[r.METADATA]&&(s.silly("Passing along persistence metadata for "+e[r.METADATA]),Object.defineProperty(a,r.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[r.METADATA]})),{record:e,id:e[t]}}revert(e,t,s,a){const n=this.log.for(this.revert),o={},c="string"==typeof t?l.build(o,t):new t(o);n.silly(`Rebuilding model ${c.constructor.name} id ${a}`);const h="string"==typeof t?l.get(t):t;if(!h)throw new i("Failed to retrieve model constructor for "+t);const p=new h(e),d=e[r.METADATA];return d&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${c.constructor.name} id ${a}: ${d}`),Object.defineProperty(p,r.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:d})),p}url(e,t){const r=new URL(`${this.config.protocol}://${this.config.host}/${e}`);return t&&Object.entries(t).forEach(([e,t])=>r.searchParams.append(e,t.toString())),encodeURI(r.toString()).replace(/\+/g,"%20")}raw(e,t,...r){return Promise.reject(new s("Api is not natively available for HttpAdapters. If required, please extends this class"))}Sequence(e){return Promise.reject(new s("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(){throw new s("Api is not natively available for HttpAdapters. If required, please extends this class")}parseCondition(e){throw new s("Api is not natively available for HttpAdapters. If required, please extends this class")}}const u="axios";class f extends d{constructor(e,t){super(e,u,t)}getClient(){return new h({baseURL:`${this.config.protocol}://${this.config.host}`})}async request(e){return this.client.request(e)}async create(e,t,r){try{const t=this.url(e);return this.client.post(t,r)}catch(e){throw this.parseError(e)}}async read(e,t){try{const r=this.url(e,{id:t});return this.client.get(r)}catch(e){throw this.parseError(e)}}async update(e,t,r){try{const t=this.url(e);return this.client.put(t,r)}catch(e){throw this.parseError(e)}}async delete(e,t){try{const r=this.url(e,{id:t});return this.client.delete(r)}catch(e){throw this.parseError(e)}}parseError(e){const t=[i,a,n,o,s];for(const r of t)if(e.message.includes(r.name))return new r(e.message);return new i(e.message)}}f.decoration();class m extends e{constructor(e,t){super(e,t)}url(e,t){return this.adapter.url(e,t)}async request(e){return this.adapter.request(e)}}const g="##VERSION##";export{u as AxiosFlavour,f as AxiosHttpAdapter,d as HttpAdapter,m as RestRepository,p as RestService,g as VERSION};
1
+ import{Repository as e,Adapter as t,PersistenceKeys as r,UnsupportedError as s,QueryError as n,PagingError as a,MigrationError as i,ObserverError as o,AuthorizationError as c,ForbiddenError as l,ConnectionError as u}from"@decaf-ts/core";import{InternalError as d,NotFoundError as p,ConflictError as h,BadRequestError as m,SerializationError as f}from"@decaf-ts/db-decorators";import{Model as g}from"@decaf-ts/decorator-validation";import{Axios as w}from"axios";class A extends e{constructor(e,t){super(e,t)}url(e,t){return this.adapter.url(e,t)}async request(e){return this.adapter.request(e)}}class y extends A{constructor(e,t){super(e,t),this._overrides={ignoreValidation:!0,ignoreHandlers:!0}}toString(){return g.tableName(this.class)+" REST service"}}class b extends t{constructor(e,t,r){super(e,t,r)}flags(e,t,r){return Object.assign(super.flags(e,t,r),{headers:{}})}repository(){return y}prepare(e,...t){const{log:s}=this.logCtx(t,this.prepare),n=Object.assign({},e);return e[r.METADATA]&&(s.silly("Passing along persistence metadata for "+e[r.METADATA]),Object.defineProperty(n,r.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[r.METADATA]})),{record:e,id:e[g.pk(e.constructor)]}}revert(e,t,s,...n){const{log:a}=this.logCtx(n,this.revert),i={},o="string"==typeof t?g.build(i,t):new t(i);a.silly(`Rebuilding model ${o.constructor.name} id ${s}`);const c="string"==typeof t?g.get(t):t;if(!c)throw new d("Failed to retrieve model constructor for "+t);const l=new c(e),u=e[r.METADATA];return u&&(a.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${s}: ${u}`),Object.defineProperty(l,r.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:u})),l}toTableName(e){return"string"==typeof e?e:g.tableName(e)}url(e,t){e=this.toTableName(e);const r=new URL(`${this.config.protocol}://${this.config.host}/${e}`);return t&&Object.entries(t).forEach(([e,t])=>r.searchParams.append(e,t.toString())),encodeURI(r.toString()).replace(/\+/g,"%20")}raw(e,...t){return Promise.reject(new s("Api is not natively available for HttpAdapters. If required, please extends this class"))}Sequence(e){return Promise.reject(new s("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(){throw new s("Api is not natively available for HttpAdapters. If required, please extends this class")}parseCondition(e){throw new s("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...t){const r="string"==typeof e?e:e.message;return r.includes(p.name)?new p(e):r.includes(h.name)?new h(e):r.includes(m.name)?new m(e):r.includes(n.name)?new n(e):r.includes(a.name)?new a(e):r.includes(s.name)?new s(e):r.includes(i.name)?new i(e):r.includes(o.name)?new o(e):r.includes(c.name)?new c(e):r.includes(l.name)?new l(e):r.includes(u.name)?new u(e):r.includes(f.name)?new f(e):new d(e)}}const v="axios";class E extends b{constructor(e,t){super(e,v,t)}getClient(){return new w({baseURL:`${this.config.protocol}://${this.config.host}`})}async request(e){return this.client.request(e)}async create(e,t,r,...s){try{const t=this.url(e);return this.client.post(t,r)}catch(e){throw this.parseError(e)}}async read(e,t,...r){try{const r=this.url(e,{id:t});return this.client.get(r)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){try{const t=this.url(e);return this.client.put(t,r)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){try{const r=this.url(e,{id:t});return this.client.delete(r)}catch(e){throw this.parseError(e)}}parseError(e,...t){return b.parseError(e,...t)}}E.decoration();const T="##VERSION##";export{v as AxiosFlavour,E as AxiosHttpAdapter,b as HttpAdapter,A as RestRepository,y as RestService,T as VERSION};
2
2
  //# sourceMappingURL=for-http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-http.js","sources":["../src/RestService.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/RestRepository.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["RestService","LoggedClass","this","_class","InternalError","log","logger","adapter","for","toString","pk","_pk","Model","class","_adapter","tableName","_tableName","Repository","table","constructor","clazz","super","observers","url","path","queryParams","create","model","args","record","id","prepare","revert","read","m","update","delete","request","details","createAll","models","length","prepared","map","ids","p","records","r","i","deleteAll","keys","readAll","updateAll","u","observe","observer","indexOf","push","unObserve","index","splice","updateObservers","Promise","allSettled","o","refresh","forEach","result","status","name","HttpAdapter","Adapter","config","flavour","alias","flags","operation","overrides","Object","assign","headers","repository","PersistenceKeys","METADATA","silly","defineProperty","enumerable","writable","configurable","value","obj","ob","build","constr","get","metadata","URL","protocol","host","entries","key","searchParams","append","encodeURI","replace","raw","rawInput","process","reject","UnsupportedError","Sequence","options","Statement","parseCondition","condition","AxiosFlavour","AxiosHttpAdapter","getClient","Axios","baseURL","client","post","e","parseError","put","err","errs","AuthorizationError","ConflictError","NotFoundError","error","message","includes","decoration","RestRepository","VERSION"],"mappings":"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"}
1
+ {"version":3,"file":"for-http.js","sources":["../src/RestRepository.ts","../src/RestService.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["RestRepository","Repository","constructor","adapter","clazz","super","url","path","queryParams","this","request","details","RestService","_overrides","ignoreValidation","ignoreHandlers","toString","Model","tableName","class","HttpAdapter","Adapter","config","flavour","alias","flags","operation","model","overrides","Object","assign","headers","repository","prepare","args","log","logCtx","result","PersistenceKeys","METADATA","silly","defineProperty","enumerable","writable","configurable","value","record","id","pk","revert","obj","ob","m","build","name","constr","get","InternalError","metadata","toTableName","t","URL","protocol","host","entries","forEach","key","searchParams","append","encodeURI","replace","raw","rawInput","Promise","reject","UnsupportedError","Sequence","options","Statement","parseCondition","condition","parseError","err","msg","message","includes","NotFoundError","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","AxiosFlavour","AxiosHttpAdapter","getClient","Axios","baseURL","client","create","_args","post","e","read","update","put","delete","decoration","VERSION"],"mappings":"6cAkCM,MAAOA,UAIHC,EACR,WAAAC,CAAYC,EAAYC,GACtBC,MAAMF,EAASC,EAChB,CAED,GAAAE,CACEC,EACAC,GAEA,OAAOC,KAAKN,QAAQG,IAAIC,EAAMC,EAC/B,CAED,aAAME,CAAWC,GACf,OAAOF,KAAKN,QAAQO,QAAWC,EAChC,ECEG,MAAOC,UAIHZ,EAaR,WAAAE,CAAYC,EAAYC,GACtBC,MAAMF,EAASC,GAbEK,KAAAI,WAAkC,CACnDC,kBAAkB,EAClBC,gBAAgB,EAYjB,CAEQ,QAAAC,GACP,OAAUC,EAAMC,UAAUT,KAAKU,OAAxB,eACR,ECTG,MAAgBC,UAKZC,EACR,WAAAnB,CAAsBoB,EAAcC,EAAiBC,GACnDnB,MAAMiB,EAAQC,EAASC,EACxB,CAaQ,KAAAC,CACPC,EAKAC,EACAC,GAEA,OAAOC,OAAOC,OAAOzB,MAAMoB,MAASC,EAAWC,EAAOC,GAAY,CAChEG,QAAS,CAAE,GAEd,CASQ,UAAAC,GAGP,OAAOpB,CACR,CAYQ,OAAAqB,CACPN,KACGO,GAEH,MAAMC,IAAEA,GAAQ1B,KAAK2B,OAAOF,EAAMzB,KAAKwB,SACjCI,EAASR,OAAOC,OAAO,CAAE,EAAEH,GAajC,OAZKA,EAAcW,EAAgBC,YACjCJ,EAAIK,MACF,0CAA2Cb,EAAcW,EAAgBC,WAE3EV,OAAOY,eAAeJ,EAAQC,EAAgBC,SAAU,CACtDG,YAAY,EACZC,UAAU,EACVC,cAAc,EACdC,MAAQlB,EAAcW,EAAgBC,aAInC,CACLO,OAAQnB,EACRoB,GAAIpB,EAAMV,EAAM+B,GAAGrB,EAAMzB,cAE5B,CAaQ,MAAA+C,CACPC,EACA9C,EACA2C,KACGb,GAEH,MAAMC,IAAEA,GAAQ1B,KAAK2B,OAAOF,EAAMzB,KAAKwC,QACjCE,EAA0B,CAAA,EAC1BC,EACa,iBAAVhD,EAAqBa,EAAMoC,MAAMF,EAAI/C,GAAS,IAAIA,EAAM+C,GAEjEhB,EAAIK,MAAM,oBAAoBY,EAAElD,YAAYoD,WAAWP,KACvD,MAAMQ,EAA0B,iBAAVnD,EAAqBa,EAAMuC,IAAIpD,GAASA,EAC9D,IAAKmD,EACH,MAAM,IAAIE,EACR,4CAA4CrD,GAEhD,MAAMiC,EAAS,IAAKkB,EAA0BL,GACxCQ,EAAWR,EAAIZ,EAAgBC,UAarC,OAZImB,IACFvB,EAAIK,MACF,iBAAiB/B,KAAKc,oCAAoC6B,EAAElD,YAAYoD,WAAWP,MAAOW,KAE5F7B,OAAOY,eAAeJ,EAAQC,EAAgBC,SAAU,CACtDG,YAAY,EACZE,cAAc,EACdD,UAAU,EACVE,MAAOa,KAIJrB,CACR,CAES,WAAAsB,CAA6BC,GACrC,MAAoB,iBAANA,EAAiBA,EAAI3C,EAAMC,UAAU0C,EACpD,CAUD,GAAAtD,CACEY,EACAV,GAEAU,EAAYT,KAAKkD,YAAYzC,GAC7B,MAAMZ,EAAM,IAAIuD,IACd,GAAGpD,KAAKa,OAAOwC,cAAcrD,KAAKa,OAAOyC,QAAQ7C,KAQnD,OANIV,GACFqB,OAAOmC,QAAQxD,GAAayD,QAAQ,EAAEC,EAAKrB,KACzCvC,EAAI6D,aAAaC,OAAOF,EAAKrB,EAAM7B,aAIhCqD,UAAU/D,EAAIU,YAAYsD,QAAQ,MAAO,MACjD,CAyFD,GAAAC,CAAOC,KAAgBtC,GACrB,OAAOuC,QAAQC,OACb,IAAIC,EACF,0FAGL,CAYD,QAAAC,CAASC,GACP,OAAOJ,QAAQC,OACb,IAAIC,EACF,0FAGL,CAYQ,SAAAG,GAKP,MAAM,IAAIH,EACR,yFAEH,CAYD,cAAAI,CAAeC,GACb,MAAM,IAAIL,EACR,yFAEH,CAED,iBAAOM,CACLC,KAEGhD,GAEH,MAAMiD,EAAqB,iBAARD,EAAmBA,EAAMA,EAAIE,QAChD,OAAID,EAAIE,SAASC,EAAchC,MAAc,IAAIgC,EAAcJ,GAC3DC,EAAIE,SAASE,EAAcjC,MAAc,IAAIiC,EAAcL,GAC3DC,EAAIE,SAASG,EAAgBlC,MACxB,IAAIkC,EAAgBN,GACzBC,EAAIE,SAASI,EAAWnC,MAAc,IAAImC,EAAWP,GACrDC,EAAIE,SAASK,EAAYpC,MAAc,IAAIoC,EAAYR,GACvDC,EAAIE,SAASV,EAAiBrB,MACzB,IAAIqB,EAAiBO,GAC1BC,EAAIE,SAASM,EAAerC,MAAc,IAAIqC,EAAeT,GAC7DC,EAAIE,SAASO,EAActC,MAAc,IAAIsC,EAAcV,GAC3DC,EAAIE,SAASQ,EAAmBvC,MAC3B,IAAIuC,EAAmBX,GAC5BC,EAAIE,SAASS,EAAexC,MAAc,IAAIwC,EAAeZ,GAC7DC,EAAIE,SAASU,EAAgBzC,MACxB,IAAIyC,EAAgBb,GACzBC,EAAIE,SAASW,EAAmB1C,MAC3B,IAAI0C,EAAmBd,GACzB,IAAIzB,EAAcyB,EAC1B,ECvYI,MAAMe,EAAe,QCmDtB,MAAOC,UAAyB9E,EAMpC,WAAAlB,CAAYoB,EAAoBE,GAC9BnB,MAAMiB,EAAQ2E,EAAczE,EAC7B,CAEkB,SAAA2E,GACjB,OAAO,IAAIC,EAAM,CACfC,QAAS,GAAG5F,KAAKa,OAAOwC,cAAcrD,KAAKa,OAAOyC,QAErD,CAUQ,aAAMrD,CAAWC,GACxB,OAAOF,KAAK6F,OAAO5F,QAAQC,EAC5B,CAWQ,YAAM4F,CACbrF,EACA6B,EACApB,KAEG6E,GAEH,IACE,MAAMlG,EAAMG,KAAKH,IAAIY,GACrB,OAAOT,KAAK6F,OAAOG,KAAKnG,EAAKqB,EAC9B,CAAC,MAAO+E,GACP,MAAMjG,KAAKwE,WAAWyB,EACvB,CACF,CASQ,UAAMC,CACbzF,EACA6B,KAEGb,GAEH,IACE,MAAM5B,EAAMG,KAAKH,IAAIY,EAAW,CAC9B6B,GAAIA,IAEN,OAAOtC,KAAK6F,OAAO9C,IAAIlD,EACxB,CAAC,MAAOoG,GACP,MAAMjG,KAAKwE,WAAWyB,EACvB,CACF,CAWQ,YAAME,CACb1F,EACA6B,EACApB,KAEG6E,GAEH,IACE,MAAMlG,EAAMG,KAAKH,IAAIY,GACrB,OAAOT,KAAK6F,OAAOO,IAAIvG,EAAKqB,EAC7B,CAAC,MAAO+E,GACP,MAAMjG,KAAKwE,WAAWyB,EACvB,CACF,CAUQ,YAAM,CACbxF,EACA6B,KAEGyD,GAEH,IACE,MAAMlG,EAAMG,KAAKH,IAAIY,EAAW,CAC9B6B,GAAIA,IAEN,OAAOtC,KAAK6F,OAAOQ,OAAOxG,EAC3B,CAAC,MAAOoG,GACP,MAAMjG,KAAKwE,WAAWyB,EACvB,CACF,CAEQ,UAAAzB,CAAgCC,KAAehD,GACtD,OAAOd,EAAY6D,WAAWC,KAAQhD,EACvC,EC1KHgE,EAAiBa,aCSV,MAAMC,EAAU"}
@@ -2,8 +2,6 @@ import { Repository } from "@decaf-ts/core";
2
2
  import { Model } from "@decaf-ts/decorator-validation";
3
3
  import { Constructor } from "@decaf-ts/decoration";
4
4
  import { HttpAdapter } from "./adapter";
5
- import { Context } from "@decaf-ts/db-decorators";
6
- import { HttpFlags } from "./types";
7
5
  /**
8
6
  * @description Repository for REST API interactions
9
7
  * @summary A specialized repository implementation for interacting with REST APIs.
@@ -33,8 +31,8 @@ import { HttpFlags } from "./types";
33
31
  * ```
34
32
  * @see {@link RestService}
35
33
  */
36
- export declare class RestRepository<M extends Model, Q, A extends HttpAdapter<any, any, Q, F, C>, F extends HttpFlags = HttpFlags, C extends Context<F> = Context<F>> extends Repository<M, Q, A> {
34
+ export declare class RestRepository<M extends Model, A extends HttpAdapter<any, any, any, any>, Q = A extends HttpAdapter<any, any, infer Q, any> ? Q : never> extends Repository<M, A> {
37
35
  constructor(adapter: A, clazz?: Constructor<M>);
38
- url(path: string, queryParams?: Record<string, string | number>): string;
39
- request<V>(details: Q): Promise<V>;
36
+ url(path: string | Constructor<M>, queryParams?: Record<string, string | number>): string;
37
+ request<R>(details: Q): Promise<R>;
40
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RestRepository.js","sourceRoot":"","sources":["../src/RestRepository.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAO5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAa,cAMX,SAAQ,iBAAmB;IAC3B,YAAY,OAAU,EAAE,KAAsB;QAC5C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,WAA6C;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,OAAU;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AAlBD,wCAkBC"}
1
+ {"version":3,"file":"RestRepository.js","sourceRoot":"","sources":["../src/RestRepository.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAa,cAIX,SAAQ,iBAAgB;IACxB,YAAY,OAAU,EAAE,KAAsB;QAC5C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,GAAG,CACD,IAA6B,EAC7B,WAA6C;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,OAAU;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AAnBD,wCAmBC"}
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RestService = void 0;
4
- const db_decorators_1 = require("@decaf-ts/db-decorators");
5
4
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
6
- const core_1 = require("@decaf-ts/core");
7
- const logging_1 = require("@decaf-ts/logging");
5
+ const RestRepository_1 = require("./RestRepository.cjs");
8
6
  /**
9
7
  * @description Service class for REST API operations
10
8
  * @summary Provides a comprehensive implementation for interacting with REST APIs.
@@ -53,58 +51,7 @@ const logging_1 = require("@decaf-ts/logging");
53
51
  * Adapter-->>Service: record
54
52
  * Service-->>Client: revert(record)
55
53
  */
56
- class RestService extends logging_1.LoggedClass {
57
- /**
58
- * @description Gets the model class constructor
59
- * @summary Retrieves the model class constructor associated with this service.
60
- * Throws an error if no class definition is found.
61
- * @return {Constructor<M>} The model class constructor
62
- * @throws {InternalError} If no class definition is found
63
- */
64
- get class() {
65
- if (!this._class)
66
- throw new db_decorators_1.InternalError("No class definition found for this repository");
67
- return this._class;
68
- }
69
- get log() {
70
- if (!this.logger)
71
- this.logger = this.adapter["log"].for(this.toString());
72
- return this.logger;
73
- }
74
- /**
75
- * @description Gets the primary key property name
76
- * @summary Retrieves the name of the primary key property for the model.
77
- * If not already determined, it finds the primary key using the model class.
78
- * @return The primary key property name
79
- */
80
- get pk() {
81
- if (!this._pk)
82
- this._pk = decorator_validation_1.Model.pk(this.class);
83
- return this._pk;
84
- }
85
- /**
86
- * @description Gets the HTTP adapter
87
- * @summary Retrieves the HTTP adapter associated with this service.
88
- * Throws an error if no adapter is found.
89
- * @return {A} The HTTP adapter instance
90
- * @throws {InternalError} If no adapter is found
91
- */
92
- get adapter() {
93
- if (!this._adapter)
94
- throw new db_decorators_1.InternalError("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");
95
- return this._adapter;
96
- }
97
- /**
98
- * @description Gets the table name for the model
99
- * @summary Retrieves the table name associated with the model class.
100
- * If not already determined, it gets the table name from the Repository utility.
101
- * @return {string} The table name
102
- */
103
- get tableName() {
104
- if (!this._tableName)
105
- this._tableName = core_1.Repository.table(this.class);
106
- return this._tableName;
107
- }
54
+ class RestService extends RestRepository_1.RestRepository {
108
55
  /**
109
56
  * @description Initializes a new RestService instance
110
57
  * @summary Creates a new service instance with the specified adapter and optional model class.
@@ -113,182 +60,14 @@ class RestService extends logging_1.LoggedClass {
113
60
  * @param {Constructor<M>} [clazz] - Optional constructor for the model class
114
61
  */
115
62
  constructor(adapter, clazz) {
116
- super();
117
- this.observers = [];
118
- this._adapter = adapter;
119
- if (clazz)
120
- this._class = clazz;
121
- }
122
- url(path, queryParams) {
123
- return this.adapter.url(path, queryParams);
124
- }
125
- /**
126
- * @description Creates a new resource
127
- * @summary Creates a new resource in the REST API using the provided model.
128
- * The method prepares the model for the adapter, sends the create request,
129
- * and then converts the response back to a model instance.
130
- * @param {M} model - The model instance to create
131
- * @param {...any[]} args - Additional arguments to pass to the adapter
132
- * @return {Promise<M>} A promise that resolves with the created model instance
133
- */
134
- async create(model, ...args) {
135
- // eslint-disable-next-line prefer-const
136
- let { record, id } = this.adapter.prepare(model, this.pk);
137
- record = await this.adapter.create(this.tableName, id, record, ...args);
138
- return this.adapter.revert(record, this.class, this.pk, id);
139
- }
140
- /**
141
- * @description Retrieves a resource by ID
142
- * @summary Fetches a resource from the REST API using the provided ID.
143
- * The method sends the read request and converts the response to a model instance.
144
- * @param {string|number} id - The identifier of the resource to retrieve
145
- * @param {...any[]} args - Additional arguments to pass to the adapter
146
- * @return {Promise<M>} A promise that resolves with the retrieved model instance
147
- */
148
- async read(id, ...args) {
149
- const m = await this.adapter.read(this.tableName, id, ...args);
150
- return this.adapter.revert(m, this.class, this.pk, id);
151
- }
152
- /**
153
- * @description Updates an existing resource
154
- * @summary Updates an existing resource in the REST API using the provided model.
155
- * The method prepares the model for the adapter, sends the update request,
156
- * and then converts the response back to a model instance.
157
- * @param {M} model - The model instance with updated data
158
- * @param {...any[]} args - Additional arguments to pass to the adapter
159
- * @return {Promise<M>} A promise that resolves with the updated model instance
160
- */
161
- async update(model, ...args) {
162
- // eslint-disable-next-line prefer-const
163
- let { record, id } = this.adapter.prepare(model, this.pk);
164
- record = await this.adapter.update(this.tableName, id, record, ...args);
165
- return this.adapter.revert(record, this.class, this.pk, id);
166
- }
167
- /**
168
- * @description Deletes a resource by ID
169
- * @summary Removes a resource from the REST API using the provided ID.
170
- * The method sends the delete request and converts the response to a model instance.
171
- * @param {string|number} id - The identifier of the resource to delete
172
- * @param {...any[]} args - Additional arguments to pass to the adapter
173
- * @return {Promise<M>} A promise that resolves with the deleted model instance
174
- */
175
- async delete(id, ...args) {
176
- const m = await this.adapter.delete(this.tableName, id, ...args);
177
- return this.adapter.revert(m, this.class, this.pk, id);
178
- }
179
- async request(details) {
180
- return this.adapter.request(details);
181
- }
182
- /**
183
- * @description Creates multiple resources
184
- * @summary Creates multiple resources in the REST API using the provided models.
185
- * The method prepares each model for the adapter, sends a bulk create request,
186
- * and then converts the responses back to model instances.
187
- * @param {M[]} models - The model instances to create
188
- * @param {...any[]} args - Additional arguments to pass to the adapter
189
- * @return {Promise<M[]>} A promise that resolves with an array of created model instances
190
- * @mermaid
191
- * sequenceDiagram
192
- * participant Client
193
- * participant Service as RestService
194
- * participant Adapter as HttpAdapter
195
- * Client->>Service: createAll(models)
196
- * Service->>Adapter: prepare(model, pk) x N
197
- * Service->>Adapter: createAll(table, ids[], records[])
198
- * Adapter-->>Service: records[]
199
- * Service-->>Client: revert(records[])
200
- */
201
- async createAll(models, ...args) {
202
- if (!models.length)
203
- return models;
204
- const prepared = models.map((m) => this.adapter.prepare(m, this.pk));
205
- const ids = prepared.map((p) => p.id);
206
- let records = prepared.map((p) => p.record);
207
- records = await this.adapter.createAll(this.tableName, ids, records, ...args);
208
- return records.map((r, i) => this.adapter.revert(r, this.class, this.pk, ids[i]));
209
- }
210
- /**
211
- * @description Deletes multiple resources by IDs
212
- * @summary Removes multiple resources from the REST API using the provided IDs.
213
- * The method sends a bulk delete request and converts the responses to model instances.
214
- * @param {string[]|number[]} keys - The identifiers of the resources to delete
215
- * @param {...any[]} args - Additional arguments to pass to the adapter
216
- * @return {Promise<M[]>} A promise that resolves with an array of deleted model instances
217
- */
218
- async deleteAll(keys, ...args) {
219
- const results = await this.adapter.deleteAll(this.tableName, keys, ...args);
220
- return results.map((r, i) => this.adapter.revert(r, this.class, this.pk, keys[i]));
221
- }
222
- /**
223
- * @description Retrieves multiple resources by IDs
224
- * @summary Fetches multiple resources from the REST API using the provided IDs.
225
- * The method sends a bulk read request and converts the responses to model instances.
226
- * @param {string[]|number[]} keys - The identifiers of the resources to retrieve
227
- * @param {...any[]} args - Additional arguments to pass to the adapter
228
- * @return {Promise<M[]>} A promise that resolves with an array of retrieved model instances
229
- */
230
- async readAll(keys, ...args) {
231
- const records = await this.adapter.readAll(this.tableName, keys, ...args);
232
- return records.map((r, i) => this.adapter.revert(r, this.class, this.pk, keys[i]));
233
- }
234
- /**
235
- * @description Updates multiple resources
236
- * @summary Updates multiple resources in the REST API using the provided models.
237
- * The method prepares each model for the adapter, sends a bulk update request,
238
- * and then converts the responses back to model instances.
239
- * @param {M[]} models - The model instances with updated data
240
- * @param {...any[]} args - Additional arguments to pass to the adapter
241
- * @return {Promise<M[]>} A promise that resolves with an array of updated model instances
242
- */
243
- async updateAll(models, ...args) {
244
- const records = models.map((m) => this.adapter.prepare(m, this.pk));
245
- const updated = await this.adapter.updateAll(this.tableName, records.map((r) => r.id), records.map((r) => r.record), ...args);
246
- return updated.map((u, i) => this.adapter.revert(u, this.class, this.pk, records[i].id));
247
- }
248
- /**
249
- * @description Registers an observer
250
- * @summary Adds an observer to the list of observers that will be notified of changes.
251
- * Throws an error if the observer is already registered.
252
- * @param {Observer} observer - The observer to register
253
- * @return {void}
254
- * @throws {InternalError} If the observer is already registered
255
- */
256
- observe(observer) {
257
- const index = this.observers.indexOf(observer);
258
- if (index !== -1)
259
- throw new db_decorators_1.InternalError("Observer already registered");
260
- this.observers.push(observer);
261
- }
262
- /**
263
- * @description Unregisters an observer
264
- * @summary Removes an observer from the list of observers.
265
- * Throws an error if the observer is not found.
266
- * @param {Observer} observer - The observer to unregister
267
- * @return {void}
268
- * @throws {InternalError} If the observer is not found
269
- */
270
- unObserve(observer) {
271
- const index = this.observers.indexOf(observer);
272
- if (index === -1)
273
- throw new db_decorators_1.InternalError("Failed to find Observer");
274
- this.observers.splice(index, 1);
275
- }
276
- /**
277
- * @description Notifies all registered observers
278
- * @summary Calls the refresh method on all registered observers to update themselves.
279
- * Any errors during observer refresh are logged as warnings but don't stop the process.
280
- * @param {...any[]} [args] - Optional arguments to pass to the observer refresh method
281
- * @return {Promise<void>} A promise that resolves when all observers have been updated
282
- */
283
- async updateObservers(...args) {
284
- const results = await Promise.allSettled(this.observers.map((o) => o.refresh(...args)));
285
- results.forEach((result, i) => {
286
- if (result.status === "rejected")
287
- console.warn(`Failed to update observable ${this.observers[i]}: ${result.reason}`);
288
- });
63
+ super(adapter, clazz);
64
+ this._overrides = {
65
+ ignoreValidation: true,
66
+ ignoreHandlers: true,
67
+ };
289
68
  }
290
69
  toString() {
291
- return `${this.class.name} rest service`;
70
+ return `${decorator_validation_1.Model.tableName(this.class)} REST service`;
292
71
  }
293
72
  }
294
73
  exports.RestService = RestService;