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
- Maintenance status: Not actively maintained as of today. The last upstream push was 2024-05-04, and the most recent listed published update is v4.1.0 in 2022, indicating a long period with no new
updates. - Apparent update cadence: After v4.1.0 (2022-06), there are no further tagged updates shown. Historically, major updates happened in 2021 (v4.0.0) and 2022 (v4.1.0), then a multi-year quiet period.
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