Socket
Book a DemoInstallSign in
Socket

proposal-factory-decorator

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

proposal-factory-decorator

This module was made to decorate fields to furder create a Factory for that class.

1.0.0
latest
Source
npmnpm
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

Class Factory Decorators

This package is aimed to testing and seeding at your projects. It's easy to implement and create your own class factory.

  • Class Factory Decorators

Install through cli via command

You might want to use this quick cli command to install the package.

npm i --save proposal-factory-decorator

Example code

In this example, we can see how the @Factory decorator works. It's quite simple and easy to duplicate.

import { Factory, CreateFactory } from "proposal-factory-decorator";

class User {
  @Factory(() => "name")
  field: string;

  @Factory(() => false)
  isTrue: boolean;
}

const userFact = new CreateFactory() < User > User;

(async () => {
  const user = await userFact.generate(); // Creates an User

  console.log(user); // { field: "name", isTrue: false }
})();

Recommends

It's highly recommended to use faker package. The faker package provides useful evaluations to our @Factory method.

npm i --save faker @types/faker

One simple example (extending the example above) to use faker lib

import { Factory, CreateFactory } from "proposal-factory-decorator";
import faker from "faker";

class User {
  @Factory(() => faker.name.findName())
  name: string;

  @Factory(() => faker.internet.email())
  email: boolean;
}

const userFact = new CreateFactory() < User > User;

(async () => {
  const user = await userFact.generate(); // Creates a faker User

  console.log(user); // { name: "Some random name", email: "some@random.email" }
})();

Caution

The @Factory decorator only works with the CreateFactory class. If you try to do something like

class DontWork {
  @Factory(() => somevalue)
  field: any;
}

console.log(new DontWork()); // it will print this empty value {}

If you want to support me, go check my Patreon!

Happy coding you all 🖥️🙇!

Keywords

Factory

FAQs

Package last updated on 08 Apr 2021

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.