1.1.1 • Published 2 years ago

node-lombok v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

node-lombok npm.io npm.io

  • A lightweight npm package for typescript decorators which mimic some of the functionalities offered by lombok for java.

Usage

  • Install with npm i node-lombok
  • Please ensure that you have set experimentalDecorators set as true in your tsconfig.json

@Data

  • @Data adds getters and setters for all defined attributes. Refer example below:
  • If you define your own getters / setters methods then it will be overwritten by @Data
import { Data } from 'node-lombok';

@Data()
class User {
  [x: string]: any;
  private name: string;
  private email: string;

  constructor(name: string, email: string) {
    this.name = name;
    this.email = email;
  }
}
const user = new User('', '');
user.setName('user');
user.setEmail('user@email.com');
console.log(user.getName());
console.log(user.getEmail());

@Getters

  • @Getters adds getters for all defined attributes
  • If you define your own getter method then it will be overwritten by @Getters
import { Getters } from 'node-lombok';

@Getters()
class User {
  [x: string]: any;
  private name: string;
  private email: string;

  constructor(name: string, email: string) {
    this.name = name;
    this.email = email;
  }
}
const user = new User('user', 'user@email');
console.log(user.getName());
console.log(user.getEmail());

@Setters

  • @Setters adds setters for all defined attributes
  • If you define your own setter method then it will be overwritten by @Setters
  • A set method is will capitilize the first letter of the attribute and add set as a prefix. So basically a set method for name will look like setName
import { Setters } from 'node-lombok';

@Setters()
class User {
  [x: string]: any;
  private name: string;
  private email: string;

  constructor(name: string, email: string) {
    this.name = name;
    this.email = email;
  }
}
const user = new User('', '');
user.setName('user');
user.setEmail('user@email.com');
console.log(user);

@Store

  • @Store sets up storage for all objects of a class.
  • storage is basically just a map where the instantiated object is stored agains it's _id.
  • The _id is auto incremented and storageMap looks like: { _id: object }.
import { Store } from 'node-lombok';

@Store()
class User {
  [x: string]: any;
  private name: string;
  constructor(name: string) {
    this.name = name;
  }
}
const a = new User('A');
const b = new User('B');
// b will have _id = 2 so you can search it from storage like:

// @ts-ignore
console.log(User.findById(2));
1.1.1

2 years ago

1.1.0

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago