pera-trta
v1.0.41
Published
pera-trta is a simple package that provides basic functionalities for your models and collections
Maintainers
Readme
PERA-TRTA
Simple model/collection package
PERA-TRTA is a simple package that provides basic functionalities for your models and collections.
All you gonna need to do is to extend your custom models and collections
with Model and Collection, and you ready to go.
Some of the functionalities that package provide are:
- both
ModelandCollectionclasses are heavily based on Typescript generics so IntelliSense support is given for using any of the methods implemented, see the images: img1 img2 img3 - CLI support
- get model property by key
- update some properties of the model
- update only one model property
- store models in the collection
- sort collection items
- find particular item/items
- map collection items ...
Here is the link for documentation pages.
####CLI support:
Instead of manually creating all necessary files, you can use CLI command pt.
pt -a Person
// pt --all Person will work
// pt --all=Person will work as wellCreates person model, interface and collection files (by appropriate template), each file has suffix -model, -interface, -collection respectively.
pt -i IPerson -m Person -c PersonCollection
// pt --interface IPerson --model Person --collection PersonCollection will work
// pt --interface=IPerson --model=Person --collection=PersonCollection will work as wellCreates IPerson, Person and PersonCollection files.
####Usage example:
category-props.ts
export interface ICategoryProps {
id: number;
name: string;
}
category-model.ts
import { ICategoryProps } from './category-props';
import { Model } from 'pera-trta';
export class CategoryModel extends Model<ICategoryProps> {}
category-collection.ts
import { CategoryModel } from './category-model';
import { ICategoryProps } from './category-props';
import { Collection } from 'pera-trta';
export class CategoryCollection extends Collection<CategoryModel, ICategoryProps> {}
index.ts
import { CategoryModel } from './category-model';
import { CategoryCollection } from './category-collection';
const cc = new CategoryCollection();
const c1 = new CategoryModel({ id: 1, name: 'pera' });
const c2 = new CategoryModel({ id: 2, name: 'trta' });
const c3 = new CategoryModel({ id: 3, name: 'pera' });
// add to collection
cc.add(c1);
cc.add([ c2, c3 ]);
// get all items from collection
console.log(cc.getAll());
// get items count
console.log(cc.getCount);
// map all collection items
cc.map((el: CategoryModel) => {
return el.setByKey('name', el.get('name').toUpperCase());
});
console.log(cc.getAll());
// sort
cc.sortBy('id', 'desc');
console.log(cc.getAll());
// find
console.log(cc.findByKeyValue('name', 'PERA'));
// Remove - removes only first occurrence
cc.remove(c2, 'id');
console.log(cc.getAll());
cc.removeAllByKeyValue('name', 'PERA');
console.log(cc.getAll());
