samvv / js-proxy-deep

A JavaScript Proxy object that automatically nests itself

Home Page:https://npmjs.com/proxy-deep

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TypeScript Import

RaulGF92 opened this issue · comments

What i expect:

import { DeepProxy, DeepProxyHandler, TrapThisArgument } from 'proxy-deep'

That's response me this:

Module

'"../../../../../../../../Users/rgarciaf/Documents/MyProjects/workspaceVue/project/node_modules/proxy-deep"'
has no exported member 'TrapThisArgument'.

The Module:

declare namespace DeepProxy {

  export interface DeepProxyHandler<T extends object> {
    getPrototypeOf? (this: TrapThisArgument<T>, target: T): object | null;
    setPrototypeOf? (this: TrapThisArgument<T>, target: T, v: any): boolean;
    isExtensible? (this: TrapThisArgument<T>, target: T): boolean;
    preventExtensions? (this: TrapThisArgument<T>, target: T): boolean;
    getOwnPropertyDescriptor? (this: TrapThisArgument<T>, target: T, p: PropertyKey): PropertyDescriptor | undefined;
    has? (this: TrapThisArgument<T>, target: T, p: PropertyKey): boolean;
    get? (this: TrapThisArgument<T>, target: T, p: PropertyKey, receiver: any): any;
    set? (this: TrapThisArgument<T>, target: T, p: PropertyKey, value: any, receiver: any): boolean;
    deleteProperty? (this: TrapThisArgument<T>, target: T, p: PropertyKey): boolean;
    defineProperty? (this: TrapThisArgument<T>, target: T, p: PropertyKey, attributes: PropertyDescriptor): boolean;
    enumerate? (this: TrapThisArgument<T>, target: T): PropertyKey[];
    ownKeys? (this: TrapThisArgument<T>, target: T): PropertyKey[];
    apply? (this: TrapThisArgument<T>, target: T, thisArg: any, argArray?: any): any;
    construct? (this: TrapThisArgument<T>, target: T, argArray: any, newTarget?: any): object;
  }

  export interface TrapThisArgument<T extends object> {
    nest(value?: any): object;
    path: string[];
    rootTarget: T; 
  }

  export interface DeepProxyConstructor {
    revocable<T extends object>(target: T, handler: DeepProxyHandler<T>): { proxy: T; revoke: () => void; };
    new <T extends object>(target: T, handler: DeepProxyHandler<T>): T;
  }

}

declare var pd: DeepProxy.DeepProxyConstructor;
export = pd;

Ok, interesting, thanks for filing this issue! I'll take a look at it this evening.

Over due, but should be fixed in the latest publication of the package.