1.0.10 โข Published 3 months ago
nested-object-to-key-value v1.0.10
๐ฆค Nested objects to key value
A lightweight utility to flatten nested JavaScript objects into dot-notation key-value pairs and unflatten them back. Perfect for handling complex configurations, form data, or API transformations.
Features
- ๐ฏ Zero dependencies
- ๐ฆ Lightweight (~XKB gzipped)
- ๐ช Fully typed (TypeScript)
- ๐ Preserves type information
- โก Tree-shakeable
- ๐งช Well tested
๐ฆ Installation
npm install nested-object-to-key-value
๐ Usage
import { flattenJson, unflattenJson } from "nested-object-to-key-value";
// Flatten a nested object
const nested = {
user: {
name: "John",
address: {
city: "New York",
country: "USA",
},
},
};
const flattened = flattenJson(nested);
// Result:
// [
// { key: "user.name", value: "John" },
// { key: "user.address.city", value: "New York" },
// { key: "user.address.country", value: "USA" }
// ]
// Unflatten back to nested object
const flat = {
"user.name": "John",
"user.address.city": "New York",
"user.address.country": "USA",
};
const unflattened = unflattenJson(flat);
// Result:
// {
// user: {
// name: "John",
// address: {
// city: "New York",
// country: "USA"
// }
// }
// }
๐ API
flattenJson(obj: UnflattenedJson, prefix?: string): FlattenedPair[]
Converts a nested object into an array of flattened key-value pairs.
unflattenJson(obj: Record<string, string>): UnflattenedJson
Converts a flat object with dot-notation keys back into a nested object.
keyValueArrayToObject(obj: FlattenedPair[]): Record<string, string>
Converts an array of key-value pairs into a flat object.
๐ฒ Testing
We use Vitest for testing.
npm test
๐ค Contributing
Contributions are welcome! Please open an issue or submit a pull request.
๐ License
MIT