![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
@develohpanda/fluent-builder
Advanced tools
A typed, fluent builder for creating objects in Typescript
fluent-builder
consumes a seeding schema, and generates a builder with a signature identical to the type being built, but with mutate
functions, to make iterative modifications to your object. The builder contains two additional properties, reset()
and build()
.
createBuilder<Product>(schema).name('Shirt').price(42).build();
fluent-builder
aims to simplify the use of the builder pattern for Typescript, using generics. This pattern allows for iterative construction of complex, often nested objects. Typically, a unique builder class needs to be implemented for each unique interface or type, to ensure correct typing is available.
The usual
yarn add -D @develohpanda/fluent-builder
npm i --save-dev @develohpanda/fluent-builder
In order for types to be detected correctly in VS Code (eg. IntelliSense on hover), any file using fluent-builder
should be included in the default project tsconfig
to be compiled. If you know how to fix this, please submit a PR! :)
interface Product {
name: string;
price: number;
color?: string;
buy: () => void;
}
import {Schema} from '@develohpanda/fluent-builder';
const schema: Schema<Product> = {
name: () => 'Shirt',
price: () => 2,
color: () => undefined,
buy: () => jest.fn(),
}
import {createBuilder} from '@develohpanda/fluent-builder';
const builder = createBuilder(schema);
describe('suite', () => {
beforeEach(() => builder.reset());
it('test', () => {
const mock = jest.fn();
const instance = builder.price(4).buy(mock).build();
// use instance and mock
});
});
The overhead of constructing a new builder can be avoided by using the builder.reset()
method. This resets the mutated schema back to its original, and can be chained.
builder.reset().price(5).build();
Please raise issues or feature requests via the Github issue tracker.
Feel free to submit a pull request with your change!
yarn install
yarn test
FAQs
A typed, fluent builder for creating objects in Typescript
We found that @develohpanda/fluent-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.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.