@telavant/platform
v0.1.2
Published
This library provides additional functionality for Angular Universal apps. It includes a built-in but extendable [Express](https://github.com/expressjs/express) server, which is packaged separately as `@telavant/server`; backend database support via [Type
Downloads
3
Readme
@telavant/platform
This library provides additional functionality for Angular Universal apps. It includes a built-in but
extendable Express server, which is packaged separately as
@telavant/server
; backend database support via TypeORM; a
DataController class for creating backend routes; a DataService class to provide a consistent interface
to the data on both the front and back ends; and a custom Schematic
to install the library in your project and generate backend components.
This package was generated with Angular CLI version 7.2.0.
TL;DR
ng new appname
cd appname
ng add @telavant/platform
ng generate config-mysql
ng generate resource example
Install
Run ng add @telavant/platform
from your project folder. It will set itself up as the default
schematic for the project. Since @telavant/platform
extends @schematics/angular
, you will still
have access to the standard Angular generators.
By default, src/app/app.server.module.ts
will be installed at or moved to src/server/server.module.ts
and a backend routing module will be created as src/server/server-routing.module.ts
. Backend components
will also be created in the server
folder. To change this, use the --server-dir
option.
Entities (class models for your data) will be created in src/entities
. To change this, use the
--entity-dir
option.
Additional options are the same as for the @schematics/angular:universal
generator. Use --dry-run
first to preview the changes that will be made.
Configuration
You can configure TypeORM
by editing ormconfig.json
, or by using one of the configuration generators provided by @telavant/platform
.
Currently, MySQL and SQLite are supported.
Examples:
ng generate config-sqlite development --database=mydb.sql
ng generate config-mysql production --host=db.example.com --port=3306 --username=example --database=prod --password=xxx
The development configuration will be used by default, unless you build for production.
Backend Routes
Create a backend route like this:
ng generate resource example
This will create a class named Example at src/entities/example.ts
and export it from src/entities/index.ts
.
The backend component and data service will be created in src/server/example
, and the backend REST routes
will be added to src/server/server-routing.module.ts
.
Building
Run npm start
to build both the browser and server bundles and start the server script when the build
is complete.
Soon
- improved build scripts with file watchers and automatic server restarting when changes are detected
- generate admin CRUD interface and front-end display with
ng generate resource
- generators for website features: authentication, blog/forums, ecommerce, third party services, etc.
- backend email service