JSPM

object-assign-shim

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 64
  • Score
    100M100P100Q76065F
  • License MIT

ES6 spec-compliant Object.assign shim. Shims Object constructor automatically.

Package Exports

  • object-assign-shim

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (object-assign-shim) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

#Object.assign shim

An Object.assign shim for ES5-compliant environments (browsers/node.js/io.js). Is applied only when needed with a few exceptions for non-compliant implementations.

Takes a minimum of 2 arguments: target and source. Takes a variable sized list of source arguments - at least 1, as many as you want. Throws a TypeError if the target argument is null or undefined.

Most common usage:

In node/io.js:

require('object-assign-shim');

In a browser:

<script src="object-assign-shim/index.js"></script>

Example

// Multiple sources!
var target = { a: true };
var source1 = { b: true };
var source2 = { c: true };
var sourceN = { n: true };

var expected = {
    a: true,
    b: true,
    c: true,
    n: true
};

require('object-assign-shim');
var assert = require('assert');

Object.assign(target, source1, source2, sourceN);
assert.deepEqual(target, expected); // AWESOME!
require('object-assign-shim');
var assert = require('assert');
var target = {
    a: true,
    b: true,
    c: true
};
var source1 = {
    c: false,
    d: false
};
var sourceN = {
    e: false
};

var assigned = Object.assign(target, source1, sourceN);
assert.equal(target, assigned); // returns the target object
assert.deepEqual(assigned, {
    a: true,
    b: true,
    c: false,
    d: false,
    e: false
});
var assert = require('assert');
/* when Object.assign is not present */
delete Object.assign;
require('object-assign-shim');
assert.equal(typeof Object.assign, "function");

var target = {
    a: true,
    b: true,
    c: true
};
var source = {
    c: false,
    d: false,
    e: false
};

var assigned = assign(target, source);
assert.deepEqual(Object.assign(target, source), assign(target, source));
var assert = require('assert');
/* when Object.assign is present */
assert.equal(typeof Object.assign, 'function');
var builtinAssign = Object.assign;
require('object-assign-shim');
assert.equal(builtinAssign, Object.assign);

Tests

Simply clone the repo, npm install, and run npm test