UNPKG

read-conf

Version:
86 lines (75 loc) 2.31 kB
var arg, args, getSchemaFile, i, importCwd, j, len, resolve, schemaFile; args = process.argv.slice(2); for (i = j = 0, len = args.length; j < len; i = ++j) { arg = args[i]; arg = args[i]; if (arg[0] === "-") { switch (arg) { case '-h': case "--help": console.log('usage: toDoc (schema file)'); console.log(''); console.log('schema file is optional and defaults to "configSchema.[js|json|coffee|ts]"'); console.log('in "src/", "lib/", "/"'); process.exit(); } } else { schemaFile = arg; } } importCwd = require("import-cwd"); importCwd.silent("coffee-script/register"); importCwd.silent("coffeescript/register"); importCwd.silent("ts-node/register"); importCwd.silent("babel-register"); ({resolve} = require("path")); if (!schemaFile) { getSchemaFile = (async() => { var ext, exts, files, folder, folders, k, l, len1, len2, pathExists, readdir, results, stat, tmp; ({stat, readdir, pathExists} = require("fs-extra")); folders = ["./src", "./lib", process.cwd()]; exts = ["js", "coffee", "ts", "json"]; results = []; for (k = 0, len1 = folders.length; k < len1; k++) { folder = folders[k]; folder = resolve(folder); if ((await pathExists(folder))) { files = (await readdir(folder)); for (l = 0, len2 = exts.length; l < len2; l++) { ext = exts[l]; if (~files.indexOf(tmp = `configSchema.${ext}`)) { schemaFile = resolve(folder, tmp); break; } } if (schemaFile) { break; } else { results.push(void 0); } } else { results.push(void 0); } } return results; })(); } else { schemaFile = resolve(schemaFile); getSchemaFile = Promise.resolve(); } getSchemaFile.then(() => { var addToSchema, configSchema, getAdder, schema, toDoc; schema = require(schemaFile); ({toDoc, getAdder} = require("./validate")); if ((configSchema = schema.configSchema) != null) { addToSchema = getAdder(schema = {}); if (typeof configSchema === "function") { configSchema(addToSchema, schema); } else { addToSchema(configSchema); } } return console.log(toDoc(schema)); }).catch((e) => { return console.log(e); });