Version 1.0.2
@stackline/is-plain-obj
Check if a value is a plain object
Independent maintenance of is-plain-obj 4.1.0. Original authors and licenses are retained.
Installation
# Preserve existing imports with an npm alias
npm install is-plain-obj@npm:@stackline/is-plain-obj@1.0.2
# Or use the scoped package name in your imports
npm install @stackline/is-plain-obj@1.0.2Node.js: >=12. Read the compatibility and maintenance notes before migrating.
Usage and API
@stackline/is-plain-obj
Check if a value is a plain object.
Documentation | npm | Issues | Repository
Current package version: 1.0.2
Why this package?
@stackline/is-plain-obj is the Stackline-maintained distribution of is-plain-obj@4.1.0. It is an independent continuation of is-plain-obj; original authors and licenses remain credited below.
Compatibility
| Item | Value |
|---|---|
| Package | @stackline/is-plain-obj@1.0.2 |
| API target | is-plain-obj@4.1.0 |
| Supported Node.js | >=12 |
| License | MIT |
| Module type | module |
| Types | ./index.d.ts |
| Runtime dependencies | none |
Installation
npm install @stackline/is-plain-obj
Preserve existing imports and plugin resolution with an npm alias:
npm install is-plain-obj@npm:@stackline/is-plain-obj
Usage and API reference
is-plain-obj
Check if a value is a plain object
An object is plain if it's created by either {}, new Object(), or Object.create(null).
Install
$ npm install @stackline/is-plain-obj
Usage
import isPlainObject from '@stackline/is-plain-obj';
import {runInNewContext} from 'node:vm';
isPlainObject({foo: 'bar'});
//=> true
isPlainObject(new Object());
//=> true
isPlainObject(Object.create(null));
//=> true
// This works across realms
isPlainObject(runInNewContext('({})'));
//=> true
isPlainObject([1, 2, 3]);
//=> false
class Unicorn {}
isPlainObject(new Unicorn());
//=> false
isPlainObject(Math);
//=> false
Related
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.
Credits and original authors
- Original project: is-plain-obj.
- Sindre Sorhus.
- Stackline maintenance: Alexandro Paixao Marques and Stackline contributors.
Original copyright, license notices and contributor acknowledgements remain part of this distribution. Stackline maintenance does not replace authorship of the original work.
License
MIT. See the license and notice files in the repository.
Community and Links
Use this repository's issue tracker for reproducible bugs and feature requests. Join r/Stackline for examples, usage questions and release discussions.
Upstream issues and maintenance review
Upstream and issue review
Base: sindresorhus/is-plain-obj, npm is-plain-obj@4.1.0, commit 68e8cc77bb1bbd0bf7d629d3574b6ca70289b2cc. Full Git history and upstream attribution are retained. Last npm publication: 2022-06-15T15:47:13.746Z. Release inactivity does not by itself prove abandonment.
Review: 2026-09-29T00:22:09.703001+00:00. Source coverage: Most recently updated 100 open and 30 closed issue/PR entries; PRs removed. This is triage evidence, not a claim of exhaustive review.
No open issues were present in the collection. Closed #11 (cross-realm objects), #9 (TypeScript narrowing), #12 (performance implementation), #2/#3 (prototype definition) are already reflected in 4.1.0 and covered by original/current tests. Closed #6/#7 concern obsolete engine/browser expectations; this ESM fork preserves Node >=12 without converting its module format. Runtime source is unchanged.
Reviewed issue entries
- sindresorhus/is-plain-obj#12 (closed): Performance improvement
- sindresorhus/is-plain-obj#11 (closed): Does not work with cross-realm objects
- sindresorhus/is-plain-obj#2 (closed): Is Object.create({}) a plain object or not ?
- sindresorhus/is-plain-obj#6 (closed): Remove arrow syntax for browser compatibility
- sindresorhus/is-plain-obj#9 (closed): [typescript] Why not narrow it to
Record<string | number | symbol, unknown>instead ofobject? - sindresorhus/is-plain-obj#7 (closed): usage in remark
- sindresorhus/is-plain-obj#3 (closed): Document Object.create(null) result in readme
Release changes
Stackline changes
1.0.0 โ 2026-09-28
Independent maintenance fork of is-plain-obj 4.1.0. Preserve published API, module exports and runtime engine compatibility. No open issues were present in the collection. Closed #11 (cross-realm objects), #9 (TypeScript narrowing), #12 (performance implementation), #2/#3 (prototype definition) are already reflected in 4.1.0 and covered by original/current tests. Closed #6/#7 concern obsolete engine/browser expectations; this ESM fork preserves Node >=12 without converting its module format. Runtime source is unchanged.
Pinned development tools, real API and packed-consumer checks, GitHub CI/CodeQL gates, exact-artifact npm provenance and immutable release evidence are added. See UPSTREAM.md for limits of issue triage.
Release files and references
Package bytes, npm provenance and the immutable GitHub release were verified for this version. Security checks describe the reviewed release; documented compatibility risks and upstream reports are not blanket claims of resolution.