@rickosborne/guard 2024.12.35 → 2024.12.36

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/README.md CHANGED
@@ -100,6 +100,17 @@ hasNumber: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Nam
100
100
  Guard for whether an object has a property with the given name and a numeric value.
101
101
 
102
102
 
103
+ #### hasObject
104
+
105
+ <a id="api-hasobject"></a>
106
+
107
+ ```typescript
108
+ hasObject: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: object; }
109
+ ```
110
+
111
+ Guard for whether an object has a property with the given name and an object value.
112
+
113
+
103
114
  #### hasOwn
104
115
 
105
116
  <a id="api-hasown"></a>
@@ -126,6 +137,17 @@ Guard for whether the given value is an object with a property with the given na
126
137
  Guard for whether the given value is an object with a property with the given name. This variant checks the value against the given predicate.
127
138
 
128
139
 
140
+ #### hasPlainObject
141
+
142
+ <a id="api-hasplainobject"></a>
143
+
144
+ ```typescript
145
+ hasPlainObject: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: Record<never, never>; }
146
+ ```
147
+
148
+ Guard for whether an object has a property with the given name and a plain object value.
149
+
150
+
129
151
  #### isDefined
130
152
 
131
153
  <a id="api-isdefined"></a>
package/cjs/index.js CHANGED
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ts/error-from-message.js"), exports);
18
18
  __exportStar(require("./ts/has-array.js"), exports);
19
19
  __exportStar(require("./ts/has-number.js"), exports);
20
+ __exportStar(require("./ts/has-object.js"), exports);
20
21
  __exportStar(require("./ts/has-own.js"), exports);
21
22
  __exportStar(require("./ts/is-defined.js"), exports);
22
23
  __exportStar(require("./ts/is-int.js"), exports);
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,oDAAkC;AAClC,uDAAqC;AACrC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,oDAAkC;AAClC,qDAAmC;AACnC,qDAAmC;AACnC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,oDAAkC;AAClC,uDAAqC;AACrC,4DAA0C"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasPlainObject = exports.hasObject = void 0;
4
+ const has_own_js_1 = require("./has-own.js");
5
+ const is_object_js_1 = require("./is-object.js");
6
+ /**
7
+ * Guard for whether an object has a property with the given name
8
+ * and an object value.
9
+ */
10
+ const hasObject = (obj, name) => {
11
+ return (0, has_own_js_1.hasOwn)(obj, name) && (0, is_object_js_1.isObject)(obj[name]);
12
+ };
13
+ exports.hasObject = hasObject;
14
+ /**
15
+ * Guard for whether an object has a property with the given name
16
+ * and a plain object value.
17
+ */
18
+ const hasPlainObject = (obj, name) => {
19
+ return (0, has_own_js_1.hasOwn)(obj, name) && (0, is_object_js_1.isPlainObject)(obj[name]);
20
+ };
21
+ exports.hasPlainObject = hasPlainObject;
22
+ //# sourceMappingURL=has-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-object.js","sourceRoot":"","sources":["../../../ts/has-object.ts"],"names":[],"mappings":";;;AAAA,6CAAsC;AACtC,iDAAyD;AAEzD;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAkC,EAAE;IAC1G,OAAO,IAAA,mBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAA,uBAAQ,EAAC,GAAG,CAAE,IAAI,CAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAgD,EAAE;IAC7H,OAAO,IAAA,mBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAA,4BAAa,EAAC,GAAG,CAAE,IAAI,CAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB"}
@@ -1 +1 @@
1
- {"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}
1
+ {"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-object.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}
package/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./ts/error-from-message.js";
2
2
  export * from "./ts/has-array.js";
3
3
  export * from "./ts/has-number.js";
4
+ export * from "./ts/has-object.js";
4
5
  export * from "./ts/has-own.js";
5
6
  export * from "./ts/is-defined.js";
6
7
  export * from "./ts/is-int.js";
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { hasOwn } from "./has-own.js";
2
+ import { isObject, isPlainObject } from "./is-object.js";
3
+ /**
4
+ * Guard for whether an object has a property with the given name
5
+ * and an object value.
6
+ */
7
+ export const hasObject = (obj, name) => {
8
+ return hasOwn(obj, name) && isObject(obj[name]);
9
+ };
10
+ /**
11
+ * Guard for whether an object has a property with the given name
12
+ * and a plain object value.
13
+ */
14
+ export const hasPlainObject = (obj, name) => {
15
+ return hasOwn(obj, name) && isPlainObject(obj[name]);
16
+ };
17
+ //# sourceMappingURL=has-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-object.js","sourceRoot":"","sources":["../../../ts/has-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAkC,EAAE;IAC1G,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAgD,EAAE;IAC7H,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,aAAa,CAAC,GAAG,CAAE,IAAI,CAAE,CAAC,CAAC;AACxD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}
1
+ {"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-object.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "url": "https://rickosborne.org"
5
5
  },
6
6
  "dependencies": {
7
- "@rickosborne/typical": "2024.12.35"
7
+ "@rickosborne/typical": "2024.12.36"
8
8
  },
9
9
  "description": "Rick Osborne's collection of type guards.",
10
10
  "engines": {
@@ -40,5 +40,5 @@
40
40
  },
41
41
  "types": "types/index.d.ts",
42
42
  "typings": "types/index.d.ts",
43
- "version": "2024.12.35"
43
+ "version": "2024.12.36"
44
44
  }
package/types/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./ts/error-from-message.js";
2
2
  export * from "./ts/has-array.js";
3
3
  export * from "./ts/has-number.js";
4
+ export * from "./ts/has-object.js";
4
5
  export * from "./ts/has-own.js";
5
6
  export * from "./ts/is-defined.js";
6
7
  export * from "./ts/is-int.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
package/types/index.js CHANGED
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ts/error-from-message.js"), exports);
18
18
  __exportStar(require("./ts/has-array.js"), exports);
19
19
  __exportStar(require("./ts/has-number.js"), exports);
20
+ __exportStar(require("./ts/has-object.js"), exports);
20
21
  __exportStar(require("./ts/has-own.js"), exports);
21
22
  __exportStar(require("./ts/is-defined.js"), exports);
22
23
  __exportStar(require("./ts/is-int.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,oDAAkC;AAClC,uDAAqC;AACrC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,oDAAkC;AAClC,qDAAmC;AACnC,qDAAmC;AACnC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,oDAAkC;AAClC,uDAAqC;AACrC,4DAA0C"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Guard for whether an object has a property with the given name
3
+ * and an object value.
4
+ */
5
+ export declare const hasObject: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: object; };
6
+ /**
7
+ * Guard for whether an object has a property with the given name
8
+ * and a plain object value.
9
+ */
10
+ export declare const hasPlainObject: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: Record<never, never>; };
11
+ //# sourceMappingURL=has-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-object.d.ts","sourceRoot":"","sources":["../../../ts/has-object.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,IAAI,SAAS,MAAM,OAAO,OAAO,QAAQ,IAAI,KAAG,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,MAAM,GAErG,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,IAAI,SAAS,MAAM,OAAO,OAAO,QAAQ,IAAI,KAAG,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAExH,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasPlainObject = exports.hasObject = void 0;
4
+ const has_own_js_1 = require("./has-own.js");
5
+ const is_object_js_1 = require("./is-object.js");
6
+ /**
7
+ * Guard for whether an object has a property with the given name
8
+ * and an object value.
9
+ */
10
+ const hasObject = (obj, name) => {
11
+ return (0, has_own_js_1.hasOwn)(obj, name) && (0, is_object_js_1.isObject)(obj[name]);
12
+ };
13
+ exports.hasObject = hasObject;
14
+ /**
15
+ * Guard for whether an object has a property with the given name
16
+ * and a plain object value.
17
+ */
18
+ const hasPlainObject = (obj, name) => {
19
+ return (0, has_own_js_1.hasOwn)(obj, name) && (0, is_object_js_1.isPlainObject)(obj[name]);
20
+ };
21
+ exports.hasPlainObject = hasPlainObject;
22
+ //# sourceMappingURL=has-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-object.js","sourceRoot":"","sources":["../../../ts/has-object.ts"],"names":[],"mappings":";;;AAAA,6CAAsC;AACtC,iDAAyD;AAEzD;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAkC,EAAE;IAC1G,OAAO,IAAA,mBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAA,uBAAQ,EAAC,GAAG,CAAE,IAAI,CAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAgD,EAAE;IAC7H,OAAO,IAAA,mBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAA,4BAAa,EAAC,GAAG,CAAE,IAAI,CAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB"}
@@ -1 +1 @@
1
- {"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}
1
+ {"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-object.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}