Alexandro.Net

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.2

Node.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.

npm version license GitHub repository Docs Reddit community

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


Get professional support for this package with a Tidelift subscription
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 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

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.