Get
🚚 A really small and type-safe (requires TypeScript >= 4.1.3) function, that gets a nested value from an object using a path string (like "a.b[0].d"). If value is 'undefined' or unreachable returns the placeholder instead.
Install / Use
/learn @VitorLuizC/GetREADME
@bitty/get
A really small and type-safe (requires TypeScript >= 4.1.3) function, that gets a nested value from an object using a path string (like "a.b[0].d"). If value is undefined or unreachable returns the placeholder instead.
-
📦 Distributions in ESM, CommonJS, UMD and UMD minified formats.
- Supports both NodeJS used with ESM (
import/export) and CommonJS (require/module.exports).
- Supports both NodeJS used with ESM (
-
⚡ Lightweight:
- Weighs less than 150 bytes (when minified and gzipped).
- Tree-shakeable.
- Side-effects free.
-
🔋 Batteries included:
- No dependencies.
- Its not based on newer browser's APIs or es2015+ features.
-
🏷 Safe:
- JSDocs and type declarations for IDEs and editor's autocomplete/intellisense.
- Made with TypeScript as strict as possible.
- Unit tests with AVA (types was also tested).
It's approach is based on idx, from Facebook, and an insight from a Vue.js meetup where @IgorHalfeld showed a way to get nested values using eval.
Install
This library is published in the NPM registry and can be installed using any compatible package manager.
npm install --save @bitty/get
# If you're using Yarn use the command below.
yarn add @bitty/get
Installation from CDN
This module has a UMD bundle available through JSDelivr and Unpkg CDNs.
<!-- For UNPKG use the code below. -->
<script src="https://unpkg.com/@bitty/get"></script>
<!-- For JSDelivr use the code below. -->
<script src="https://cdn.jsdelivr.net/npm/@bitty/get"></script>
<script>
// UMD module is exposed through the "get" global function.
console.log(get);
//=> "[Function: get]"
var users = [{ name: 'Carlos Marcos' }];
console.log(get(users, '[0].name', 'Unknown'));
//=> "Carlos Marcos"
</script>
Usage
Just import get function and gets a value from object using a path expression.
import get from '@bitty/get';
// ...
const name = get(response, 'data.user.name', 'Unknown');
You can use brackets, even on first property.
const title = get(paragraphs, '[0].children[0].textContent');
License
Released under MIT License.
Related Skills
node-connect
337.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
83.2kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
review-duplication
99.2kUse this skill during code reviews to proactively investigate the codebase for duplicated functionality, reinvented wheels, or failure to reuse existing project best practices and shared utilities.
