Skip to content

lindomar-oliveira/transform-class-properties

Repository files navigation

transform-class-properties

Automatically transforms values of class properties.

Prerequisites

  • TypeScript >= 1.5

  • Enable the experimentalDecorators in tsconfig.json.

Note: ES5 is min target minimun to build.

Installation

npm install transform-class-properties --save

or

yarn add transform-class-properties

Usage

import {
  Float,
  RemoveNonNumeric,
  ToUpperCase,
  transform,
  Trim
} from 'transform-class-properties';

class Book {
  @ToUpperCase()
  @Trim()
  public title: string;

  @Float(2)
  public price: number;

  @RemoveNonNumeric()
  public issn: string;
}

const book1 = new Book();
book1.title = '    My first book    ';
book1.price = 12.3210;
book1.issn = '1234-5679'

console.log(transform(book1)); // Book { title: 'MY FIRST BOOK', price: 12.32, issn: '12345679' }

Decorators

Decorator Description Class property type
@Append(additionalValue: string | number) Adds value at the end. string
@Capitalize() Capitalize the first letter and lowercase the rest. string
@EscapeHtml() Replaces <, >, &, ', " and / with HTML entities. string
@Float(fractionDigits?: number) Converts number to float. number
@Integer() Converts number to integer. number
@Normalize() Removes special characters and accents. string
@Prepend(additionalValue: string | number) Adds value at the beginning. string
@Regex(expression: RegExp) Returns matched value with regular expression. string
@RemoveNonNumeric() Removes anything non-numeric character. string
@RemoveNumeric() Removes numeric characters. string
@Replace(searchValue: string | RegExp, replaceValue: string) Find and replace value. string
@ToLowerCase() Lower case characters. string
@ToUpperCase() Upper case characters. string
@Trim() Trim characters. string
@UnescapeHtml() Undo escape html. string

License

MIT