@asmodeo/utils
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

@asmodeo

Build Status Dependencies Status License: MIT Greenkeeper badge Total alerts

This library contains some reusable code blocks for different applications.

@asmodeo/utils

How to install:

npm i @asmodeo/utils

ModelTransform

"ModelTransform" is a class that transforms an object or array into the destination class that is sent to it.

class Person {
  private _name;
  private _lastname;  
  public get fullName(): string {
    return `${this._lastname}, ${this._name}`;
  }
  
  private _age;  
  public get adult(): boolean {
    return this._age >= 18;
  }
  public get child(): boolean {
    return !this.adult;
  }
  
  constructor(input) {
    this._name = String(input.name).toLowerCase();
    this._lastname = String(input.lastName).toLowerCase();
    this._age = Number(input.age);
  }
}

const result = ModelTransform.Transform({ name: 'Pilmee', lastName: 'Gates', age: 21 } , Person));

console.log(result.fullName); // gates, pilmee
console.log(result.adult); // true;
console.log(result.child); // false

The idea is to help build models of objects that abstract the validations and other operations that may be necessary or require scope to only instantiate the model.

How to use:

Angular example:

import { Component, OnInit } from '@angular/core';
import { ModelTransform } from '@asmodeo/utils';
import 'rxjs/add/operator/map';
import { Subscription } from 'rxjs/Subscription';

import { BEPerson, PersonService } from './person.service';
import { Person, IPerson } from './person.model';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  public persons = [];

  constructor(
    private _PersonService: PersonService
  ) {}

  ngOnInit() {
    this._PersonService.get()
      .pipe(
        map<BEPerson[], IPerson[]>((person) => ModelTransform.Transform<BEPerson, IPerson>(person, Person))
      )      
      .subscribe((persons) => this.persons = persons);
  }
}

License:

MIT

Dependencies (1)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i @asmodeo/utils

    Weekly Downloads

    2

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    22.5 kB

    Total Files

    23

    Last publish

    Collaborators

    • pilmee