@ganuz/set
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

@ganuz/set

Source Code Version MIT License Bundle Size TypeScript

Set is package from Ganuz library

Install

$ yarn add @ganuz/set

Or

$ npm install --save @ganuz/set

Use

Module

import {
  default as set
} from '@ganuz/set';

Browser

<script src="https://unpkg.com/@ganuz/set/bundle.umd.min.js"></script>
let {
  set
} = G;

Examples

 set(null, 'foo', 'bar'); // throw TypeError
 set({}, 'foo', 'bar'); // => true
 set({color: 'blue'}, 'color', 'green'); // => true
 set(v => v, Symbol('foo'), 'bar'); // => true
 set({}, 'foo', 'bar', {}); // => true
 set(Object.freeze({}), 'foo', 'bar', {}); // => true
 set(Object.freeze({foo: 'bar'}), 'foo', 'bar'); // => false
 set({}, 'foo', 'bob', {get(){}, set(v){}}); // => false
 set({}, 'foo', 'bar', 69); // => false
 set({get foo(){}}, 'foo', 'bar'); // => false
 set({get foo(){}}, 'foo', 'bar', {}); // => false
 set(Object.preventExtensions({}), 'foo', 'bar'); // => false
 set(Object.preventExtensions({}), 'foo', 'bar', {}); // => false
 set(Object.create(null, {foo: {value: 'bar'}}), 'foo', 'bob'); // => false
 set(Object.create(null, {foo: {value: 'bar'}}), 'foo', 'bob', {}); // => false
 set(Object.create(Object.create(null, {foo: {value: 'bar'}})), 'foo', 'bob'); // => false
 set(Object.freeze({}), 'foo', 'bar', {}); // => true
 set({}, 'foo', 'bob', Object.create(null, {foo: {value: 'bar'}})); // => false
 let object = {
     set name(name){ this._name = name; },
     _name: 'bob'
 };
 let other = {_name: 'alice'};

 set(object, 'name', 'john', other); // => true
 console.log(object._name); // => 'bob'
 console.log(other._name); // => 'john'
 let object = {
     set color(color){ this._color = color; },
     _color: 'blue'
  };
 let other = Object.freeze({_color: 'red'});

 set(object, 'color', 'green', other); // => true (in 'use strict' mode it will throw TypeError)
 console.log(object._color); // => 'blue'
 console.log(other._color); // => 'red'
 let object = {num: 69}
 let anther = {
     get num(){
         return this._num;
     },
     set num(num){
         this._num = num;
     },
     _num: -1
 }

 set(object, 'num', 77, anther); // => false
 console.log(object.num); // => 69
 console.log(other.num); // => -1

@ganuz/set/polyfill

Module

  import '@ganuz/set/polyfill';

Browser

<script src="https://unpkg.com/@ganuz/set/polyfill/bundle.umd.min.js"></script>

License

Copyright © Yisrael Eliev, Licensed under the MIT license.

Package Sidebar

Install

npm i @ganuz/set

Weekly Downloads

1

Version

0.1.1

License

MIT

Unpacked Size

284 kB

Total Files

27

Last publish

Collaborators

  • yisraelx