stoplightio/json

View on GitHub
src/trapAccess.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { ORDER_KEY_ID } from '@stoplight/ordered-object-literal';

export const KEYS = Symbol.for(ORDER_KEY_ID);

const traps = {
  ownKeys(target: object) {
    return KEYS in target ? target[KEYS] : Reflect.ownKeys(target);
  },
};

export const trapAccess = <T extends object = object>(target: T): T => new Proxy<T>(target, traps);