
Security News
AGENTS.md Gains Traction as an Open Format for AI Coding Agents
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
Dechainer is a Node.js library written in TypeScript containing versatile utilities designed to aid development in the functional programming paradigm.
npm i dechainer
Contrived examples demonstrating how to import functions and types from this library.
import { identity } from 'dechainer'
const example = identity('a string')
// example === 'a string'
import type { IdentityCallback } from 'dechainer'
import { identity } from 'dechainer'
const stringIdentity: IdentityCallback<string> = (param: string): string =>
identity(param),
example: string = stringIdentity('a string')
// example === 'a string'
Partial documentation of functions available in this library.
Delay code execution by a specified duration.
delayable
is a callback function with an optional duration
parameter (e.g.: (duration) => console.log(duration)
).duration
is the time in milliseconds that should elapse before delayable
is called.await delay({ delayable, duration })
Parameters can be provided in any order.
await delay(delayable, duration)
// or
await delay(duration, delayable)
Parameters can be provided in any order.
await delay(delayable)(duration)
// or
await delay(duration)(delayable)
Race asynchronous code execution against a specified timeout.
contender
is an asynchronous function that resolves only if the elapsed time is less than the timeout
duration.timeout
is the time in milliseconds that should elapse before a RangeError
is thrown.await race({ contender, timeout })
Parameters can be provided in any order.
await race(contender, timeout)
// or
await race(timeout, contender)
Parameters can be provided in any order.
await race(contender)(timeout)
// or
await race(timeout)(contender)
Counter with optional (im-)persistent internal state and respective tradeoffs. Multiple unique counters of both types may exist without overlapping state.
Persistent counter that is purely functional and side effect free with a smaller, simpler interface. Resetting is achieved by declaring a new variable. Return value(s) should be stored to be practical.
const { decrement, increment, state } = counter({ impersistent: false })
// state === 0
// increment().state === 1
Methods returned by calling counter({ impersistent: false })
, each returning a new persistent counter:
decrement
decreases the current value by 1
.increment
increases the current value by 1
.Properties returned by calling counter({ impersistent: false })
:
state
is a number representing the counter's current value.Impersistent counter that provides many methods that mutate its internal state. However, it only needs to be declared once. State is unique to each counter and not shared globally.
const { count, decrement, increment, reset } = counter({ impersistent: true })
// count() === 0
// increment()
// count() === 1
Methods returned by calling counter({ impersistent: true })
:
count
returns the counter's current number value.decrement
is a side effect that decreases the internal value by 1
.increment
is a side effect that increases the internal value by 1
.reset
is a side effect that sets the internal value to 0
.FAQs
Functional utilities.
The npm package dechainer receives a total of 6 weekly downloads. As such, dechainer popularity was classified as not popular.
We found that dechainer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.