
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Porting the scope functions from the Kotlin standard library to JavaScript/TypeScript
npm i scope-funs
import { scope } from 'scope-funs'
const scopeValue = scope([1])
// or
import { Scope } from 'scope-funs'
const scopeValue = new Scope([1])
| Method | Description |
|---|---|
let | Invoke one or more functions on results of call chains |
also | Performing some actions that take the context object as an argument |
takeIf | Returns self if predicate is true, otherwise undefined |
takeUnless | Returns self if predicate is false, otherwise undefined |
skipNullish | Returns self for non-nullish values, otherwise undefined |
unwrap | Extracts the underlying value from the Scope |
The skipNullish and unwrap methods do not exist in the Kotlin. These are additional methods that are needed because JavaScript does not have the extension function feature and the library uses a wrapper around values
In the Kotlin, we can call scope function on any value. As example:
val str: String? = "Hello"
val length = str?.let {
println("let() called on $it")
it.length
}?.let { it + 1 }
The equivalent of this code would be:
import { scope } from 'scope-funs'
const str: string | undefined = 'Hello'
const length = scope(str)
.skipNullish()
?.let((it) => {
console.log(`let() called on ${it}`)
return it.length
})
.let((it) => it + 1)
.unwrap()
import { scope } from 'scope-funs'
const result = scope(5)
.let((it) => [it]) // Transforms the value
.also((it) => {
console.log(`Current value: ${it}`)
it.push(10)
}) // Some action
.unwrap()
// Prints "Current value: 5" and returns [5, 10]
import { scope } from 'scope-funs'
const positiveScope = scope(-5).takeIf((it) => it > 0) // Returns undefined
const negativeScope = scope(-5).takeUnless((it) => it > 0) // Returns the Scope instance
import { scope } from 'scope-funs'
const value: string | null = null
const result = scope(value)
.skipNullish()
?.let((it) => it.length) // it is not nullish
.unwrap() // Returns the length of the value if it is not nullish or returns undefined
// or
const resultNullish = scope(value)
.let((it) => it?.length ?? 0) // it is nullish
.unwrap() // Returns the length of the value if it is not nullish or 0
FAQs
Porting the scope functions from the Kotlin standard library
The npm package scope-funs receives a total of 0 weekly downloads. As such, scope-funs popularity was classified as not popular.
We found that scope-funs demonstrated a healthy version release cadence and project activity because the last version was released less than 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.