Nukem's Possible Manifestation

    febs-decorator
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.21 • Public • Published

    Some typescript decorators, like spring-validation and so on.

    Setup

    npm i febs-decorator
    

    set config in tsconfig.json

    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    

    Example

    Validation Example:

    import {NotNull, Type} from 'febs-decorator';
    
    class BeanDemo {
        @NotNull
        @Type.Boolean
        a: boolean = null
    }
    
    let obj = new BeanA();  // will throw a exception.

    Service Example:

    import {Service} from 'febs-decorator';
    
    @Service()
    class BeanDemo {
    }
    
    // get service instances.
    @Autowired(BeanDemo)
    let objArray:any[];

    Bean Example:

    import {Service, Bean} from 'febs-decorator';
    
    @Service()
    class BeanDemo {
      @Bean()
      foo(): Object {
        return {};
      }
    }
    
    // get bean instances.
    @Autowired('foo')
    let obj:Object;

    FeignClient Example:

    import { RestController, RequestMapping, RequestMethod } from "febs-decorator";
    
    @FeignClient({name:'serviceName'})
    export class BaseService {
      @RequestMapping({ path: '/api', method: RequestMethod.GET, feignCastType: BeanDemo })
      async request(): Promise<BeanDemo> {
        // fallback.
        throw new Error('Message Error');
      }
    }
    
    // request
    let result:BeanDemo = new BaseService().request();

    Reference

    Validator Decorator

    see readme

    A set of validator decorators, e.g. @NotNull, @Max, @Min, @Range ..

    Rest Decorator

    see readme

    A set of restful api decorators, e.g. @RestController, @FeignClient, @RequestMapping, @RequestBody, @PathVariable ..

    Install

    npm i febs-decorator

    DownloadsWeekly Downloads

    135

    Version

    1.1.21

    License

    MIT

    Unpacked Size

    383 kB

    Total Files

    105

    Last publish

    Collaborators

    • brainpoint