feat: use dom types and set Proxy global

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-02-02 01:56:45 +08:00
parent 84d9eb8881
commit 9b3d76b6dd
5 changed files with 6 additions and 7 deletions

View File

@ -18,13 +18,13 @@ interface RequestConfig {
}
function request(config: RequestConfig) {
// @ts-ignore
let xhr = new XMLHttpRequest();
xhr.open(config.method, config.url, false);
for (const header in config.headers) {
xhr.setRequestHeader(header, config.headers[header]);
}
let future = xhr.send(config.data);
// @ts-ignore
return future.get();
}

View File

@ -1,30 +0,0 @@
let createProxy = eval(`
function(handle){ return new JSAdapter(handle) }
`)
export interface ProxyHandle extends ProxyHandler<object> {
// get: (target: any, name: string) => any
// set: (target: any, name: string, value: any) => boolean
// construct: (target: any, ...args: any[]) => any
// has: (target: any, name: string) => boolean
// ownKeys: (target: any) => string[]
values: (target: any) => any[];
// call: (target: any, name: string, ...args: any[]) => any
// deleteProperty: (target: any, name: string) => boolean
}
export class Proxy {
static newProxy(target: any, handle: Partial<ProxyHandle>): any {
return new Proxy(target, handle)
}
constructor(target: any, handle: Partial<ProxyHandle>) {
return createProxy({
__get__: (name: string) => handle.get ? handle.get(target, name, undefined) : target[name],
__put__: (name: string, value: any) => handle.set ? handle.set(target, name, value, undefined) : target[name] = value,
__call__: (name: string, ...args: any) => handle.apply ? handle.apply(target[name], target, args) : target[name].apply(target, args),
__new__: (...args: any) => handle.construct ? handle.construct(target, args, target) : new target(...args),
__getIds__: () => handle.ownKeys ? handle.ownKeys(target) : Object.keys(target),
__getValues__: () => handle.values ? handle.values(target) : Object.values(target),
__has__: (name: string) => handle.has ? handle.has(target, name) : Object.getOwnPropertyDescriptor(target, name) != undefined,
__delete__: (name: string) => handle.deleteProperty ? handle.deleteProperty(target, name) : delete target[name]
})
}
}

View File

@ -2,7 +2,6 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"baseUrl": "src",
"outDir": "dist",
"declaration": true
"outDir": "dist"
}
}