@saber2pr/nana
Version:
a http-server framework.
99 lines (98 loc) • 2.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/*
* @Author: saber2pr
* @Date: 2019-04-07 22:12:44
* @Last Modified by: saber2pr
* @Last Modified time: 2019-04-14 14:35:50
*/
var http_1 = require("http");
var nana_1 = require("./common/nana");
var createRequestListener_1 = require("./createRequestListener");
var context_1 = require("./type/context");
var event_1 = require("@saber2pr/event");
var log_1 = require("./plugins/log");
var fsModule_1 = require("./modules/fsModule");
var Nana;
(function (Nana) {
/**
* # Nanasaki
* ^o^
*
* @export
* @param {Module[]} mods
* @param {(currentMod: Module, pathFromRoot: string) => void} callback
*/
function love(mods, callback) {
nana_1.nana(mods, callback);
return Nana;
}
Nana.love = love;
/**
* use
*
* @export
* @template T
* @param {Plugin<T>} obj
*/
function use(obj) {
Object.assign(context_1.__ctx, obj);
return Nana;
}
Nana.use = use;
/**
* watch
*
* @export
* @param {logconfig} config
* @returns
*/
function watch(config) {
Object.assign(log_1.__logconfig, config);
return Nana;
}
Nana.watch = watch;
/**
* useModules
*
* @export
* @param {Module[]} mods
*/
function useModules(mods) {
nana_1.nana(mods, function (currentMod, url) { return event_1.subscribe(url, currentMod.service); });
return Nana;
}
Nana.useModules = useModules;
/**
* callback
*
* @export
* @returns
*/
function callback() {
return createRequestListener_1.createServerRequestListener(context_1.__ctx, log_1.__logconfig);
}
Nana.callback = callback;
/**
* server
*
* @export
* @param {Module[]} mods
* @returns
*/
function server(mods) {
useModules([fsModule_1.HTMLIndexModule].concat(mods));
return http_1.createServer(callback());
}
Nana.server = server;
/**
* fileServer
*
* @export
* @returns
*/
function fileServer() {
return server([fsModule_1.HTMLIndexModule, fsModule_1.FsModule]);
}
Nana.fileServer = fileServer;
})(Nana = exports.Nana || (exports.Nana = {}));