is-plain-obj is a small utility that checks whether a JavaScript value is a plain object. It returns true for objects created with {}, new Object(), or Object.create(null), and false for arrays and other non-plain types.
Project status
- This repository appears quiet or in maintenance mode as of today (2026-09-10). The most recent published update listed is v4.1.0 on 2022-06-15, and the last upstream push was 2024-05-04, with no more recent version updates shown.
- Update cadence is low, with multi-year gaps between updates (for example, v4.0.0 in 2021, v4.1.0 in 2022). Compared to the current date, that suggests no active feature evolution recently.
AI summary generated
Recent updates
v4.1.0
Release v4.1.0 focuses on performance and improving plain object detection when values come from different JavaScript realms (for example, objects created in a different VM context). The code change also tightens what qualifies as a plain object by adding extra symbol-based exclusions.
Featuresv4.0.0
v4.0.0 makes the package pure ESM and raises the minimum supported Node.js version to 12. The implementation is now a default-exported ESM function instead of a CommonJS `module.exports` export.
Breakingv3.0.0
v3.0.0 primarily enforces a newer Node.js baseline and makes the TypeScript type definitions more strict. Most code changes are around the published typings, with minor test and tooling/CI adjustments.
Breakingv2.1.0
v2.1.0 is described as an internal refactor with no user-facing change called out. The diff is small, centered on the implementation of the plain object check, plus repository/CI/docs updates.
v2.0.0
v2.0.0 introduces a TypeScript definition and makes a key compatibility change by requiring a newer Node.js runtime. The release notes explicitly call out the Node.js requirement as the breaking change.
BreakingFeatures