0.1.1 • Published 6 years ago

@ganuz/clone v0.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

@ganuz/clone

Source Code Version MIT License Bundle Size TypeScript

Clone is package from Ganuz library

Install

$ yarn add @ganuz/clone

Or

$ npm install --save @ganuz/clone

Use

Module

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

Browser

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

Examples

 let objectDescriptors = {
    numbers: {value: [1, 3, 5], enumerable: true},
    [Symbol.toStringTag]: {get(){ return 'Some'; } , configurable: true},
 };
 let object = Object.create(null, descriptors);
 let cloneObject = clone(object);
 let cloneDescriptors = Object.getOwnPropertyDescriptors(cloneObject);

 object === cloneObject; // => false
 Object.prototype.isPrototypeOf.call(object, cloneObject); // => false
 Object.getPrototypeOf(cloneObject); // => null
 object.numbers ==== cloneObject.numbers; // => true
 objectDescriptors[Symbol.toStringTag].get === cloneDescriptors[Symbol.toStringTag].get; // => true
 isDeepEqual(objectDescriptors, cloneDescriptors); // => true
 class Some{
     data = {foo: 'bar'};
     method(){}
 }

 let some = new Some();
 let cloneSome = clone(some);

 some === cloneSome; // => false
 getPrototypeOf(cloneSome) === Some.prototype; // => true
 cloneSome.constructor === Some; // => true
 cloneSome instanceof Some; // => true
 some.data === cloneSome.data; // => true
 Object.getOwnPropertyNames(cloneSome); // => ['data'];

License

Copyright © Yisrael Eliev, Licensed under the MIT license.