0

我是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'sgetapply陷阱来生成动态方法和嵌套方法。

  1. 这里有一个仅 JS 且非 Angular 的示例: https ://medium.com/@alonronin/magic-methods-in-javascript-meet-proxy-65e6305f4d3e

  2. 有人在这里创建了用于动态输入的代理模式: https ://dev.to/mattzgg_94/typescript-use-mapped-type-to-implement-a-proxy-4im2

不过,我不知道如何在原版中包装 Angular 服务Proxy(),因此请您帮助我。

4

0 回答 0