Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
dig | 45dd036ab8 |
|
@ -0,0 +1,22 @@
|
|||
#! /usr/bin/env node
|
||||
|
||||
const flags = require('minimist')( process.argv.slice(2) )
|
||||
const params = flags._
|
||||
delete flags._
|
||||
const moduleStr = params.shift()
|
||||
const [ esmodule, exported ] = (moduleStr || '').split(':')
|
||||
const isCli = process.cwd() == __dirname
|
||||
|
||||
flags.verbose || flags.v && console.log( params, flags, esmodule || require('./package.json').module, exported, __dirname, isCli )
|
||||
|
||||
module.exports =
|
||||
require('esm')( module, { await: true } )
|
||||
( `./${isCli && esmodule ? esmodule : require('./package.json').module}` )
|
||||
|
||||
let toCall = module.exports[ exported || 'default' ]
|
||||
let returned = typeof toCall == 'function' ? toCall( flags, ...params ) : toCall
|
||||
returned instanceof Promise
|
||||
? returned.then( ret=> console.log(ret), e=>console.error(e) )
|
||||
: console.log( returned )
|
||||
|
||||
// module.exports = mod
|
|
@ -0,0 +1,38 @@
|
|||
var args = require('minimist')( process.argv.slice(2) ),
|
||||
express = require('express'),
|
||||
morgan = require('morgan'),
|
||||
// bodyParser = require('body-parser'),
|
||||
static = require('serve-static'),
|
||||
index = require('serve-index'),
|
||||
port = args.p || args.port || 80,
|
||||
app = express()
|
||||
|
||||
console.log( args )
|
||||
|
||||
//CORS middleware
|
||||
var allowCrossDomain = function(req, res, next) {
|
||||
res.header('Access-Control-Allow-Origin', '*');
|
||||
res.header('Access-Control-Allow-Methods', 'GET');
|
||||
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
||||
next();
|
||||
}
|
||||
|
||||
app.use( allowCrossDomain )
|
||||
//app.engine('html', ejs.renderFile);
|
||||
//app.set('views', __dirname + '/views');
|
||||
|
||||
//app.use( bodyParser )
|
||||
//app.use(express.cookieParser());
|
||||
//app.use(express.methodOverride());
|
||||
app.use( morgan('combined') )
|
||||
//app.use(express.session({ secret: 'c0ns0l3F0r3v3r' }));
|
||||
//app.use(passport.initialize());
|
||||
//app.use(passport.session());
|
||||
//app.use( app.router )
|
||||
app.use( static(__dirname + '/' + args._[0]), index(__dirname + '/' + args._[0], {'icons': true}) )
|
||||
|
||||
|
||||
app.listen( port );
|
||||
|
||||
console.log( "Started static web server: " + args._[0] )
|
||||
console.log( "Server listening on Port: "+port )
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"name": "express-cli",
|
||||
"version": "0.1.0",
|
||||
"description": "Command line tool to launch express servers with ease",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"bin": {
|
||||
"express": "./server.js"
|
||||
},
|
||||
"preferGlobal": true,
|
||||
"main": "esm",
|
||||
"module": "server",
|
||||
"dependencies": {
|
||||
"body-parser": "^1.18.2",
|
||||
"colors": "^1.2.3",
|
||||
"esm": "^3.0.84",
|
||||
"express": "^4.16.3",
|
||||
"minimist": "^1.2.0",
|
||||
"morgan": "^1.9.1",
|
||||
"serve-index": "^1.9.1",
|
||||
"serve-static": "^1.13.2",
|
||||
"tagol": "^1.0.0"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start-es": "esm server",
|
||||
"start": "node server.js"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://git.p2p.legal/dig/esm-cli/issues"
|
||||
},
|
||||
"homepage": "https://git.p2p.legal/dig/express-cli",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://git.p2p.legal/dig/express-cli.git"
|
||||
},
|
||||
"keywords": [
|
||||
"express",
|
||||
"server",
|
||||
"http",
|
||||
"cli",
|
||||
"commandline"
|
||||
],
|
||||
"author": {
|
||||
"name": "Thomas Di Grégorio",
|
||||
"email": "dig@p2p.legal"
|
||||
},
|
||||
"license": "GPL-3.0"
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
//CORS middleware
|
||||
export default (req, res, next)=> {
|
||||
res.header('Access-Control-Allow-Origin', '*')
|
||||
res.header('Access-Control-Allow-Methods', 'GET')
|
||||
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
|
||||
next()
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
var args = require('minimist')( process.argv.slice(2) ),
|
||||
http = require('http'),
|
||||
express = require('express'),
|
||||
port = args.p || args.port || 80,
|
||||
app = express();
|
||||
|
||||
console.log( args );
|
||||
|
||||
//CORS middleware
|
||||
var allowCrossDomain = function(req, res, next) {
|
||||
res.header('Access-Control-Allow-Origin', '*');
|
||||
res.header('Access-Control-Allow-Methods', 'GET');
|
||||
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
||||
next();
|
||||
}
|
||||
|
||||
app.use( allowCrossDomain );
|
||||
//app.engine('html', ejs.renderFile);
|
||||
//app.set('views', __dirname + '/views');
|
||||
//app.use(express.static(__dirname + '/devingfx.com'));
|
||||
|
||||
//express.logger.format('customLog', utils.customLog);
|
||||
//app.use( allowCrossDomain );
|
||||
app.use(express.bodyParser());
|
||||
app.use(express.cookieParser());
|
||||
app.use(express.methodOverride());
|
||||
app.use(express.logger());
|
||||
app.use(express.session({ secret: 'c0ns0l3F0r3v3r' }));
|
||||
//app.use( allowCrossDomain );
|
||||
//app.use(passport.initialize());
|
||||
//app.use(passport.session());
|
||||
app.use(app.router);
|
||||
app.use( express.static(__dirname + '/' + args._[0]) );
|
||||
|
||||
//app.options('portfolio.json', allowCrossDomain );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
app.configure("development", function() {
|
||||
app.use(express.errorHandler({
|
||||
dumpExceptions: true,
|
||||
showStack: true
|
||||
}));
|
||||
});
|
||||
|
||||
app.configure("production", function() {
|
||||
app.use(express.errorHandler());
|
||||
});
|
||||
|
||||
app.listen( port );
|
||||
|
||||
console.log( "Started static web server: " + args._[0] );
|
||||
console.log( "Server listening on Port: "+port );
|
||||
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
#!/usr/bin/env esm
|
||||
|
||||
import 'tagol'
|
||||
import 'colors'
|
||||
//import minimist from 'minimist'
|
||||
import express from 'express'
|
||||
global.express = express
|
||||
import morgan from 'morgan'
|
||||
import serveCors from './serve-cors'
|
||||
//import sstatic from 'serve-static'
|
||||
import serveIndex from 'serve-index'
|
||||
import { resolve } from 'path'
|
||||
|
||||
export default async function({
|
||||
0: folder = '.'
|
||||
, h, help = h
|
||||
, p, port = p || 80
|
||||
, s, statik = s
|
||||
, i, index = statik && ( i || true )
|
||||
, c, cors = c
|
||||
, r, routes = r
|
||||
, v, verbose = v
|
||||
})
|
||||
{
|
||||
|
||||
log.verbose = (ss,...pp)=> verbose && log( ss,...pp )
|
||||
|
||||
var args = {
|
||||
help
|
||||
, port
|
||||
, statik
|
||||
, index
|
||||
, cors
|
||||
, routes
|
||||
, folder
|
||||
}
|
||||
|
||||
/*
|
||||
console.log(args)
|
||||
return;
|
||||
//*/
|
||||
|
||||
|
||||
help && log `Usage: express [options] path
|
||||
Options:
|
||||
-h, --help Show this help
|
||||
-p, --port Set the port to listen (default: 80)
|
||||
-s, --static=[folder] Serve static content. If true the folder used
|
||||
is '.' otherwise the given folder is used.
|
||||
-i, --index Generate index when a folder is requested
|
||||
-c, --cors
|
||||
-r, --routes=[path] Loads an express router module
|
||||
-v, --verbose Show additional informations
|
||||
`
|
||||
help && process.exit()
|
||||
|
||||
|
||||
process.cwd( folder )
|
||||
|
||||
log.verbose `${args}o
|
||||
__dirname = ${__dirname}s
|
||||
process.cwd() = ${process.cwd()}s
|
||||
resolve(process.cwd(),folder) = ${resolve(process.cwd(),folder)}s
|
||||
`
|
||||
|
||||
|
||||
|
||||
const resolved = {
|
||||
static: resolve( folder, typeof statik == 'undefined' || statik === true ? '.' : statik ),
|
||||
routes: resolve( folder, typeof routes == 'undefined' || routes === true ? 'routes.js' : routes ),
|
||||
},
|
||||
app = express()
|
||||
|
||||
|
||||
//app.engine('html', ejs.renderFile);
|
||||
//app.set('views', __dirname + '/views');
|
||||
|
||||
//app.use( bodyParser )
|
||||
//app.use(express.cookieParser());
|
||||
//app.use(express.methodOverride());
|
||||
app.use( morgan('combined') )
|
||||
//app.use(express.session({ secret: 'c0ns0l3F0r3v3r' }));
|
||||
//app.use(passport.initialize());
|
||||
//app.use(passport.session());
|
||||
//app.use( app.router )
|
||||
|
||||
|
||||
|
||||
cors && app.use( serveCors )
|
||||
cors && log `using ${'CORS'.cyan}s`
|
||||
|
||||
statik && app.use( express.static(resolved.static), index && serveIndex(resolved.static, {'icons': true, view: 'details'}) )
|
||||
statik && log `Started static web server:
|
||||
${resolved.static.cyan}s`
|
||||
index && log `generating ${'index'.cyan}s pages from folders`
|
||||
|
||||
//console.log( (await import(resolved.routes)).default )
|
||||
routes && app.use( '/', (await import(resolved.routes)).default )
|
||||
routes && log `Routes file loaded: ${resolved.routes.cyan}s`
|
||||
|
||||
app.listen( port )
|
||||
log `Server listening on Port: ${(''+port).yellow}s`
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
import 'log'
|
||||
import 'colors'
|
||||
import minimist from 'minimist'
|
||||
import express from 'express'
|
||||
global.express = express
|
||||
import morgan from 'morgan'
|
||||
import serveCors from './serve-cors'
|
||||
//import sstatic from 'serve-static'
|
||||
import serveIndex from 'serve-index'
|
||||
import { resolve } from 'path'
|
||||
|
||||
const args = minimist( process.argv.slice(2) ),
|
||||
help = args.help || args.h,
|
||||
port = args.port || args.p || 80,
|
||||
statik = args.static || args.s,
|
||||
index = statik && ( args.index || args.i || true ),
|
||||
cors = args.cors || args.c,
|
||||
routes = args.routes || args.r,
|
||||
folder = args._[0] || ''
|
||||
|
||||
help && log `Usage: express [options] path
|
||||
Options:
|
||||
-h, --help Show this help
|
||||
-p, --port Set the port to listen (default: 80)
|
||||
-s, --static=[folder] Serve static content. If true the folder used
|
||||
is '.' otherwise the given folder is used.
|
||||
-i, --index Generate index when a folder is requested
|
||||
-c, --cors
|
||||
-r, --routes=[path] Loads an express router module
|
||||
`
|
||||
help && process.exit()
|
||||
|
||||
process.cwd( folder )
|
||||
|
||||
console.log( args, __dirname, process.cwd(), resolve(process.cwd(),folder) )
|
||||
|
||||
|
||||
|
||||
const resolved = {
|
||||
static: resolve( folder, typeof statik == 'boolean' ? '.' : statik ),
|
||||
routes: resolve( folder, typeof routes == 'boolean' ? 'routes.js' : routes ),
|
||||
},
|
||||
app = express()
|
||||
|
||||
cors && app.use( serveCors )
|
||||
//app.engine('html', ejs.renderFile);
|
||||
//app.set('views', __dirname + '/views');
|
||||
|
||||
//app.use( bodyParser )
|
||||
//app.use(express.cookieParser());
|
||||
//app.use(express.methodOverride());
|
||||
app.use( morgan('combined') )
|
||||
//app.use(express.session({ secret: 'c0ns0l3F0r3v3r' }));
|
||||
//app.use(passport.initialize());
|
||||
//app.use(passport.session());
|
||||
//app.use( app.router )
|
||||
|
||||
//console.log( (await import(resolved.routes)).default )
|
||||
routes && app.use( '/', (await import(resolved.routes)).default )
|
||||
|
||||
statik && app.use( express.static(resolved.static), index && serveIndex(resolved.static, {'icons': true, view: 'details'}) )
|
||||
|
||||
app.listen( port )
|
||||
|
||||
statik && log `Started static web server: ${resolved.static.cyan}s`
|
||||
routes && log `Routes file loaded: ${resolved.routes.cyan}s`
|
||||
log `Server listening on Port: ${(''+port).yellow}s`
|
Loading…
Reference in New Issue