lysis-typescript-classes-generator
v0.0.12
Published
Generate TypeScript classes for JSON LD backend
Downloads
76
Readme
Lysis TypeScript classes generator
Overview
This generator creates TypeScript classes to handle object provided by the API.
Samples
Base and extended classes
Example of base classes, the book base class, named BookBase
:
export class BookBase {
id: number;
isbn: string;
description: string;
author: string;
title: string;
publicationDate: Date;
}
This class should not be modified, as it is overwritten during next generations.
Another class is automatically generated, inherited from the base class:
import { BookBase } from './BookBase';
export class Book implements BookBase {
}
This Book
class inherits from BookBase
and is not overwritten during further generations.
It is the perfect place to add customizations.
Other classes dependencies
Reviews are performed on a book. So a review owns a book
property:
import { Book } from './Book';
export class ReviewBase {
id: number;
rating: number;
body: string;
book: Book;
author: string;
publicationDate: Date;
setBook(id: number): ReviewBase {
this.book = new Book();
this.book.id = id;
this.book['@id'] = '/books/' + id;
return this;
}
}
The type of the book
property is Book
. It is automatically imported.
The setBook
method is here to automatically populate the book
property with a book object from the provided book id.
It is almost useful when creating a new review, before posting it.
The real value will overwrite this temporary book value when the backend POST
response will be received.
Under the hood, the Restangular configuration module (available soon), transforms the book['@id']
as the correct value.
Index file
The index file is the one to include in the application controller, services, ... to use classes.
import { Book } from '../api/backend-classes';
export class MyComponent implements OnInit {
private currentBook: Book;
// [...]
}
Use
Prerequisites
If it is not already done, install api-lysis globally and as dev dependency:
npm install api-lysis -g
npm install api-lysis --save-dev
### Install this generator
Install this generator:
npm install lysis-typescript-classes-generator --save-dev
Configuration
Configuration sample:
apis:
http://localhost:8000:
basePath: 'my-backend'
hydraPrefix: 'hydra:'
generators:
lysis-typescript-classes-generator:
dir: 'classes'
Class files are generated in my-backend/classes
.
If dir
is not set, the default value is backend-classes
.
todo:
- force extended class overwrite (default false)