
Research
Malicious fezbox npm Package Steals Browser Passwords from Cookies via Innovative QR Code Steganographic Technique
A malicious package uses a QR code as steganography in an innovative technique.
fluent-object-builder
Advanced tools
This package provides a strongly typed, purely functional object builder with a fluent interface.
# With NPM
npm install --save fluent-object-builder
# With yarn
yarn add fluent-object-builder
The library exports a single method builder()
to create a builder. If you pass no type argument, the builder is unconstrained, i.e. you can pass any property. If you you do pass a type argument T
, the builder is constrained to properties and values of T
and the build method will only be available once all properties are set.
import builder from 'fluent-object-builder';
// Constrained builder
interface MyType {
s: string;
n: number;
b?: boolean;
}
const obj = builder<MyType>().s('abc').n(0).b(false).build();
// TypeError, because n is not set
const obj2 = builder<MyType>().s('abc').b(true).build();
// No TypeError, because b is optional
const obj3 = builder<MyType>().s('abc').n(0).build();
// You can also use the get, set and unset methods instead of the fluent interface
const builder4 = builder<MyType>().set('n', 0);
const obj4 = builder4.set('s', builder.get('n').toString()).unset('n').set('n', 1).build();
// Unconstrained builder
const obj4 = builder().set('x', 1).set('y', 2).build();
// Object type is Record<'x', number> & Record<'y', number>
// When using an unconstrained builder with the fluent interface, you need to
// specify the key and value type using the type arguments for the TypeScript
// compiler to correctly identify the types
const builder5 = builder().x<'x', 1>('x', 1);
// Afterwards, you don't need to use the type arguments again
const obj5 = builder5.set('y', builder5.get('x') + 1).build();
FAQs
Strongly typed object builder with a fluent interface
We found that fluent-object-builder 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.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.
Application Security
/Research
/Security News
Socket detected multiple compromised CrowdStrike npm packages, continuing the "Shai-Hulud" supply chain attack that has now impacted nearly 500 packages.