0.0.15 • Published 3 years ago
felix-framework v0.0.15
Felix Framework
To Run Felix Webserver, ensure that you call ./src/startFelixServer from your app.js
Getting Started
npm i Felix-Framework --save
Environmental Variables required
- ENVIRONMENT : indicates what environment you are running the application from. If environment is not equal to LOCAL, then swagger docs will not be available.
- TYPEORM_HOST
- TYPEORM_PORT
- TYPEORM_USERNAME
- TYPEORM_PASSWORD
- TYPEORM_DATABASE
- USE_SSL
Features
Google Cloud Storage
import { loadDocument } from "felix-framework/storage/google";
let data: string = await loadDocument(fileName,'BucketName');
SFTP Client
import { transmitData } from "felix-framework/sftp/transmit"
let sftpParams = {
port: 22,
host: 12.32.56.23,
username: "user"
password: "pass",
}
transmitData("Sample Text To Transmit",Filename.txt,"path/to/save", sftpParams);
Circuit Breaker
Utilizing the circuit breaker pattern.
import { CircuitBreaker} from "felix-framework/circuitBreaker/circuitBreaker"
const circuitBreaker = new CircuitBreaker({
method: "get",
url: "http://localhost:3000"
});
circuitBreaker
.exec({body:{}, headers: {}})
.then( console.log )
.catch( console.error )
Logger
Learn About Winston Logging: https://www.npmjs.com/package/winston
HTTP/HTTPS Server
Runs speedy on Express. Optionally, you can utilize only HTTP by setting environmental variable USE_SSL=FALSE
import dotenv from "dotenv";
dotenv.config({ path: ".env" });
import {startFelixServer} from "felix-framework/startFelixServer"
startFelixServer(8443).then(function(app:any){
//Do what you need with express app.
});
Creating a certificate
openssl req -x509 -new -nodes -days 36500 -keyout selfsigned.key -out selfsigned.crt -config openssl.cnf
Once generated, you will need to import the certificate into your trust store for local SSL dev.
Customized Routing Controller Configurations
Learn About Routing Controllers: https://github.com/typestack/routing-controllers#readme
SwaggerUI
Swagger API docs available at : https://{URL}/docs Note* Docs are not available in production environment, and only available when you are using the HTTP(S) server.
How do I publish a package?
npm login
npm publish