type-plus 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/object/filterKey.d.ts +2 -2
- package/cjs/object/filterKey.d.ts.map +1 -1
- package/cjs/object/filterKey.js +3 -1
- package/cjs/object/filterKey.js.map +1 -1
- package/cjs/object/filterKey.spec.js +5 -0
- package/cjs/object/filterKey.spec.js.map +1 -1
- package/cjs/object/findKey.d.ts +1 -1
- package/cjs/object/findKey.d.ts.map +1 -1
- package/cjs/object/findKey.js +3 -1
- package/cjs/object/findKey.js.map +1 -1
- package/cjs/object/findKey.spec.js +5 -0
- package/cjs/object/findKey.spec.js.map +1 -1
- package/cjs/object/mapKey.d.ts +1 -1
- package/cjs/object/mapKey.d.ts.map +1 -1
- package/cjs/object/mapKey.js +3 -1
- package/cjs/object/mapKey.js.map +1 -1
- package/cjs/object/mapKey.spec.js +5 -0
- package/cjs/object/mapKey.spec.js.map +1 -1
- package/cjs/object/reduceKey.d.ts +1 -1
- package/cjs/object/reduceKey.d.ts.map +1 -1
- package/cjs/object/reduceKey.js +1 -1
- package/cjs/object/reduceKey.js.map +1 -1
- package/cjs/object/reduceKey.spec.js +5 -0
- package/cjs/object/reduceKey.spec.js.map +1 -1
- package/cjs/object/someKey.d.ts +1 -1
- package/cjs/object/someKey.d.ts.map +1 -1
- package/cjs/object/someKey.js +3 -1
- package/cjs/object/someKey.js.map +1 -1
- package/cjs/object/someKey.spec.js +10 -0
- package/cjs/object/someKey.spec.js.map +1 -1
- package/cjs/utils/inspect.d.ts +1 -1
- package/cjs/utils/inspect.d.ts.map +1 -1
- package/cjs/utils/inspect.js.map +1 -1
- package/esm/object/filterKey.d.ts +2 -2
- package/esm/object/filterKey.d.ts.map +1 -1
- package/esm/object/filterKey.js +3 -1
- package/esm/object/filterKey.js.map +1 -1
- package/esm/object/filterKey.spec.js +5 -0
- package/esm/object/filterKey.spec.js.map +1 -1
- package/esm/object/findKey.d.ts +1 -1
- package/esm/object/findKey.d.ts.map +1 -1
- package/esm/object/findKey.js +3 -1
- package/esm/object/findKey.js.map +1 -1
- package/esm/object/findKey.spec.js +5 -0
- package/esm/object/findKey.spec.js.map +1 -1
- package/esm/object/mapKey.d.ts +1 -1
- package/esm/object/mapKey.d.ts.map +1 -1
- package/esm/object/mapKey.js +3 -1
- package/esm/object/mapKey.js.map +1 -1
- package/esm/object/mapKey.spec.js +5 -0
- package/esm/object/mapKey.spec.js.map +1 -1
- package/esm/object/reduceKey.d.ts +1 -1
- package/esm/object/reduceKey.d.ts.map +1 -1
- package/esm/object/reduceKey.js +1 -1
- package/esm/object/reduceKey.js.map +1 -1
- package/esm/object/reduceKey.spec.js +6 -1
- package/esm/object/reduceKey.spec.js.map +1 -1
- package/esm/object/someKey.d.ts +1 -1
- package/esm/object/someKey.d.ts.map +1 -1
- package/esm/object/someKey.js +3 -1
- package/esm/object/someKey.js.map +1 -1
- package/esm/object/someKey.spec.js +8 -1
- package/esm/object/someKey.spec.js.map +1 -1
- package/esm/utils/inspect.d.ts +1 -1
- package/esm/utils/inspect.d.ts.map +1 -1
- package/esm/utils/inspect.js.map +1 -1
- package/package.json +2 -2
- package/ts/object/filterKey.ts +5 -3
- package/ts/object/findKey.ts +4 -2
- package/ts/object/mapKey.ts +4 -2
- package/ts/object/reduceKey.ts +2 -2
- package/ts/object/someKey.ts +4 -2
- package/ts/utils/inspect.ts +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function filterKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
1
|
+
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
+
export declare function filterKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => boolean, thisArg?: T): Array<keyof S>;
|
|
3
3
|
//# sourceMappingURL=filterKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.d.ts","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"filterKey.d.ts","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EAC7F,OAAO,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAI7B"}
|
package/cjs/object/filterKey.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.filterKey = void 0;
|
|
4
4
|
function filterKey(subject, predicate, thisArg) {
|
|
5
|
-
return Object.keys(subject).filter(
|
|
5
|
+
return Object.keys(subject).filter(function (k, i, a) {
|
|
6
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
7
|
+
}, thisArg);
|
|
6
8
|
}
|
|
7
9
|
exports.filterKey = filterKey;
|
|
8
10
|
//# sourceMappingURL=filterKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.js","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,SAAS,CACvB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"filterKey.js","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,SAAS,CACvB,OAAU,EACV,SAA6F,EAC7F,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAPD,8BAOC"}
|
|
@@ -10,4 +10,9 @@ test("return type is 'keyof subject'", function () {
|
|
|
10
10
|
var actual = (0, index_js_1.filterKey)(subject, function (key) { return subject[key] > 1; });
|
|
11
11
|
assert_1.default.deepStrictEqual(actual, ['b', 'c']);
|
|
12
12
|
});
|
|
13
|
+
it('includes subject in callback', function () {
|
|
14
|
+
var subject = { a: 1, b: 2, c: 3 };
|
|
15
|
+
var actual = (0, index_js_1.filterKey)(subject, function (key, i, a, s) { return s[key] > 1; });
|
|
16
|
+
assert_1.default.deepStrictEqual(actual, ['b', 'c']);
|
|
17
|
+
});
|
|
13
18
|
//# sourceMappingURL=filterKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.spec.js","sourceRoot":"","sources":["../../ts/object/filterKey.spec.ts"],"names":[],"mappings":";;;;;AAAA,kDAAsB;AACtB,wCAAuC;AAEvC,IAAI,CAAC,gCAAgC,EAAE;IACrC,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,oBAAS,EAAC,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAA;IAC1D,gBAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"filterKey.spec.js","sourceRoot":"","sources":["../../ts/object/filterKey.spec.ts"],"names":[],"mappings":";;;;;AAAA,kDAAsB;AACtB,wCAAuC;AAEvC,IAAI,CAAC,gCAAgC,EAAE;IACrC,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,oBAAS,EAAC,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAA;IAC1D,gBAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE;IACjC,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,oBAAS,EAAC,OAAO,EAAE,UAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAV,CAAU,CAAC,CAAA;IAC/D,gBAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA"}
|
package/cjs/object/findKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function findKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
2
|
+
export declare function findKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => boolean, thisArg?: T): keyof S | undefined;
|
|
3
3
|
//# sourceMappingURL=findKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.d.ts","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"findKey.d.ts","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EAC7F,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,CAIlC"}
|
package/cjs/object/findKey.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findKey = void 0;
|
|
4
4
|
function findKey(subject, predicate, thisArg) {
|
|
5
|
-
return Object.keys(subject).find(
|
|
5
|
+
return Object.keys(subject).find(function (k, i, a) {
|
|
6
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
7
|
+
}, thisArg);
|
|
6
8
|
}
|
|
7
9
|
exports.findKey = findKey;
|
|
8
10
|
//# sourceMappingURL=findKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.js","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,OAAO,CACrB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"findKey.js","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,OAAO,CACrB,OAAU,EACV,SAA6F,EAC7F,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAPD,0BAOC"}
|
|
@@ -10,4 +10,9 @@ test('predicate key can be used as indexer of the subject', function () {
|
|
|
10
10
|
var actual = (0, index_js_1.findKey)(subject, function (key) { return subject[key] === 2; });
|
|
11
11
|
assert_1.default.strictEqual(actual, 'b');
|
|
12
12
|
});
|
|
13
|
+
it('includes subject in callback', function () {
|
|
14
|
+
var subject = { a: 1, b: 2, c: 3 };
|
|
15
|
+
var actual = (0, index_js_1.findKey)(subject, function (key, i, a, s) { return s[key] === 2; });
|
|
16
|
+
assert_1.default.strictEqual(actual, 'b');
|
|
17
|
+
});
|
|
13
18
|
//# sourceMappingURL=findKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.spec.js","sourceRoot":"","sources":["../../ts/object/findKey.spec.ts"],"names":[],"mappings":";;;;;AAAA,kDAAsB;AACtB,wCAAqC;AAErC,IAAI,CAAC,qDAAqD,EAAE;IAC1D,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAlB,CAAkB,CAAC,CAAA;IAC1D,gBAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"findKey.spec.js","sourceRoot":"","sources":["../../ts/object/findKey.spec.ts"],"names":[],"mappings":";;;;;AAAA,kDAAsB;AACtB,wCAAqC;AAErC,IAAI,CAAC,qDAAqD,EAAE;IAC1D,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAlB,CAAkB,CAAC,CAAA;IAC1D,gBAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE;IACjC,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,OAAO,EAAE,UAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAZ,CAAY,CAAC,CAAA;IAC/D,gBAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA"}
|
package/cjs/object/mapKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function mapKey<R, S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
2
|
+
export declare function mapKey<R, S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => R, thisArg?: T): R[];
|
|
3
3
|
//# sourceMappingURL=mapKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.d.ts","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"mapKey.d.ts","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EACvF,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAIlB"}
|
package/cjs/object/mapKey.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mapKey = void 0;
|
|
4
4
|
function mapKey(subject, predicate, thisArg) {
|
|
5
|
-
return Object.keys(subject).map(
|
|
5
|
+
return Object.keys(subject).map(function (k, i, a) {
|
|
6
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
7
|
+
}, thisArg);
|
|
6
8
|
}
|
|
7
9
|
exports.mapKey = mapKey;
|
|
8
10
|
//# sourceMappingURL=mapKey.js.map
|
package/cjs/object/mapKey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.js","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,MAAM,CACpB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"mapKey.js","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,MAAM,CACpB,OAAU,EACV,SAAuF,EACvF,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAPD,wBAOC"}
|
|
@@ -7,4 +7,9 @@ test('predicate key can be used as indexer of the subject', function () {
|
|
|
7
7
|
var actual = (0, index_js_1.mapKey)(subject, function (key) { return subject[key] + 1; });
|
|
8
8
|
assertron_1.a.satisfies(actual, [2, 3, 4]);
|
|
9
9
|
});
|
|
10
|
+
it('includes subject in callback', function () {
|
|
11
|
+
var subject = { a: 1, b: 2, c: 3 };
|
|
12
|
+
var actual = (0, index_js_1.mapKey)(subject, function (key, i, a, s) { return s[key] + 1; });
|
|
13
|
+
assertron_1.a.satisfies(actual, [2, 3, 4]);
|
|
14
|
+
});
|
|
10
15
|
//# sourceMappingURL=mapKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.spec.js","sourceRoot":"","sources":["../../ts/object/mapKey.spec.ts"],"names":[],"mappings":";;AAAA,uCAA6B;AAC7B,wCAAoC;AAEpC,IAAI,CAAC,qDAAqD,EAAE;IAC1D,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,iBAAM,EAAC,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAA;IACvD,aAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"mapKey.spec.js","sourceRoot":"","sources":["../../ts/object/mapKey.spec.ts"],"names":[],"mappings":";;AAAA,uCAA6B;AAC7B,wCAAoC;AAEpC,IAAI,CAAC,qDAAqD,EAAE;IAC1D,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,iBAAM,EAAC,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAA;IACvD,aAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE;IACjC,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,iBAAM,EAAC,OAAO,EAAE,UAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAV,CAAU,CAAC,CAAA;IAC5D,aAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function reduceByKey<S extends Record<KeyTypes, any>, T>(subject: S, callbackfn: (previousValue: T, key: keyof S, currentIndex: number, array: string[]) => T, initialValue: T): T;
|
|
2
|
+
export declare function reduceByKey<S extends Record<KeyTypes, any>, T>(subject: S, callbackfn: (previousValue: T, key: keyof S, currentIndex: number, array: string[], subject: S) => T, initialValue: T): T;
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated renamed to reduceByKey
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.d.ts","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAC5D,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"reduceKey.d.ts","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAC5D,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EACpG,YAAY,EAAE,CAAC,GAAG,CAAC,CAEpB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,oBAAc,CAAA"}
|
package/cjs/object/reduceKey.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.reduceKey = exports.reduceByKey = void 0;
|
|
4
4
|
function reduceByKey(subject, callbackfn, initialValue) {
|
|
5
|
-
return Object.keys(subject).reduce(callbackfn, initialValue);
|
|
5
|
+
return Object.keys(subject).reduce(function (p, k, i, a) { return callbackfn(p, k, i, a, subject); }, initialValue);
|
|
6
6
|
}
|
|
7
7
|
exports.reduceByKey = reduceByKey;
|
|
8
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.js","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,WAAW,CACzB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"reduceKey.js","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,WAAW,CACzB,OAAU,EACV,UAAoG,EACpG,YAAe;IACf,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAA/B,CAA+B,EAAE,YAAY,CAAC,CAAA;AACnG,CAAC;AALD,kCAKC;AAED;;GAEG;AACU,QAAA,SAAS,GAAG,WAAW,CAAA"}
|
|
@@ -19,4 +19,9 @@ test('key type is string if subject type is plain object', function () {
|
|
|
19
19
|
var actual = (0, index_js_1.reduceKey)(subject, function (p, k) { return p += subject[k]; }, 'a');
|
|
20
20
|
assert_1.default.strictEqual(actual, 'a1');
|
|
21
21
|
});
|
|
22
|
+
it('includes subject in callback', function () {
|
|
23
|
+
var subject = { a: 1, b: 2, c: 3 };
|
|
24
|
+
var actual = (0, index_js_1.reduceByKey)(subject, function (p, k, i, a, s) { return p += s[k]; }, 'a');
|
|
25
|
+
assert_1.default.strictEqual(actual, 'a123');
|
|
26
|
+
});
|
|
22
27
|
//# sourceMappingURL=reduceKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.spec.js","sourceRoot":"","sources":["../../ts/object/reduceKey.spec.ts"],"names":[],"mappings":";;;;;AAAA,kDAAsB;AACtB,
|
|
1
|
+
{"version":3,"file":"reduceKey.spec.js","sourceRoot":"","sources":["../../ts/object/reduceKey.spec.ts"],"names":[],"mappings":";;;;;AAAA,kDAAsB;AACtB,wCAAoD;AAEpD,IAAI,CAAC,qDAAqD,EAAE;IAC1D,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,oBAAS,EAAC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAf,CAAe,EAAE,GAAG,CAAC,CAAA;IACjE,gBAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEF,2CAA2C;AAC3C,sFAAsF;AACtF,+BAA+B;AAC/B,IAAI,CAAC,oDAAoD,EAAE;IACzD,wDAAwD;IACxD,IAAM,OAAO,GAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC5B,IAAM,MAAM,GAAG,IAAA,oBAAS,EAAC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAf,CAAe,EAAE,GAAG,CAAC,CAAA;IACjE,gBAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE;IACjC,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,sBAAW,EAAC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAT,CAAS,EAAE,GAAG,CAAC,CAAA;IACtE,gBAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA"}
|
package/cjs/object/someKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function someKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, array: string[]) => unknown, thisArg?: T): boolean;
|
|
2
|
+
export declare function someKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, array: string[], subject: S) => unknown, thisArg?: T): boolean;
|
|
3
3
|
//# sourceMappingURL=someKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.d.ts","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"someKey.d.ts","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EACzF,OAAO,CAAC,EAAE,CAAC,GACV,OAAO,CAIT"}
|
package/cjs/object/someKey.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.someKey = void 0;
|
|
4
4
|
function someKey(subject, predicate, thisArg) {
|
|
5
|
-
return Object.keys(subject).some(
|
|
5
|
+
return Object.keys(subject).some(function (k, i, a) {
|
|
6
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
7
|
+
}, thisArg);
|
|
6
8
|
}
|
|
7
9
|
exports.someKey = someKey;
|
|
8
10
|
//# sourceMappingURL=someKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.js","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,OAAO,CACrB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"someKey.js","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":";;;AAEA,SAAgB,OAAO,CACrB,OAAU,EACV,SAAyF,EACzF,OAAW;IAEX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AARD,0BAQC"}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var assert_1 = __importDefault(require("assert"));
|
|
3
7
|
var index_js_1 = require("../index.js");
|
|
4
8
|
test('predicate key can be used as indexer of the subject', function () {
|
|
5
9
|
var subject = { a: 1, b: 2, c: 3 };
|
|
6
10
|
expect((0, index_js_1.someKey)(subject, function (key) { return subject[key] === 2; })).toBe(true);
|
|
7
11
|
});
|
|
12
|
+
it('includes subject in callback', function () {
|
|
13
|
+
var subject = { a: 1, b: 2, c: 3 };
|
|
14
|
+
var actual = (0, index_js_1.someKey)(subject, function (k, i, a, s) { return s[k] === 2; });
|
|
15
|
+
index_js_1.isType.equal();
|
|
16
|
+
assert_1.default.strictEqual(actual, true);
|
|
17
|
+
});
|
|
8
18
|
//# sourceMappingURL=someKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.spec.js","sourceRoot":"","sources":["../../ts/object/someKey.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"someKey.spec.js","sourceRoot":"","sources":["../../ts/object/someKey.spec.ts"],"names":[],"mappings":";;;;;AAAA,kDAAsB;AACtB,wCAA6C;AAE7C,IAAI,CAAC,qDAAqD,EAAE;IAC1D,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,CAAC,IAAA,kBAAO,EAAC,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAlB,CAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChE,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE;IACjC,IAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,IAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAV,CAAU,CAAC,CAAA;IAC3D,iBAAM,CAAC,KAAK,EAAgC,CAAA;IAC5C,gBAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA"}
|
package/cjs/utils/inspect.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAG/E"}
|
package/cjs/utils/inspect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,OAAO,CAAI,KAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,OAAO,CAAI,KAAQ,EAAE,SAAuC;IAC1E,SAAS,CAAC,KAAK,CAAC,CAAA;IAChB,OAAO,KAAK,CAAA;AACd,CAAC;AAHD,0BAGC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function filterKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
1
|
+
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
+
export declare function filterKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => boolean, thisArg?: T): Array<keyof S>;
|
|
3
3
|
//# sourceMappingURL=filterKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.d.ts","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"filterKey.d.ts","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EAC7F,OAAO,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAI7B"}
|
package/esm/object/filterKey.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export function filterKey(subject, predicate, thisArg) {
|
|
2
|
-
return Object.keys(subject).filter(
|
|
2
|
+
return Object.keys(subject).filter(function (k, i, a) {
|
|
3
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
4
|
+
}, thisArg);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=filterKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.js","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"filterKey.js","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,OAAU,EACV,SAA6F,EAC7F,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -5,4 +5,9 @@ test(`return type is 'keyof subject'`, () => {
|
|
|
5
5
|
const actual = filterKey(subject, key => subject[key] > 1);
|
|
6
6
|
t.deepStrictEqual(actual, ['b', 'c']);
|
|
7
7
|
});
|
|
8
|
+
it('includes subject in callback', () => {
|
|
9
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
10
|
+
const actual = filterKey(subject, (key, i, a, s) => s[key] > 1);
|
|
11
|
+
t.deepStrictEqual(actual, ['b', 'c']);
|
|
12
|
+
});
|
|
8
13
|
//# sourceMappingURL=filterKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.spec.js","sourceRoot":"","sources":["../../ts/object/filterKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"filterKey.spec.js","sourceRoot":"","sources":["../../ts/object/filterKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/D,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA"}
|
package/esm/object/findKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function findKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
2
|
+
export declare function findKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => boolean, thisArg?: T): keyof S | undefined;
|
|
3
3
|
//# sourceMappingURL=findKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.d.ts","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"findKey.d.ts","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EAC7F,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,CAIlC"}
|
package/esm/object/findKey.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export function findKey(subject, predicate, thisArg) {
|
|
2
|
-
return Object.keys(subject).find(
|
|
2
|
+
return Object.keys(subject).find(function (k, i, a) {
|
|
3
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
4
|
+
}, thisArg);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=findKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.js","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACrB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"findKey.js","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACrB,OAAU,EACV,SAA6F,EAC7F,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -5,4 +5,9 @@ test('predicate key can be used as indexer of the subject', () => {
|
|
|
5
5
|
const actual = findKey(subject, key => subject[key] === 2);
|
|
6
6
|
t.strictEqual(actual, 'b');
|
|
7
7
|
});
|
|
8
|
+
it('includes subject in callback', () => {
|
|
9
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
10
|
+
const actual = findKey(subject, (key, i, a, s) => s[key] === 2);
|
|
11
|
+
t.strictEqual(actual, 'b');
|
|
12
|
+
});
|
|
8
13
|
//# sourceMappingURL=findKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.spec.js","sourceRoot":"","sources":["../../ts/object/findKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"findKey.spec.js","sourceRoot":"","sources":["../../ts/object/findKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/D,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA"}
|
package/esm/object/mapKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function mapKey<R, S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
2
|
+
export declare function mapKey<R, S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => R, thisArg?: T): R[];
|
|
3
3
|
//# sourceMappingURL=mapKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.d.ts","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"mapKey.d.ts","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EACvF,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAIlB"}
|
package/esm/object/mapKey.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export function mapKey(subject, predicate, thisArg) {
|
|
2
|
-
return Object.keys(subject).map(
|
|
2
|
+
return Object.keys(subject).map(function (k, i, a) {
|
|
3
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
4
|
+
}, thisArg);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=mapKey.js.map
|
package/esm/object/mapKey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.js","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"mapKey.js","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,OAAU,EACV,SAAuF,EACvF,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -5,4 +5,9 @@ test('predicate key can be used as indexer of the subject', () => {
|
|
|
5
5
|
const actual = mapKey(subject, key => subject[key] + 1);
|
|
6
6
|
a.satisfies(actual, [2, 3, 4]);
|
|
7
7
|
});
|
|
8
|
+
it('includes subject in callback', () => {
|
|
9
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
10
|
+
const actual = mapKey(subject, (key, i, a, s) => s[key] + 1);
|
|
11
|
+
a.satisfies(actual, [2, 3, 4]);
|
|
12
|
+
});
|
|
8
13
|
//# sourceMappingURL=mapKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.spec.js","sourceRoot":"","sources":["../../ts/object/mapKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"mapKey.spec.js","sourceRoot":"","sources":["../../ts/object/mapKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function reduceByKey<S extends Record<KeyTypes, any>, T>(subject: S, callbackfn: (previousValue: T, key: keyof S, currentIndex: number, array: string[]) => T, initialValue: T): T;
|
|
2
|
+
export declare function reduceByKey<S extends Record<KeyTypes, any>, T>(subject: S, callbackfn: (previousValue: T, key: keyof S, currentIndex: number, array: string[], subject: S) => T, initialValue: T): T;
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated renamed to reduceByKey
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.d.ts","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAC5D,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"reduceKey.d.ts","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAC5D,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EACpG,YAAY,EAAE,CAAC,GAAG,CAAC,CAEpB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,oBAAc,CAAA"}
|
package/esm/object/reduceKey.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function reduceByKey(subject, callbackfn, initialValue) {
|
|
2
|
-
return Object.keys(subject).reduce(callbackfn, initialValue);
|
|
2
|
+
return Object.keys(subject).reduce((p, k, i, a) => callbackfn(p, k, i, a, subject), initialValue);
|
|
3
3
|
}
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated renamed to reduceByKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.js","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CACzB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"reduceKey.js","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CACzB,OAAU,EACV,UAAoG,EACpG,YAAe;IACf,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;AACnG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import t from 'assert';
|
|
2
|
-
import { reduceKey } from '../index.js';
|
|
2
|
+
import { reduceByKey, reduceKey } from '../index.js';
|
|
3
3
|
test('predicate key can be used as indexer of the subject', () => {
|
|
4
4
|
const subject = { a: 1, b: 2, c: 3 };
|
|
5
5
|
const actual = reduceKey(subject, (p, k) => p += subject[k], 'a');
|
|
@@ -14,4 +14,9 @@ test('key type is string if subject type is plain object', () => {
|
|
|
14
14
|
const actual = reduceKey(subject, (p, k) => p += subject[k], 'a');
|
|
15
15
|
t.strictEqual(actual, 'a1');
|
|
16
16
|
});
|
|
17
|
+
it('includes subject in callback', () => {
|
|
18
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
19
|
+
const actual = reduceByKey(subject, (p, k, i, a, s) => p += s[k], 'a');
|
|
20
|
+
t.strictEqual(actual, 'a123');
|
|
21
|
+
});
|
|
17
22
|
//# sourceMappingURL=reduceKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.spec.js","sourceRoot":"","sources":["../../ts/object/reduceKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"reduceKey.spec.js","sourceRoot":"","sources":["../../ts/object/reduceKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEpD,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjE,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEF,2CAA2C;AAC3C,sFAAsF;AACtF,+BAA+B;AAC/B,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAC9D,wDAAwD;IACxD,MAAM,OAAO,GAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjE,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtE,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA"}
|
package/esm/object/someKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function someKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, array: string[]) => unknown, thisArg?: T): boolean;
|
|
2
|
+
export declare function someKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, array: string[], subject: S) => unknown, thisArg?: T): boolean;
|
|
3
3
|
//# sourceMappingURL=someKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.d.ts","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"someKey.d.ts","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EACzF,OAAO,CAAC,EAAE,CAAC,GACV,OAAO,CAIT"}
|
package/esm/object/someKey.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export function someKey(subject, predicate, thisArg) {
|
|
2
|
-
return Object.keys(subject).some(
|
|
2
|
+
return Object.keys(subject).some(function (k, i, a) {
|
|
3
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
4
|
+
}, thisArg);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=someKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.js","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACrB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"someKey.js","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACrB,OAAU,EACV,SAAyF,EACzF,OAAW;IAEX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from 'assert';
|
|
2
|
+
import { isType, someKey } from '../index.js';
|
|
2
3
|
test('predicate key can be used as indexer of the subject', () => {
|
|
3
4
|
const subject = { a: 1, b: 2, c: 3 };
|
|
4
5
|
expect(someKey(subject, key => subject[key] === 2)).toBe(true);
|
|
5
6
|
});
|
|
7
|
+
it('includes subject in callback', () => {
|
|
8
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
9
|
+
const actual = someKey(subject, (k, i, a, s) => s[k] === 2);
|
|
10
|
+
isType.equal();
|
|
11
|
+
t.strictEqual(actual, true);
|
|
12
|
+
});
|
|
6
13
|
//# sourceMappingURL=someKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.spec.js","sourceRoot":"","sources":["../../ts/object/someKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"someKey.spec.js","sourceRoot":"","sources":["../../ts/object/someKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE7C,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChE,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,KAAK,EAAgC,CAAA;IAC5C,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA"}
|
package/esm/utils/inspect.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAG/E"}
|
package/esm/utils/inspect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,KAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,KAAQ,EAAE,SAAuC;IAC1E,SAAS,CAAC,KAAK,CAAC,CAAA;IAChB,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "type-plus",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.0",
|
|
4
4
|
"description": "Provides additional types for TypeScript.",
|
|
5
5
|
"homepage": "https://github.com/unional/type-plus",
|
|
6
6
|
"bugs": {
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"typedoc-plugin-extras": "^2.2.3",
|
|
70
70
|
"typescript": "4.9.4"
|
|
71
71
|
},
|
|
72
|
-
"packageManager": "pnpm@7.
|
|
72
|
+
"packageManager": "pnpm@7.25.0",
|
|
73
73
|
"size-limit": [
|
|
74
74
|
{
|
|
75
75
|
"path": "./cjs/index.js",
|
package/ts/object/filterKey.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { KeyTypes } from './KeyTypes.js'
|
|
1
|
+
import type { KeyTypes } from './KeyTypes.js'
|
|
2
2
|
|
|
3
3
|
export function filterKey<S extends Record<KeyTypes, any>, T = any>(
|
|
4
4
|
subject: S,
|
|
5
|
-
predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
5
|
+
predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => boolean,
|
|
6
6
|
thisArg?: T): Array<keyof S> {
|
|
7
|
-
return Object.keys(subject).filter(
|
|
7
|
+
return Object.keys(subject).filter(function (this: T, k, i, a) {
|
|
8
|
+
return predicate.apply(this, [k, i, a, subject])
|
|
9
|
+
}, thisArg)
|
|
8
10
|
}
|
package/ts/object/findKey.ts
CHANGED
|
@@ -2,7 +2,9 @@ import { KeyTypes } from './KeyTypes.js'
|
|
|
2
2
|
|
|
3
3
|
export function findKey<S extends Record<KeyTypes, any>, T = any>(
|
|
4
4
|
subject: S,
|
|
5
|
-
predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
5
|
+
predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => boolean,
|
|
6
6
|
thisArg?: T): keyof S | undefined {
|
|
7
|
-
return Object.keys(subject).find(
|
|
7
|
+
return Object.keys(subject).find(function (this: T, k, i, a) {
|
|
8
|
+
return predicate.apply(this, [k, i, a, subject])
|
|
9
|
+
}, thisArg)
|
|
8
10
|
}
|
package/ts/object/mapKey.ts
CHANGED
|
@@ -2,7 +2,9 @@ import { KeyTypes } from './KeyTypes.js'
|
|
|
2
2
|
|
|
3
3
|
export function mapKey<R, S extends Record<KeyTypes, any>, T = any>(
|
|
4
4
|
subject: S,
|
|
5
|
-
predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
5
|
+
predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => R,
|
|
6
6
|
thisArg?: T): R[] {
|
|
7
|
-
return Object.keys(subject).map(
|
|
7
|
+
return Object.keys(subject).map(function (this: T, k, i, a) {
|
|
8
|
+
return predicate.apply(this, [k, i, a, subject])
|
|
9
|
+
}, thisArg)
|
|
8
10
|
}
|
package/ts/object/reduceKey.ts
CHANGED
|
@@ -2,9 +2,9 @@ import type { KeyTypes } from './KeyTypes.js'
|
|
|
2
2
|
|
|
3
3
|
export function reduceByKey<S extends Record<KeyTypes, any>, T>(
|
|
4
4
|
subject: S,
|
|
5
|
-
callbackfn: (previousValue: T, key: keyof S, currentIndex: number, array: string[]) => T,
|
|
5
|
+
callbackfn: (previousValue: T, key: keyof S, currentIndex: number, array: string[], subject: S) => T,
|
|
6
6
|
initialValue: T): T {
|
|
7
|
-
return Object.keys(subject).reduce(callbackfn
|
|
7
|
+
return Object.keys(subject).reduce((p, k, i, a) => callbackfn(p, k, i, a, subject), initialValue)
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
/**
|
package/ts/object/someKey.ts
CHANGED
|
@@ -2,8 +2,10 @@ import type { KeyTypes } from './KeyTypes.js'
|
|
|
2
2
|
|
|
3
3
|
export function someKey<S extends Record<KeyTypes, any>, T = any>(
|
|
4
4
|
subject: S,
|
|
5
|
-
predicate: (this: T, key: keyof S, index: number, array: string[]) => unknown,
|
|
5
|
+
predicate: (this: T, key: keyof S, index: number, array: string[], subject: S) => unknown,
|
|
6
6
|
thisArg?: T
|
|
7
7
|
): boolean {
|
|
8
|
-
return Object.keys(subject).some(
|
|
8
|
+
return Object.keys(subject).some(function (this: T, k, i, a) {
|
|
9
|
+
return predicate.apply(this, [k, i, a, subject])
|
|
10
|
+
}, thisArg)
|
|
9
11
|
}
|
package/ts/utils/inspect.ts
CHANGED