useless
Version:
Use Less. Do More. JavaScript on steroids.
59 lines (42 loc) • 1.89 kB
JavaScript
;
const _ = require ('underscore')
const fs = require ('fs'),
path = require ('path'),
process = require ('process'),
getSource = require ('get-source')
module.exports = $trait ({
$defaults: {
sourceRoot: process.cwd ()
},
beforeInit () {
if (!this.requireDeveloper) {
this.requireDeveloper = _.identity
log.warn ("Implement requireDeveloper() to restrict access to source code API") }
},
'/api/source/:file': {
async get () {
await this.requireDeveloper ()
this.allowOrigin ('*')
$http.headers['Content-Type'] =
$http.mime.guessFromFileName ($http.env.file)
const src = getSource (($http.env.file[0] === '/')
? $http.env.file
: path.join (this.sourceRoot, $http.env.file))
if (src.error) {
throw src.error }
else {
return src.text }
},
// post () { return __.seq (
// this.requireDeveloper,
// this.allowOrigin ('*'),
// this.receiveJSON,
// function (input) {
// return new Promise (then => {
// log.w ('Writing source:', $http.env.file)
// SourceFiles.write (
// path.join (this.sourceRoot, $http.env.file),
// input.text,
// then.arity0) }) }) }
},
})