我是CRUD 库的作者,我想基于配置实现 HTTP 服务。
假设我们有这样的配置:
{
root: {
route: '/orders'
operation: {
read: (id: string) => T
find: () => T[]
}
},
invoice: {
route: '/orders/{id}/invoices'
operation: [ 'update' ]
}
}
应该产生这样的 API:
crudService->read(id: string) : T;
crudService->find() : T[];
crudService->invoice->update(1, {}) : T;
话虽这么说:与当前在CrudService中具有固定(CRUD)方法的实现相比,我想使用 ES5 中的new Proxy()
and it'sget
和apply
陷阱来生成动态方法和嵌套方法。
这里有一个仅 JS 且非 Angular 的示例: https ://medium.com/@alonronin/magic-methods-in-javascript-meet-proxy-65e6305f4d3e
有人在这里创建了用于动态输入的代理模式: https ://dev.to/mattzgg_94/typescript-use-mapped-type-to-implement-a-proxy-4im2
不过,我不知道如何在原版中包装 Angular 服务Proxy()
,因此请您帮助我。