Launch Week Day 2: Introducing Reports: An Extensible Reporting Framework for Socket Data.Learn More
Socket
Book a DemoSign in
Socket

immutable-object-methods

Package Overview
Dependencies
Maintainers
3
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

immutable-object-methods - npm Package Compare versions

Comparing version
3.0.1
to
3.0.2
+4
-8
dist/map.d.ts

@@ -1,8 +0,4 @@

declare class Wrapper {
static map<T extends ReadonlyArray<any>, K extends number, U>(input: T, fn: (obj: Readonly<T[K]>, key: number) => U): Array<U>;
static map<T extends Readonly<any>, K extends keyof T, U>(input: T, fn: (obj: Readonly<T[K]>, key: string) => U): {
[key in K]: U;
};
}
export declare const map: typeof Wrapper.map;
export {};
export declare function map<T extends ReadonlyArray<any>, K extends number, U>(input: T, fn: (obj: Readonly<T[K]>, key: number) => U): Array<U>;
export declare function map<T extends Readonly<any>, K extends keyof T, U>(input: T, fn: (obj: Readonly<T[K]>, key: string) => U): {
[key in K]: U;
};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var set_1 = require("./set");
var Wrapper = /** @class */ (function () {
function Wrapper() {
function map(input, fn) {
var result = input;
for (var key in input) {
result = set_1.set(result, key, fn(input[key], key));
}
Wrapper.map = function (input, fn) {
var result = input;
for (var key in input) {
result = set_1.set(result, key, fn(input[key], key));
}
return result;
};
return Wrapper;
}());
exports.map = Wrapper.map;
return result;
}
exports.map = map;
//# sourceMappingURL=map.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"map.js","sourceRoot":"","sources":["../lib/map.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAE5B;IAAA;IAmBA,CAAC;IATQ,WAAG,GAAV,UAAW,KAAU,EAAE,EAAO;QAC5B,IAAI,MAAM,GAAQ,KAAK,CAAC;QAExB,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;YACvB,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;SAChD;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,cAAC;AAAD,CAAC,AAnBD,IAmBC;AAEY,QAAA,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC"}
{"version":3,"file":"map.js","sourceRoot":"","sources":["../lib/map.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAY5B,SAAgB,GAAG,CAAC,KAAU,EAAE,EAAO;IACrC,IAAI,MAAM,GAAQ,KAAK,CAAC;IAExB,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;QACvB,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAChD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,kBAQC"}

@@ -1,1 +0,2 @@

export declare const mergeDeep: (input: any, changes: any) => any;
import { Merge } from 'type-fest';
export declare function mergeDeep<InputType, ChangesType>(input: InputType, changes: ChangesType): Merge<InputType, ChangesType>;

@@ -7,3 +7,3 @@ "use strict";

};
exports.mergeDeep = function (input, changes) {
function mergeDeep(input, changes) {
var result = input;

@@ -13,3 +13,3 @@ for (var key in changes) {

var newChild = isObject(childChange)
? exports.mergeDeep(input[key] || {}, childChange)
? mergeDeep(input[key] || {}, childChange)
: childChange;

@@ -19,3 +19,5 @@ result = set_1.set(result, key, newChild);

return result;
};
}
exports.mergeDeep = mergeDeep;
;
//# sourceMappingURL=merge-deep.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"merge-deep.js","sourceRoot":"","sources":["../lib/merge-deep.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAE5B,IAAM,QAAQ,GAAG,UAAC,GAAY;IAC5B,OAAA,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAA9D,CAA8D,CAAC;AAEpD,QAAA,SAAS,GAAG,UAAC,KAAU,EAAE,OAAY;IAChD,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;QACzB,IAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;YACpC,CAAC,CAAC,iBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC;YAC1C,CAAC,CAAC,WAAW,CAAC;QAEhB,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;KACrC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
{"version":3,"file":"merge-deep.js","sourceRoot":"","sources":["../lib/merge-deep.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAG5B,IAAM,QAAQ,GAAG,UAAC,GAAY;IAC5B,OAAA,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAA9D,CAA8D,CAAC;AAQjE,SAAgB,SAAS,CAAC,KAAU,EAAE,OAAY;IAChD,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;QACzB,IAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;YACpC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC;YAC1C,CAAC,CAAC,WAAW,CAAC;QAEhB,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;KACrC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAdD,8BAcC;AAAA,CAAC"}
import { Merge } from 'type-fest';
declare type ArgType = Record<keyof any, any>;
declare type _Merge<T, U> = T extends Merge<T, U> ? T : Merge<T, U>;
declare class Wrapper {
static merge<T>(input: Readonly<T>): T;
static merge<T, U extends ArgType>(input: Readonly<T>, arg: Readonly<U>): _Merge<T, U>;
static merge<T, U extends ArgType, V extends ArgType>(input: Readonly<T>, args1: Readonly<U>, args2: Readonly<V>): _Merge<_Merge<T, U>, V>;
static merge<T, U extends ArgType, V extends ArgType, W extends ArgType>(input: Readonly<T>, args1: Readonly<U>, args2: Readonly<V>, args3: Readonly<W>): _Merge<_Merge<_Merge<T, U>, V>, W>;
static merge(input: any, ...args: any[]): any;
}
export declare const merge: typeof Wrapper.merge;
export declare function merge<T>(input: Readonly<T>): T;
export declare function merge<T, U extends ArgType>(input: Readonly<T>, arg: Readonly<U>): _Merge<T, U>;
export declare function merge<T, U extends ArgType, V extends ArgType>(input: Readonly<T>, args1: Readonly<U>, args2: Readonly<V>): _Merge<_Merge<T, U>, V>;
export declare function merge<T, U extends ArgType, V extends ArgType, W extends ArgType>(input: Readonly<T>, args1: Readonly<U>, args2: Readonly<V>, args3: Readonly<W>): _Merge<_Merge<_Merge<T, U>, V>, W>;
export declare function merge(input: any, ...args: any[]): any;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var set_1 = require("./set");
var Wrapper = /** @class */ (function () {
function Wrapper() {
function merge(input) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
Wrapper.merge = function (input) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
var changes = {};
args.forEach(function (obj) {
for (var key in obj) {
changes[key] = obj[key];
}
var changes = {};
args.forEach(function (obj) {
for (var key in obj) {
changes[key] = obj[key];
}
});
var result = input;
for (var key in changes) {
result = set_1.set(result, key, changes[key]);
}
return result;
};
return Wrapper;
}());
exports.merge = Wrapper.merge;
});
var result = input;
for (var key in changes) {
result = set_1.set(result, key, changes[key]);
}
return result;
}
exports.merge = merge;
//# sourceMappingURL=merge.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"merge.js","sourceRoot":"","sources":["../lib/merge.ts"],"names":[],"mappings":";;AAEA,6BAA4B;AAM5B;IAAA;IAkCA,CAAC;IAhBQ,aAAK,GAAZ,UAAa,KAAU;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACrC,IAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;YACf,KAAK,IAAM,GAAG,IAAI,GAAG,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAQ,KAAK,CAAC;QAExB,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;YACzB,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SACzC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,cAAC;AAAD,CAAC,AAlCD,IAkCC;AAEc,QAAA,KAAK,GAAK,OAAO,OAAC"}
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../lib/merge.ts"],"names":[],"mappings":";;AAEA,6BAA4B;AA4B5B,SAAgB,KAAK,CAAC,KAAU;IAAE,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,6BAAc;;IAC9C,IAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;QACf,KAAK,IAAM,GAAG,IAAI,GAAG,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;SACzB;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,GAAQ,KAAK,CAAC;IAExB,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KACzC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAfD,sBAeC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"set.js","sourceRoot":"","sources":["../lib/set.ts"],"names":[],"mappings":";;AAEa,QAAA,GAAG,GAAG,UAKjB,KAAkB,EAClB,GAAM,EACN,KAAQ;IAER,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAED,IAAM,MAAM,GAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;QACpC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAEpB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
{"version":3,"file":"set.js","sourceRoot":"","sources":["../lib/set.ts"],"names":[],"mappings":";;AAEa,QAAA,GAAG,GAAG,UAKjB,KAAkB,EAClB,GAAM,EACN,KAAQ;IAER,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAED,IAAM,MAAM,GAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;QAClC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAEpB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
import { set } from './set';
class Wrapper {
static map<T extends ReadonlyArray<any>, K extends number, U>(
input: T,
fn: (obj: Readonly<T[K]>, key: number) => U,
): Array<U>;
static map<T extends Readonly<any>, K extends keyof T, U>(
input: T,
fn: (obj: Readonly<T[K]>, key: string) => U,
): { [key in K]: U };
static map(input: any, fn: any) {
let result: any = input;
for (const key in input) {
result = set(result, key, fn(input[key], key));
}
return result;
export function map<T extends ReadonlyArray<any>, K extends number, U>(
input: T,
fn: (obj: Readonly<T[K]>, key: number) => U,
): Array<U>;
export function map<T extends Readonly<any>, K extends keyof T, U>(
input: T,
fn: (obj: Readonly<T[K]>, key: string) => U,
): { [key in K]: U };
export function map(input: any, fn: any) {
let result: any = input;
for (const key in input) {
result = set(result, key, fn(input[key], key));
}
return result;
}
export const map = Wrapper.map;
import { set } from './set';
import { Merge } from 'type-fest';

@@ -6,3 +7,9 @@ const isObject = (obj: unknown) =>

export const mergeDeep = (input: any, changes: any): any => {
export function mergeDeep <InputType, ChangesType>(
input: InputType,
changes: ChangesType,
): Merge<InputType, ChangesType>
export function mergeDeep(input: any, changes: any) {
let result = input;

@@ -9,0 +16,0 @@

@@ -9,38 +9,39 @@ import { Merge } from 'type-fest';

class Wrapper {
static merge<T>(input: Readonly<T>): T;
static merge<T, U extends ArgType>(
input: Readonly<T>,
arg: Readonly<U>,
): _Merge<T, U>;
static merge<T, U extends ArgType, V extends ArgType>(
input: Readonly<T>,
args1: Readonly<U>,
args2: Readonly<V>,
): _Merge<_Merge<T, U>, V>;
static merge<T, U extends ArgType, V extends ArgType, W extends ArgType>(
input: Readonly<T>,
args1: Readonly<U>,
args2: Readonly<V>,
args3: Readonly<W>,
): _Merge<_Merge<_Merge<T, U>, V>, W>;
static merge(input: any, ...args: any[]): any;
static merge(input: any, ...args: any[]) {
const changes: any = {};
args.forEach((obj) => {
for (const key in obj) {
changes[key] = obj[key];
}
});
export function merge<T>(input: Readonly<T>): T;
export function merge<T, U extends ArgType>(
input: Readonly<T>,
arg: Readonly<U>,
): _Merge<T, U>;
export function merge<T, U extends ArgType, V extends ArgType>(
input: Readonly<T>,
args1: Readonly<U>,
args2: Readonly<V>,
): _Merge<_Merge<T, U>, V>;
export function merge<
T,
U extends ArgType,
V extends ArgType,
W extends ArgType
>(
input: Readonly<T>,
args1: Readonly<U>,
args2: Readonly<V>,
args3: Readonly<W>,
): _Merge<_Merge<_Merge<T, U>, V>, W>;
export function merge(input: any, ...args: any[]): any;
export function merge(input: any, ...args: any[]) {
const changes: any = {};
args.forEach((obj) => {
for (const key in obj) {
changes[key] = obj[key];
}
});
let result: any = input;
let result: any = input;
for (const key in changes) {
result = set(result, key, changes[key]);
}
for (const key in changes) {
result = set(result, key, changes[key]);
}
return result;
}
return result;
}
export const { merge } = Wrapper;

@@ -18,3 +18,3 @@ import { Merge } from 'type-fest';

Object.keys(input).forEach((inputKey) => {
Object.keys(input).forEach((inputKey) => {
result[inputKey] = inputKey === key ? value : input[inputKey];

@@ -21,0 +21,0 @@ });

{
"name": "immutable-object-methods",
"version": "3.0.1",
"version": "3.0.2",
"description": "Update normal plain javascript object, immutable style. Simlar to how immutable.js, seamless-immutable etc does it but a lot smaller and simpler.",

@@ -16,3 +16,3 @@ "main": "dist/index.js",

},
"author": "mic.com",
"author": "pizza-skull",
"license": "MIT",

@@ -24,12 +24,11 @@ "bugs": {

"devDependencies": {
"ava": "^1.4.1",
"ava": "^3.7.1",
"package-json-to-readme": "^2.1.1",
"prettier": "^1.17.0",
"prettier": "^2.0.4",
"ts-node": "^8.1.0",
"type-fest": "^0.4.1",
"typescript": "^3.4.5"
"type-fest": "^0.13.1",
"typescript": "^3.8.3"
},
"dependencies": {},
"ava": {
"compileEnhancements": false,
"extensions": [

@@ -36,0 +35,0 @@ "ts"

@@ -105,5 +105,5 @@ import test from 'ava';

test('merge w array', (t) => {
const input = [0,,,4];
const input = [0, , , 4];
const actual = merge(input, [1, 2, 3]);
const expected = [1, 2, 3,4];
const expected = [1, 2, 3, 4];
t.deepEqual(actual, expected);

@@ -251,2 +251,3 @@ t.true(Array.isArray(actual));

const actual = mergeDeep(input, changes);
const expected = {

@@ -365,6 +366,6 @@ a: {

test('map array', (t) => {
const input = [1,2,3,4]
const actual = map(input, num => num % 2);
const expected = [1,0,1,0];
t.deepEqual(actual, expected)
})
const input = [1, 2, 3, 4];
const actual = map(input, (num) => num % 2);
const expected = [1, 0, 1, 0];
t.deepEqual(actual, expected);
});