Version 1.0.0
@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.0
# Or use the scoped package name in your imports
npm install @stackline/is-plain-obj@1.0.0Node.js: >=12. Read the compatibility and maintenance notes before migrating.
Usage and API
The reference below may retain upstream package names. Use the alias installation above to run those imports with this Stackline release.
@stackline/is-plain-obj
Independent maintenance fork of is-plain-obj@4.1.0. Original API, module format, runtime dependency ranges, and supported Node.js engines are preserved.
npm install @stackline/is-plain-obj
# Preserve existing imports with an npm alias:
npm install is-plain-obj@npm:@stackline/is-plain-obj@1.0.0
See UPSTREAM.md for the exact source and issue review, and CHANGELOG.md for focused maintenance changes. Development and release tooling runs on Node.js 24; that does not change the library runtime requirement.
Maintained by Stackline. Issues · npm.
Upstream documentation
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 is-plain-obj
Usage
import isPlainObject from '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.
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.