Extensible typescript ORM framework designed for MEAN stack
npm install spirit.io

spirit.io with Typescript, the Typescript compilation is done by common typescript compiler tsc.
index.js:
js
"use strict";
const fpromise = require('f-promise');
let MyApp = require('./lib/app').MyApp;
let app = new MyApp().init();
app.on('initialized', () => {
fpromise.run(() => {
app.start();
}).catch(err => {
console.error(err.stack);
});
});
`
app.ts:
`ts
import { Server } from 'spirit.io/lib/application';
import { MongodbConnector } from 'spirit.io-mongodb-connector/lib/connector';
import { run } from 'f-promise';
export class MyApp extends Server {
constructor(config?: any) {
if (!config) config = require('./config').config;
super(config);
}
init() {
run(() => {
console.log("\n========== Initialize server begins ============");
// create a connector. Here mongodb for instance
let mongoConnector = new MongodbConnector(this.config.connectors.mongodb);
this.addConnector(mongoConnector);
console.log("Mongo connector config: " + JSON.stringify(mongoConnector.config, null, 2));
// register your own models
this.contract.registerModelsByPath(path.resolve(path.join(__dirname, './models')));
// load models
super.init();
this.on('initialized', () => {
// Do your stuff here !!!
console.log("========== Server initialized ============\n");
});
}).catch(err => {
console.error(err.stack);
})
return this;
}
start(port?: number) {
super.start(port || this.config.expressPort);
}
}
`
$3
To use spirit.io, you need :
* Node.JS 6.X
* At least one spirit.io connector. eg: spirit.io-mongodb-connector
* The connectors associated runtimes. eg: MongoDB server
$3
Installing spirit.io is simple as :
`sh
to install the framework
npm install --save spirit.io
to install connectors
npm install --save spirit.io-mongodb-connector
...
`
Running the tests
`sh
npm test
``