known icon indicating copy to clipboard operation
known copied to clipboard

Allow only access to known object properties using ES2015 Proxy

known

Allow only access to known object properties using ES2015 Proxy

Install

$ npm install known

Usage

import known from 'known';

const object = {foo: true};

console.log(object.bar);
//=> undefined

const object2 = known(object);

// Throws a TypeError when you try to access an unknown property
console.log(object2.bar);
//=> [TypeError] Unknown property: bar

Note that known transparently wraps the given object, meaning prototype properties will also exist. So known(someObject).__proto__ does not throw. If you want non-own properties to throw, ensure your object is created with Object.create(null).

Related

  • on-change - Watch an object or array for changes (Uses Proxy too)
  • negative-array - Negative array index support (Uses Proxy too)