<< All versions
Skill v1.0.0
currentLLM-judged scan90/100senrecep/tsentials/tsentials-record
──Details
PublishedOctober 17, 2026 at 10:12 PM
Content Hashsha256:c5f44fef30c65c37...
Git SHA6d0b493b3193
──Files
Files (1 file, 1.4 KB)
SKILL.md1.4 KBactive
SKILL.md · 45 lines · 1.4 KB
version: "1.0.0"
tsentials/record — Skill
Use when transforming plain objects functionally.
API
typescript
import { Record } from 'tsentials/record';const users = { a: { name: 'Alice' }, b: { name: 'Bob' } };// QueryRecord.keys(users); // ['a', 'b']Record.values(users); // [{ name: 'Alice' }, { name: 'Bob' }]Record.entries(users); // [['a', { name: 'Alice' }], ['b', { name: 'Bob' }]]Record.has(users, 'a'); // trueRecord.size(users); // 2Record.isEmpty(users); // false// TransformRecord.map(users, u => u.name); // { a: 'Alice', b: 'Bob' }Record.mapWithKey(users, (k, v) => [k.toUpperCase(), v]); // remap keys + valuesRecord.filter(users, u => u.name !== 'Bob');Record.filterMap(users, u => u.name.length > 3 ? u.name : null);// ModifyRecord.upsert(users, 'b', { name: 'Bobby' }); // { a: {...}, b: { name: 'Bobby' } }Record.remove(users, 'b');Record.pick(users, 'a');Record.omit(users, 'b');// AggregateRecord.reduce(users, 0, (acc, u) => acc + u.name.length);Record.partition(users, u => u.name.startsWith('A'));
Patterns
- Use
Record.mapinstead ofObject.entries(...).reduce(...). - Use
pick/omitfor whitelist/blacklist field selection. upsert'skeymust belong to the record's existing key union —Record.upsert(users, 'c', ...)above would not compile sinceusersonly has keys'a' | 'b'. Widen the record's type first if you need to add a genuinely new key.