hein 1.3.6 → 1.4.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/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ #### [hein@1.4.0](https://github.com/KristjanTammekivi/hein/compare/hein@1.3.6...hein@1.4.0)
8
+
9
+ > 1 November 2023
10
+
11
+ - feat: add hasKeys, .keys [`#167`](https://github.com/KristjanTammekivi/hein/issues/167)
12
+
7
13
  #### [hein@1.3.6](https://github.com/KristjanTammekivi/hein/compare/hein@1.3.5...hein@1.3.6)
8
14
 
9
15
  > 25 October 2023
package/README.md CHANGED
@@ -219,6 +219,15 @@ Assert that value is an instance of provided constructor
219
219
  expect(new Error()).to.be.an.instanceOf(Error);
220
220
  ```
221
221
 
222
+ #### keys
223
+
224
+ Assert that object has keys
225
+
226
+ ```typescript
227
+ expect({ a: 1, b: 2 }).to.have.keys(['a', 'b']);
228
+ expect({ a: 1, b: 2 }).to.have.keys('a');
229
+ ```
230
+
222
231
  ##### lengthOf
223
232
 
224
233
  Assert that value has a length equal to argument
@@ -0,0 +1,13 @@
1
+ interface HasKeys {
2
+ /**
3
+ * check if object has keys
4
+ * @param object
5
+ * @param keys a key or array of keys in the object.
6
+ * @example hasKeys({a: 1}, 'a');
7
+ * @example hasKeys({a: 1, b: 2}, ['a', 'b']);
8
+ */
9
+ <T extends Record<string, any>, K extends keyof T>(object: T, keys: K[] | K, message?: string): void;
10
+ }
11
+ export declare const hasKeys: HasKeys, notHasKeys: HasKeys;
12
+ export {};
13
+ //# sourceMappingURL=has-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-keys.d.ts","sourceRoot":"","sources":["../../src/assert/has-keys.ts"],"names":[],"mappings":"AAGA,UAAU,OAAO;IACb;;;;;;OAMG;IACH,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxG;AAED,eAAO,MAAO,OAAO,WAAE,UAAU,SAuB/B,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.notHasKeys = exports.hasKeys = void 0;
5
+ const hein_assertion_utils_1 = require("hein-assertion-utils");
6
+ const lodash_1 = require("lodash");
7
+ _a = (0, hein_assertion_utils_1.createAssertion)({
8
+ messages: {
9
+ noKey: 'Expected {{actual}} to have keys {{expected}}',
10
+ not: 'Expected {{actual}} to not have keys {{expected}}'
11
+ },
12
+ test: (report) => (object, keys, message) => {
13
+ const keysArray = (0, lodash_1.castArray)(keys);
14
+ for (const key of keysArray) {
15
+ if (!(key in object)) {
16
+ report({
17
+ status: 'notok',
18
+ message,
19
+ messageId: 'noKey',
20
+ actual: (0, hein_assertion_utils_1.stringify)(object),
21
+ expected: keysArray
22
+ });
23
+ return;
24
+ }
25
+ }
26
+ report({ status: 'ok', actual: (0, hein_assertion_utils_1.stringify)(object), expected: keysArray });
27
+ }
28
+ }), exports.hasKeys = _a[0], exports.notHasKeys = _a[1];
29
+ //# sourceMappingURL=has-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-keys.js","sourceRoot":"","sources":["../../src/assert/has-keys.ts"],"names":[],"mappings":";;;;AAAA,+DAAkE;AAClE,mCAAmC;AAatB,KAAwB,IAAA,sCAAe,EAAC;IACjD,QAAQ,EAAE;QACN,KAAK,EAAE,+CAA+C;QACtD,GAAG,EAAE,mDAAmD;KAC3D;IACD,IAAI,EACA,CAAC,MAAM,EAAW,EAAE,CACpB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YACzB,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;gBAClB,MAAM,CAAC;oBACH,MAAM,EAAE,OAAO;oBACf,OAAO;oBACP,SAAS,EAAE,OAAO;oBAClB,MAAM,EAAE,IAAA,gCAAS,EAAC,MAAM,CAAC;oBACzB,QAAQ,EAAE,SAAS;iBACtB,CAAC,CAAC;gBACH,OAAO;aACV;SACJ;QACD,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAA,gCAAS,EAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;CACR,CAAC,EAvBY,eAAO,UAAE,kBAAU,SAuB9B"}
package/dist/assert.d.ts CHANGED
@@ -22,5 +22,6 @@ export { isBetween, notBetween } from './assert/is-between';
22
22
  export { inBallpark, notInBallpark } from './assert/in-ballpark';
23
23
  export { roundTo, notRoundTo } from './assert/round-to';
24
24
  export { hasMembers, notHasMembers } from './assert/has-members';
25
+ export { hasKeys, notHasKeys } from './assert/has-keys';
25
26
  export declare const assert: () => never;
26
27
  //# sourceMappingURL=assert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEjE,eAAO,MAAM,MAAM,aAElB,CAAC"}
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,MAAM,aAElB,CAAC"}
package/dist/assert.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assert = exports.notHasMembers = exports.hasMembers = exports.notRoundTo = exports.roundTo = exports.notInBallpark = exports.inBallpark = exports.notBetween = exports.isBetween = exports.notAfter = exports.isAfter = exports.notBefore = exports.isBefore = exports.notEndsWith = exports.endsWith = exports.notStartsWith = exports.startsWith = exports.deepNotHasProperty = exports.deepHasProperty = exports.throws = exports.notThrows = exports.rejects = exports.notRejects = exports.notMatch = exports.match = exports.notLessThanEqual = exports.lessThanEqual = exports.notLessThan = exports.lessThan = exports.notIsType = exports.isType = exports.notIsEmpty = exports.isEmpty = exports.notInstanceOf = exports.instanceOf = exports.notIncludes = exports.includes = exports.notHasSize = exports.hasSize = exports.notHasProperty = exports.hasProperty = exports.notGreaterThanEqual = exports.greaterThanEqual = exports.notGreaterThan = exports.greaterThan = exports.notEqual = exports.equal = exports.notDeepEqual = exports.deepEqual = void 0;
3
+ exports.notHasKeys = exports.hasKeys = exports.notHasMembers = exports.hasMembers = exports.notRoundTo = exports.roundTo = exports.notInBallpark = exports.inBallpark = exports.notBetween = exports.isBetween = exports.notAfter = exports.isAfter = exports.notBefore = exports.isBefore = exports.notEndsWith = exports.endsWith = exports.notStartsWith = exports.startsWith = exports.deepNotHasProperty = exports.deepHasProperty = exports.throws = exports.notThrows = exports.rejects = exports.notRejects = exports.notMatch = exports.match = exports.notLessThanEqual = exports.lessThanEqual = exports.notLessThan = exports.lessThan = exports.notIsType = exports.isType = exports.notIsEmpty = exports.isEmpty = exports.notInstanceOf = exports.instanceOf = exports.notIncludes = exports.includes = exports.notHasSize = exports.hasSize = exports.notHasProperty = exports.hasProperty = exports.notGreaterThanEqual = exports.greaterThanEqual = exports.notGreaterThan = exports.greaterThan = exports.notEqual = exports.equal = exports.notDeepEqual = exports.deepEqual = void 0;
4
+ exports.assert = void 0;
4
5
  var deep_equal_1 = require("./assert/deep-equal");
5
6
  Object.defineProperty(exports, "deepEqual", { enumerable: true, get: function () { return deep_equal_1.deepEqual; } });
6
7
  Object.defineProperty(exports, "notDeepEqual", { enumerable: true, get: function () { return deep_equal_1.notDeepEqual; } });
@@ -73,6 +74,9 @@ Object.defineProperty(exports, "notRoundTo", { enumerable: true, get: function (
73
74
  var has_members_1 = require("./assert/has-members");
74
75
  Object.defineProperty(exports, "hasMembers", { enumerable: true, get: function () { return has_members_1.hasMembers; } });
75
76
  Object.defineProperty(exports, "notHasMembers", { enumerable: true, get: function () { return has_members_1.notHasMembers; } });
77
+ var has_keys_1 = require("./assert/has-keys");
78
+ Object.defineProperty(exports, "hasKeys", { enumerable: true, get: function () { return has_keys_1.hasKeys; } });
79
+ Object.defineProperty(exports, "notHasKeys", { enumerable: true, get: function () { return has_keys_1.notHasKeys; } });
76
80
  const assert = () => {
77
81
  throw new Error('Not implemented');
78
82
  };
@@ -1 +1 @@
1
- {"version":3,"file":"assert.js","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":";;;AAAA,kDAA8D;AAArD,uGAAA,SAAS,OAAA;AAAE,0GAAA,YAAY,OAAA;AAChC,wCAAiD;AAAxC,8FAAA,KAAK,OAAA;AAAE,iGAAA,QAAQ,OAAA;AACxB,sDAAoE;AAA3D,2GAAA,WAAW,OAAA;AAAE,8GAAA,cAAc,OAAA;AACpC,kEAAoF;AAA3E,sHAAA,gBAAgB,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAC9C,sDAAoE;AAA3D,2GAAA,WAAW,OAAA;AAAE,8GAAA,cAAc,OAAA;AACpC,8CAAwD;AAA/C,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC5B,8CAA0D;AAAjD,oGAAA,QAAQ,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC9B,oDAAiE;AAAxD,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAClC,8CAAwD;AAA/C,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC5B,4CAAqD;AAA5C,iGAAA,MAAM,OAAA;AAAE,oGAAA,SAAS,OAAA;AAC1B,gDAA2D;AAAlD,qGAAA,QAAQ,OAAA;AAAE,wGAAA,WAAW,OAAA;AAC9B,4DAA2E;AAAlE,gHAAA,aAAa,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AACxC,wCAAiD;AAAxC,8FAAA,KAAK,OAAA;AAAE,iGAAA,QAAQ,OAAA;AACxB,4CAAuD;AAA9C,qGAAA,UAAU,OAAA;AAAE,kGAAA,OAAO,OAAA;AAC5B,0CAAoD;AAA3C,mGAAA,SAAS,OAAA;AAAE,gGAAA,MAAM,OAAA;AAC1B,gEAAiF;AAAxE,oHAAA,eAAe,OAAA;AAAE,uHAAA,kBAAkB,OAAA;AAC5C,oDAAiE;AAAxD,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAClC,gDAA2D;AAAlD,qGAAA,QAAQ,OAAA;AAAE,wGAAA,WAAW,OAAA;AAC9B,gDAAyD;AAAhD,qGAAA,QAAQ,OAAA;AAAE,sGAAA,SAAS,OAAA;AAC5B,8CAAsD;AAA7C,mGAAA,OAAO,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAC1B,kDAA4D;AAAnD,uGAAA,SAAS,OAAA;AAAE,wGAAA,UAAU,OAAA;AAC9B,oDAAiE;AAAxD,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAClC,8CAAwD;AAA/C,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC5B,oDAAiE;AAAxD,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAE3B,MAAM,MAAM,GAAG,GAAG,EAAE;IACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACvC,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB"}
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":";;;;AAAA,kDAA8D;AAArD,uGAAA,SAAS,OAAA;AAAE,0GAAA,YAAY,OAAA;AAChC,wCAAiD;AAAxC,8FAAA,KAAK,OAAA;AAAE,iGAAA,QAAQ,OAAA;AACxB,sDAAoE;AAA3D,2GAAA,WAAW,OAAA;AAAE,8GAAA,cAAc,OAAA;AACpC,kEAAoF;AAA3E,sHAAA,gBAAgB,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAC9C,sDAAoE;AAA3D,2GAAA,WAAW,OAAA;AAAE,8GAAA,cAAc,OAAA;AACpC,8CAAwD;AAA/C,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC5B,8CAA0D;AAAjD,oGAAA,QAAQ,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC9B,oDAAiE;AAAxD,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAClC,8CAAwD;AAA/C,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC5B,4CAAqD;AAA5C,iGAAA,MAAM,OAAA;AAAE,oGAAA,SAAS,OAAA;AAC1B,gDAA2D;AAAlD,qGAAA,QAAQ,OAAA;AAAE,wGAAA,WAAW,OAAA;AAC9B,4DAA2E;AAAlE,gHAAA,aAAa,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AACxC,wCAAiD;AAAxC,8FAAA,KAAK,OAAA;AAAE,iGAAA,QAAQ,OAAA;AACxB,4CAAuD;AAA9C,qGAAA,UAAU,OAAA;AAAE,kGAAA,OAAO,OAAA;AAC5B,0CAAoD;AAA3C,mGAAA,SAAS,OAAA;AAAE,gGAAA,MAAM,OAAA;AAC1B,gEAAiF;AAAxE,oHAAA,eAAe,OAAA;AAAE,uHAAA,kBAAkB,OAAA;AAC5C,oDAAiE;AAAxD,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAClC,gDAA2D;AAAlD,qGAAA,QAAQ,OAAA;AAAE,wGAAA,WAAW,OAAA;AAC9B,gDAAyD;AAAhD,qGAAA,QAAQ,OAAA;AAAE,sGAAA,SAAS,OAAA;AAC5B,8CAAsD;AAA7C,mGAAA,OAAO,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAC1B,kDAA4D;AAAnD,uGAAA,SAAS,OAAA;AAAE,wGAAA,UAAU,OAAA;AAC9B,oDAAiE;AAAxD,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAClC,8CAAwD;AAA/C,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC5B,oDAAiE;AAAxD,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAClC,8CAAwD;AAA/C,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAErB,MAAM,MAAM,GAAG,GAAG,EAAE;IACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACvC,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB"}
@@ -0,0 +1,10 @@
1
+ declare module '../expect.types' {
2
+ interface ObjectExpect<T> {
3
+ /**
4
+ * Check if value has keys
5
+ */
6
+ keys<K extends keyof T>(keys: K[] | K): this;
7
+ }
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/expect/keys.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,iBAAiB,CAAC;IAC7B,UAAU,YAAY,CAAC,CAAC;QACpB;;WAEG;QACH,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;KAChD;CACJ"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert_1 = require("../assert");
4
+ const mixins_1 = require("../mixins");
5
+ (0, mixins_1.use)({
6
+ keys: {
7
+ type: 'method',
8
+ value: ({ value, inverted }) => (keys) => {
9
+ if (inverted) {
10
+ (0, assert_1.notHasKeys)(value, keys);
11
+ }
12
+ else {
13
+ (0, assert_1.hasKeys)(value, keys);
14
+ }
15
+ }
16
+ }
17
+ });
18
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/expect/keys.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,sCAAgC;AAWhC,IAAA,YAAG,EAAC;IACA,IAAI,EAAE;QACF,IAAI,EAAE,QAAQ;QACd,KAAK,EACD,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxB,CAAC,IAAI,EAAE,EAAE;YACL,IAAI,QAAQ,EAAE;gBACV,IAAA,mBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC3B;iBAAM;gBACH,IAAA,gBAAO,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aACxB;QACL,CAAC;KACR;CACJ,CAAC,CAAC"}
package/dist/expect.d.ts CHANGED
@@ -16,6 +16,7 @@ import './expect/has-property';
16
16
  import './expect/include';
17
17
  import './expect/instance-of-shorthand';
18
18
  import './expect/instance-of';
19
+ import './expect/keys';
19
20
  import './expect/length';
20
21
  import './expect/less-than-equal';
21
22
  import './expect/less-than';
@@ -1 +1 @@
1
- {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAO,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,gBAAgB,CAAC;AACxB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,cAAc,CAAC;AACtB,OAAO,0BAA0B,CAAC;AAClC,OAAO,gBAAgB,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,6BAA6B,CAAC;AACrC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gCAAgC,CAAC;AACxC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAClC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,gBAAgB,CAAC;AACxB,OAAO,yBAAyB,CAAC;AACjC,OAAO,eAAe,CAAC;AAyBvB,eAAO,MAAM,WAAW,6BAwBvB,CAAC;AAEF,eAAO,MAAM,MAAM,QAEP,CAAC"}
1
+ {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAO,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,gBAAgB,CAAC;AACxB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,cAAc,CAAC;AACtB,OAAO,0BAA0B,CAAC;AAClC,OAAO,gBAAgB,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,6BAA6B,CAAC;AACrC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gCAAgC,CAAC;AACxC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,eAAe,CAAC;AACvB,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAClC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,gBAAgB,CAAC;AACxB,OAAO,yBAAyB,CAAC;AACjC,OAAO,eAAe,CAAC;AAyBvB,eAAO,MAAM,WAAW,6BAwBvB,CAAC;AAEF,eAAO,MAAM,MAAM,QAEP,CAAC"}
package/dist/expect.js CHANGED
@@ -20,6 +20,7 @@ require("./expect/has-property");
20
20
  require("./expect/include");
21
21
  require("./expect/instance-of-shorthand");
22
22
  require("./expect/instance-of");
23
+ require("./expect/keys");
23
24
  require("./expect/length");
24
25
  require("./expect/less-than-equal");
25
26
  require("./expect/less-than");
@@ -1 +1 @@
1
- {"version":3,"file":"expect.js","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expect.js","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const castArray: <T>(value: T | T[]) => T[];
2
+ //# sourceMappingURL=cast-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-array.d.ts","sourceRoot":"","sources":["../../src/utils/cast-array.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,4BAQrB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.castArray = void 0;
4
+ const castArray = (value) => {
5
+ if (Array.isArray(value)) {
6
+ return value;
7
+ }
8
+ if (value === undefined || value === null) {
9
+ return [];
10
+ }
11
+ return [value];
12
+ };
13
+ exports.castArray = castArray;
14
+ //# sourceMappingURL=cast-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-array.js","sourceRoot":"","sources":["../../src/utils/cast-array.ts"],"names":[],"mappings":";;;AAAO,MAAM,SAAS,GAAG,CAAI,KAAc,EAAO,EAAE;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC;KAChB;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;QACvC,OAAO,EAAE,CAAC;KACb;IACD,OAAO,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hein",
3
- "version": "1.3.6",
3
+ "version": "1.4.0",
4
4
  "engines": {
5
5
  "node": ">=14.0.0"
6
6
  },