A lightweight npm package for typescript decorators which mimic some of the functionalities offered by lombok for java.
TypeScriptMIT
node-lombok
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
A get method will capitilize the first letter of the attribute and add "get" as a prefix. So basically a get method for "name" will look like "getName"
A set method 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"
If you define your own getter method then it will be overwritten by @Getters
A get method will capitilize the first letter of the attribute and add "get" as a prefix. So basically a get method for "name" will look like "getName"
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
A set method 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"
@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 }.
If you use please don't define "_id", "getId()" and "static findById" in your class as they are already defined by the decorator
You'll have to use @ts-ignore as a comment when calling `ClassName.findById` because ts doesn't recognize `findById` method
You can use `@ts-nocheck ` to disable typescript checks for the entire file
import{Store}from'node-lombok';
@Store()classUser{[x: string]: any;privatename: string;constructor(name: string){this.name=name;}}consta=newUser('A');constb=newUser('B');// b will have _id = 2 so you can search it from storage like:// @ts-ignoreconsole.log(User.findById(2));