init commit
This commit is contained in:
20
shared/utils/src/is-pojo.ts
Normal file
20
shared/utils/src/is-pojo.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Determine if {@linkcode arg} is a Plain Old JavaScript Object.
|
||||
*
|
||||
* @see https://masteringjs.io/tutorials/fundamentals/pojo
|
||||
*
|
||||
* @param arg to test
|
||||
* @returns true if {@linkcode arg} is a POJO
|
||||
*/
|
||||
export function isPOJO(arg: unknown): arg is Record<string, unknown> {
|
||||
if (!arg || typeof arg !== 'object') {
|
||||
return false;
|
||||
}
|
||||
|
||||
const proto = Object.getPrototypeOf(arg);
|
||||
if (!proto) {
|
||||
return true; // `Object.create(null)`
|
||||
}
|
||||
|
||||
return proto === Object.prototype;
|
||||
}
|
||||
Reference in New Issue
Block a user