0.0.15 • Published 3 years ago

felix-framework v0.0.15

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

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