@node-cli/static-server 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/defaults.d.ts +0 -3
- package/dist/defaults.js +0 -5
- package/dist/defaults.js.map +1 -1
- package/dist/parse.js +2 -4
- package/dist/parse.js.map +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/utilities.js +1 -2
- package/dist/utilities.js.map +1 -1
- package/package.json +3 -3
package/dist/defaults.d.ts
CHANGED
package/dist/defaults.js
CHANGED
package/dist/defaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.ts"],"sourcesContent":["export const defaults = {\n\tcache: 0,\n\tcors: false,\n\tgzip: true,\n\
|
|
1
|
+
{"version":3,"sources":["../src/defaults.ts"],"sourcesContent":["export const defaults = {\n\tcache: 0,\n\tcors: false,\n\tgzip: true,\n\thttp2: false,\n\tlogs: false,\n\topen: false,\n\tpath: `${process.cwd()}/`,\n\tport: 8080,\n};\n"],"names":["defaults","cache","cors","gzip","http2","logs","open","path","process","cwd","port"],"mappings":"AAAA,OAAO,MAAMA,WAAW;IACvBC,OAAO;IACPC,MAAM,KAAK;IACXC,MAAM,IAAI;IACVC,OAAO,KAAK;IACZC,MAAM,KAAK;IACXC,MAAM,KAAK;IACXC,MAAM,CAAC,EAAEC,QAAQC,GAAG,GAAG,CAAC,CAAC;IACzBC,MAAM;AACP,EAAE"}
|
package/dist/parse.js
CHANGED
|
@@ -2,6 +2,7 @@ import { displayErrorMessages, meowOptionsHelper, meowParserHelper, shallowMerge
|
|
|
2
2
|
import { defaults } from "./defaults.js";
|
|
3
3
|
import fs from "fs-extra";
|
|
4
4
|
import meow from "meow";
|
|
5
|
+
import path from "node:path";
|
|
5
6
|
const { helpText , options } = meowOptionsHelper({
|
|
6
7
|
flags: {
|
|
7
8
|
cache: {
|
|
@@ -73,10 +74,7 @@ const customCfg = cli.flags;
|
|
|
73
74
|
if (cli.input.length > 0) {
|
|
74
75
|
let customPath = cli.input[0];
|
|
75
76
|
if (fs.pathExistsSync(customPath)) {
|
|
76
|
-
|
|
77
|
-
customPath += "/";
|
|
78
|
-
}
|
|
79
|
-
customCfg.path = customPath;
|
|
77
|
+
customCfg.path = path.resolve(customPath);
|
|
80
78
|
} else {
|
|
81
79
|
displayErrorMessages([
|
|
82
80
|
`Folder ${customPath} does not exist!`
|
package/dist/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/parse.ts"],"sourcesContent":["import {\n\tdisplayErrorMessages,\n\tmeowOptionsHelper,\n\tmeowParserHelper,\n\tshallowMerge,\n} from \"./utilities.js\";\n\nimport { defaults } from \"./defaults.js\";\nimport fs from \"fs-extra\";\nimport meow from \"meow\";\n\nconst { helpText, options } = meowOptionsHelper({\n\tflags: {\n\t\tcache: {\n\t\t\tshortFlag: \"c\",\n\t\t\tdefault: defaults.cache,\n\t\t\tdescription: \"Time in seconds for caching files\",\n\t\t\ttype: \"number\",\n\t\t},\n\t\tcors: {\n\t\t\tshortFlag: \"C\",\n\t\t\tdefault: defaults.cors,\n\t\t\tdescription: \"Set CORS headers to * to allow requests from any origin\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\tgzip: {\n\t\t\tshortFlag: \"g\",\n\t\t\tdefault: defaults.gzip,\n\t\t\tdescription: \"Enable GZIP compression\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\thelp: {\n\t\t\tshortFlag: \"h\",\n\t\t\tdescription: \"Display help instructions\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\thttp2: {\n\t\t\tshortFlag: \"H\",\n\t\t\tdefault: defaults.http2,\n\t\t\tdescription: \"Set HTTP to version 2\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\tlogs: {\n\t\t\tshortFlag: \"l\",\n\t\t\tdefault: defaults.logs,\n\t\t\tdescription: \"Log HTTP requests at the prompt\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\topen: {\n\t\t\tshortFlag: \"o\",\n\t\t\tdefault: defaults.open,\n\t\t\tdescription: \"Open in your default browser\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\tport: {\n\t\t\tshortFlag: \"p\",\n\t\t\tdefault: defaults.port,\n\t\t\tdescription: \"Port to listen on\",\n\t\t\ttype: \"number\",\n\t\t},\n\t\tversion: {\n\t\t\tshortFlag: \"v\",\n\t\t\tdescription: \"Output the current version\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t},\n\tparameters: {\n\t\tpath: {\n\t\t\tdefault: \"current folder\",\n\t\t\tdescription: \"the path to serve files from\",\n\t\t},\n\t},\n\tusage: true,\n});\nconst cli = meow(helpText, options);\nmeowParserHelper({ cli });\n\nconst customCfg = cli.flags;\nif (cli.input.length > 0) {\n\tlet customPath: string = cli.input[0];\n\tif (fs.pathExistsSync(customPath)) {\n\t\
|
|
1
|
+
{"version":3,"sources":["../src/parse.ts"],"sourcesContent":["import {\n\tdisplayErrorMessages,\n\tmeowOptionsHelper,\n\tmeowParserHelper,\n\tshallowMerge,\n} from \"./utilities.js\";\n\nimport { defaults } from \"./defaults.js\";\nimport fs from \"fs-extra\";\nimport meow from \"meow\";\nimport path from \"node:path\";\n\nconst { helpText, options } = meowOptionsHelper({\n\tflags: {\n\t\tcache: {\n\t\t\tshortFlag: \"c\",\n\t\t\tdefault: defaults.cache,\n\t\t\tdescription: \"Time in seconds for caching files\",\n\t\t\ttype: \"number\",\n\t\t},\n\t\tcors: {\n\t\t\tshortFlag: \"C\",\n\t\t\tdefault: defaults.cors,\n\t\t\tdescription: \"Set CORS headers to * to allow requests from any origin\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\tgzip: {\n\t\t\tshortFlag: \"g\",\n\t\t\tdefault: defaults.gzip,\n\t\t\tdescription: \"Enable GZIP compression\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\thelp: {\n\t\t\tshortFlag: \"h\",\n\t\t\tdescription: \"Display help instructions\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\thttp2: {\n\t\t\tshortFlag: \"H\",\n\t\t\tdefault: defaults.http2,\n\t\t\tdescription: \"Set HTTP to version 2\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\tlogs: {\n\t\t\tshortFlag: \"l\",\n\t\t\tdefault: defaults.logs,\n\t\t\tdescription: \"Log HTTP requests at the prompt\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\topen: {\n\t\t\tshortFlag: \"o\",\n\t\t\tdefault: defaults.open,\n\t\t\tdescription: \"Open in your default browser\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\tport: {\n\t\t\tshortFlag: \"p\",\n\t\t\tdefault: defaults.port,\n\t\t\tdescription: \"Port to listen on\",\n\t\t\ttype: \"number\",\n\t\t},\n\t\tversion: {\n\t\t\tshortFlag: \"v\",\n\t\t\tdescription: \"Output the current version\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t},\n\tparameters: {\n\t\tpath: {\n\t\t\tdefault: \"current folder\",\n\t\t\tdescription: \"the path to serve files from\",\n\t\t},\n\t},\n\tusage: true,\n});\nconst cli = meow(helpText, options);\nmeowParserHelper({ cli });\n\nconst customCfg = cli.flags;\nif (cli.input.length > 0) {\n\tlet customPath: string = cli.input[0];\n\tif (fs.pathExistsSync(customPath)) {\n\t\tcustomCfg.path = path.resolve(customPath);\n\t} else {\n\t\tdisplayErrorMessages([`Folder ${customPath} does not exist!`]);\n\t}\n}\n\n/**\n * Merging default configuration with the\n * preferences shared by the user.\n */\nconst config: {\n\tcache?: number;\n\tcors?: boolean;\n\thttp2?: boolean;\n\tgzip?: boolean;\n\tlogs?: boolean;\n\topen?: boolean;\n\tpath?: string;\n\tport?: number;\n} = shallowMerge(defaults, customCfg);\n\nexport { config };\n"],"names":["displayErrorMessages","meowOptionsHelper","meowParserHelper","shallowMerge","defaults","fs","meow","path","helpText","options","flags","cache","shortFlag","default","description","type","cors","gzip","help","http2","logs","open","port","version","parameters","usage","cli","customCfg","input","length","customPath","pathExistsSync","resolve","config"],"mappings":"AAAA,SACCA,oBAAoB,EACpBC,iBAAiB,EACjBC,gBAAgB,EAChBC,YAAY,QACN,iBAAiB;AAExB,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,OAAOC,QAAQ,WAAW;AAC1B,OAAOC,UAAU,OAAO;AACxB,OAAOC,UAAU,YAAY;AAE7B,MAAM,EAAEC,SAAQ,EAAEC,QAAO,EAAE,GAAGR,kBAAkB;IAC/CS,OAAO;QACNC,OAAO;YACNC,WAAW;YACXC,SAAST,SAASO,KAAK;YACvBG,aAAa;YACbC,MAAM;QACP;QACAC,MAAM;YACLJ,WAAW;YACXC,SAAST,SAASY,IAAI;YACtBF,aAAa;YACbC,MAAM;QACP;QACAE,MAAM;YACLL,WAAW;YACXC,SAAST,SAASa,IAAI;YACtBH,aAAa;YACbC,MAAM;QACP;QACAG,MAAM;YACLN,WAAW;YACXE,aAAa;YACbC,MAAM;QACP;QACAI,OAAO;YACNP,WAAW;YACXC,SAAST,SAASe,KAAK;YACvBL,aAAa;YACbC,MAAM;QACP;QACAK,MAAM;YACLR,WAAW;YACXC,SAAST,SAASgB,IAAI;YACtBN,aAAa;YACbC,MAAM;QACP;QACAM,MAAM;YACLT,WAAW;YACXC,SAAST,SAASiB,IAAI;YACtBP,aAAa;YACbC,MAAM;QACP;QACAO,MAAM;YACLV,WAAW;YACXC,SAAST,SAASkB,IAAI;YACtBR,aAAa;YACbC,MAAM;QACP;QACAQ,SAAS;YACRX,WAAW;YACXE,aAAa;YACbC,MAAM;QACP;IACD;IACAS,YAAY;QACXjB,MAAM;YACLM,SAAS;YACTC,aAAa;QACd;IACD;IACAW,OAAO,IAAI;AACZ;AACA,MAAMC,MAAMpB,KAAKE,UAAUC;AAC3BP,iBAAiB;IAAEwB;AAAI;AAEvB,MAAMC,YAAYD,IAAIhB,KAAK;AAC3B,IAAIgB,IAAIE,KAAK,CAACC,MAAM,GAAG,GAAG;IACzB,IAAIC,aAAqBJ,IAAIE,KAAK,CAAC,EAAE;IACrC,IAAIvB,GAAG0B,cAAc,CAACD,aAAa;QAClCH,UAAUpB,IAAI,GAAGA,KAAKyB,OAAO,CAACF;IAC/B,OAAO;QACN9B,qBAAqB;YAAC,CAAC,OAAO,EAAE8B,WAAW,gBAAgB,CAAC;SAAC;IAC9D,CAAC;AACF,CAAC;AAED;;;CAGC,GACD,MAAMG,SASF9B,aAAaC,UAAUuB;AAE3B,SAASM,MAAM,GAAG"}
|
package/dist/server.d.ts
CHANGED
package/dist/server.js
CHANGED
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/server.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { cert, key } from \"./certs.js\";\n\nimport Fastify from \"fastify\";\nimport boxen from \"boxen\";\nimport { config } from \"./parse.js\";\nimport fastifyCache from \"@fastify/caching\";\nimport fastifyCompress from \"@fastify/compress\";\nimport fastifyCors from \"@fastify/cors\";\nimport fastifyLogs from \"./logs.js\";\nimport fastifyStatic from \"@fastify/static\";\nimport kleur from \"kleur\";\nimport { logger } from \"./utilities.js\";\nimport open from \"open\";\nimport portfinder from \"portfinder\";\n\nconst fastifyOptions: {\n\tdisableRequestLogging?: boolean;\n\thttp2?: boolean;\n\thttps?: any;\n\tlogger?: any;\n} = {\n\tdisableRequestLogging: true,\n};\n\nif (config.logs) {\n\tfastifyOptions.logger = {\n\t\tlevel: \"info\",\n\t\ttransport: {\n\t\t\ttarget: \"pino-pretty\",\n\t\t\toptions: {\n\t\t\t\thideObject: true,\n\t\t\t\ttranslateTime: \"SYS:standard\",\n\t\t\t\tignore: \"pid,hostname,reqId,resTime,resTimeMs,level\",\n\t\t\t},\n\t\t},\n\t};\n}\n\nif (config.http2) {\n\tfastifyOptions.http2 = true;\n\tfastifyOptions.https = { key, cert };\n}\n\nconst fastify = Fastify(fastifyOptions);\n\nif (config.logs) {\n\tfastify.register(fastifyLogs);\n}\n\nif (config.gzip) {\n\tfastify.register(fastifyCompress, {\n\t\tglobal: true,\n\t\tencodings: [\"gzip\", \"deflate\", \"br\", \"identity\"],\n\t});\n}\n\nif (config.cors) {\n\tfastify.register(fastifyCors);\n}\n\nconst fastifyCacheOptions: {\n\texpiresIn?: number;\n\tserverExpiresIn?: number;\n\tprivacy?: any;\n} = {};\n\nif (config.cache > 0) {\n\tfastifyCacheOptions.expiresIn = config.cache;\n\tfastifyCacheOptions.serverExpiresIn = config.cache;\n\tfastifyCacheOptions.privacy = fastifyCache.privacy.PUBLIC;\n} else {\n\tfastifyCacheOptions.privacy = fastifyCache.privacy.NOCACHE;\n}\n\nfastify.register(fastifyCache, fastifyCacheOptions);\n\nfastify.register(fastifyStatic, {\n\troot: config.path,\n});\n\n/**\n * Run the server!\n */\nlet port: number,\n\tportMessage = \"\";\nconst start = async () => {\n\ttry {\n\t\tport = await portfinder.getPortPromise({ port: Number(config.port) });\n\t\tif (port !== config.port) {\n\t\t\tportMessage = `\\n\\n${kleur.yellow(\n\t\t\t\t`Warning: port ${config.port} was not available!`\n\t\t\t)}`;\n\t\t\tconfig.port = port;\n\t\t}\n\t\tawait fastify.listen({ port: config.port });\n\n\t\tconst url = `${config.http2 ? \"https\" : \"http\"}://localhost:${config.port}`;\n\t\tconst messages = [\n\t\t\t`${kleur.cyan(\"Static Server\")} is up and running!`,\n\t\t\t\"\",\n\t\t\t`${kleur.cyan(url)}`,\n\t\t\t\"\",\n\t\t\t`Hit CTRL+C to shut it down.${portMessage}`,\n\t\t];\n\n\t\tlogger.log();\n\t\tlogger.log(\n\t\t\tboxen(messages.join(\"\\n\"), {\n\t\t\t\talign: \"center\",\n\t\t\t\tborderColor: \"yellow\",\n\t\t\t\tpadding: 1,\n\t\t\t})\n\t\t);\n\n\t\tif (config.open) {\n\t\t\tawait open(url, {\n\t\t\t\turl: true,\n\t\t\t\twait: false,\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tfastify.log.error(error);\n\t\t// eslint-disable-next-line unicorn/no-process-exit\n\t\tprocess.exit(1);\n\t}\n};\nstart();\n"],"names":["cert","key","Fastify","boxen","config","fastifyCache","fastifyCompress","fastifyCors","fastifyLogs","fastifyStatic","kleur","logger","open","portfinder","fastifyOptions","disableRequestLogging","logs","level","transport","target","options","hideObject","translateTime","ignore","http2","https","fastify","register","gzip","global","encodings","cors","fastifyCacheOptions","cache","expiresIn","serverExpiresIn","privacy","PUBLIC","NOCACHE","root","path","port","portMessage","start","getPortPromise","Number","yellow","listen","url","messages","cyan","log","join","align","borderColor","padding","wait","error","process","exit"],"mappings":"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"}
|
package/dist/utilities.js
CHANGED
|
@@ -161,8 +161,7 @@ export const meowParserHelper = (parameters)=>{
|
|
|
161
161
|
if (restrictions && restrictions.length > 0) {
|
|
162
162
|
for (const rule of restrictions){
|
|
163
163
|
if (rule.test(cli.flags)) {
|
|
164
|
-
|
|
165
|
-
console.error(rule.message(cli.flags));
|
|
164
|
+
logger.error(rule.message(cli.flags));
|
|
166
165
|
process.exit(rule.exit);
|
|
167
166
|
}
|
|
168
167
|
}
|
package/dist/utilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utilities.ts"],"sourcesContent":["/* eslint-disable unicorn/no-process-exit */\n\nimport { Logger } from \"@node-cli/logger\";\nimport Table from \"cli-table3\";\nimport _ from \"lodash\";\nimport boxen from \"boxen\";\nimport kleur from \"kleur\";\nimport open from \"open\";\nimport path from \"node:path\";\nimport portfinder from \"portfinder\";\nexport const logger = new Logger({\n\tboring: process.env.NODE_ENV === \"test\",\n});\n\n/**\n * Converts the first character of string to upper case\n * @param {string} str the string to convert\n * @returns {string} the converted string\n */\nconst upperFirst = (string_: string | any[]): string =>\n\tstring_[0].toUpperCase() + string_.slice(1);\n\n/**\n * Wrapper method for lodash `merge()` and `mergeWith()` methods.\n *\n * Without the `customizer` function, this method recursively merges own and inherited\n * enumerable string keyed properties of source objects into the destination object.\n * Source properties that resolve to undefined are skipped if a destination value exists.\n * Array and plain object properties are merged recursively. Other objects and value\n * types are overridden by assignment. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * With the `customizer` function, the behavior is the same except that `customizer` is\n * invoked to produce the merged values of the destination and source properties.\n * If customizer returns undefined, merging is handled by the `shallowMerge` instead.\n * The customizer is invoked with six arguments: `(objValue, srcValue, key, object,\n * source, stack)`\n * @param {object} objA\n * @param {object} objB\n * @param {function} customizer\n * @returns {object}\n *\n * !! WARNING: this method will mutate objA\n */\nexport const shallowMerge = (\n\tobjectA: any,\n\tobjectB: any,\n\tcustomizer?: any\n): object => {\n\treturn typeof customizer === \"function\"\n\t\t? _.mergeWith(objectA, objectB, customizer)\n\t\t: _.merge(objectA, objectB);\n};\n\nexport const meowOptionsHelper = (parameters_: {\n\tflags?: any;\n\tparameters?: any;\n\tusage?: any;\n\texamples?: any;\n}) => {\n\tlet { usage, flags, parameters, examples } = parameters_;\n\tlet helpText = \"\",\n\t\tusageText = \"\";\n\tconst commandPrefix = \"> \";\n\tconst options: any = {\n\t\timportMeta: import.meta,\n\t\tallowUnknownFlags: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tdescription: false,\n\t\tflags,\n\t};\n\tconst commonTableConfiguration = {\n\t\tchars: {\n\t\t\tbottom: \"\",\n\t\t\t\"bottom-left\": \"\",\n\t\t\t\"bottom-mid\": \"\",\n\t\t\t\"bottom-right\": \"\",\n\t\t\tleft: \"\",\n\t\t\t\"left-mid\": \"\",\n\t\t\tmid: \"\",\n\t\t\t\"mid-mid\": \"\",\n\t\t\tmiddle: \"\",\n\t\t\tright: \"\",\n\t\t\t\"right-mid\": \"\",\n\t\t\ttop: \"\",\n\t\t\t\"top-left\": \"\",\n\t\t\t\"top-mid\": \"\",\n\t\t\t\"top-right\": \"\",\n\t\t},\n\t\tstyle: {\n\t\t\t\"padding-left\": 0,\n\t\t\t\"padding-right\": 2,\n\t\t},\n\t\twordWrap: true,\n\t};\n\n\tif (usage) {\n\t\tif (typeof usage === \"string\") {\n\t\t\tconst optionalParameters = usage.match(/\\[(.*?)]/g);\n\t\t\tconst requiredParameters = usage.match(/<(.*?)>/g);\n\t\t\tif (optionalParameters) {\n\t\t\t\tfor (const item of optionalParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.green(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (requiredParameters) {\n\t\t\t\tfor (const item of requiredParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.red(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${usage}`;\n\t\t}\n\t\tif (typeof usage === \"boolean\") {\n\t\t\tconst processName = path.basename(process.argv[1]);\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${processName}`;\n\t\t\tif (flags) {\n\t\t\t\tusageText += kleur.green(\" [options]\");\n\t\t\t}\n\t\t}\n\t}\n\n\tif (flags) {\n\t\tconst flagsTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n Options:\\n\";\n\n\t\tfor (const item of Object.keys(flags).sort()) {\n\t\t\tconst flag = flags[item];\n\t\t\tconst aliasCell = flag.shortFlag\n\t\t\t\t? ` ${kleur.blue(`-${flag.shortFlag}, --${item}`)}`\n\t\t\t\t: ` ${kleur.blue(` --${item}`)}`;\n\t\t\tconst defaultCell =\n\t\t\t\tflag.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${flag.default})`)}`;\n\t\t\tflagsTable.push([aliasCell, flag.description, defaultCell]);\n\t\t}\n\t\thelpText += flagsTable.toString();\n\t}\n\n\tif (parameters) {\n\t\tconst parametersTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n\";\n\n\t\tfor (const item of Object.keys(parameters).sort()) {\n\t\t\tconst parameter = parameters[item];\n\t\t\tconst headerCell = ` ${upperFirst(item)}:`;\n\t\t\tconst defaultCell =\n\t\t\t\tparameter.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${parameter.default})`)}`;\n\t\t\tparametersTable.push([headerCell, parameter.description, defaultCell]);\n\t\t\tif (typeof usage === \"boolean\") {\n\t\t\t\tusageText += ` ${kleur.green(`[${item}]`)}`;\n\t\t\t}\n\t\t}\n\t\thelpText += parametersTable.toString();\n\t}\n\n\tif (examples) {\n\t\thelpText += \"\\n\\n Examples:\\n\";\n\t\tfor (const item of examples) {\n\t\t\thelpText += `\\n ${kleur.grey(`${item.comment}`)}\\n`;\n\t\t\thelpText += ` ${kleur.blue(`${commandPrefix}${item.command}`)}\\n`;\n\t\t}\n\t}\n\n\treturn {\n\t\thelpText: `\\n${usageText}${helpText}`,\n\t\toptions,\n\t};\n};\n\nexport const meowParserHelper = (parameters: {\n\tcli: any;\n\trestrictions?: any;\n}) => {\n\tconst { cli, restrictions } = parameters;\n\ttry {\n\t\tif (cli.flags.help) {\n\t\t\tcli.showHelp();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\ttry {\n\t\tif (cli.flags.version) {\n\t\t\tcli.showVersion();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\tif (restrictions && restrictions.length > 0) {\n\t\tfor (const rule of restrictions) {\n\t\t\tif (rule.test(cli.flags)) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(rule.message(cli.flags));\n\t\t\t\tprocess.exit(rule.exit);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * Log multiple error messages at the prompt using `console.error` behind the scenes.\n * @param {string[]} errorMessages array of error message to display line by line\n * @param {number} [exitStatus=0] the process will exit with this value, unless set to false\n */\nexport const displayErrorMessages = (\n\terrorMessages: any[],\n\texitStatus: number = 0\n) => {\n\tif (errorMessages && errorMessages.length > 0) {\n\t\tlogger.log();\n\t\tfor (const message of errorMessages) {\n\t\t\tlogger.error(message);\n\t\t}\n\t\tlogger.log();\n\n\t\tif (typeof exitStatus === \"number\") {\n\t\t\tprocess.exit(exitStatus);\n\t\t}\n\t}\n};\n"],"names":["Logger","Table","_","kleur","path","logger","boring","process","env","NODE_ENV","upperFirst","string_","toUpperCase","slice","shallowMerge","objectA","objectB","customizer","mergeWith","merge","meowOptionsHelper","parameters_","usage","flags","parameters","examples","helpText","usageText","commandPrefix","options","importMeta","allowUnknownFlags","autoHelp","autoVersion","description","commonTableConfiguration","chars","bottom","left","mid","middle","right","top","style","wordWrap","optionalParameters","match","requiredParameters","item","replace","green","red","processName","basename","argv","flagsTable","Object","keys","sort","flag","aliasCell","shortFlag","blue","defaultCell","default","undefined","grey","push","toString","parametersTable","parameter","headerCell","comment","command","meowParserHelper","cli","restrictions","help","showHelp","exit","version","showVersion","length","rule","test","console","error","message","displayErrorMessages","errorMessages","exitStatus","log"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/utilities.ts"],"sourcesContent":["/* eslint-disable unicorn/no-process-exit */\n\nimport { Logger } from \"@node-cli/logger\";\nimport Table from \"cli-table3\";\nimport _ from \"lodash\";\nimport kleur from \"kleur\";\nimport path from \"node:path\";\nexport const logger = new Logger({\n\tboring: process.env.NODE_ENV === \"test\",\n});\n\n/**\n * Converts the first character of string to upper case\n * @param {string} str the string to convert\n * @returns {string} the converted string\n */\nconst upperFirst = (string_: string | any[]): string =>\n\tstring_[0].toUpperCase() + string_.slice(1);\n\n/**\n * Wrapper method for lodash `merge()` and `mergeWith()` methods.\n *\n * Without the `customizer` function, this method recursively merges own and inherited\n * enumerable string keyed properties of source objects into the destination object.\n * Source properties that resolve to undefined are skipped if a destination value exists.\n * Array and plain object properties are merged recursively. Other objects and value\n * types are overridden by assignment. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * With the `customizer` function, the behavior is the same except that `customizer` is\n * invoked to produce the merged values of the destination and source properties.\n * If customizer returns undefined, merging is handled by the `shallowMerge` instead.\n * The customizer is invoked with six arguments: `(objValue, srcValue, key, object,\n * source, stack)`\n * @param {object} objA\n * @param {object} objB\n * @param {function} customizer\n * @returns {object}\n *\n * !! WARNING: this method will mutate objA\n */\nexport const shallowMerge = (\n\tobjectA: any,\n\tobjectB: any,\n\tcustomizer?: any\n): object => {\n\treturn typeof customizer === \"function\"\n\t\t? _.mergeWith(objectA, objectB, customizer)\n\t\t: _.merge(objectA, objectB);\n};\n\nexport const meowOptionsHelper = (parameters_: {\n\tflags?: any;\n\tparameters?: any;\n\tusage?: any;\n\texamples?: any;\n}) => {\n\tlet { usage, flags, parameters, examples } = parameters_;\n\tlet helpText = \"\",\n\t\tusageText = \"\";\n\tconst commandPrefix = \"> \";\n\tconst options: any = {\n\t\timportMeta: import.meta,\n\t\tallowUnknownFlags: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tdescription: false,\n\t\tflags,\n\t};\n\tconst commonTableConfiguration = {\n\t\tchars: {\n\t\t\tbottom: \"\",\n\t\t\t\"bottom-left\": \"\",\n\t\t\t\"bottom-mid\": \"\",\n\t\t\t\"bottom-right\": \"\",\n\t\t\tleft: \"\",\n\t\t\t\"left-mid\": \"\",\n\t\t\tmid: \"\",\n\t\t\t\"mid-mid\": \"\",\n\t\t\tmiddle: \"\",\n\t\t\tright: \"\",\n\t\t\t\"right-mid\": \"\",\n\t\t\ttop: \"\",\n\t\t\t\"top-left\": \"\",\n\t\t\t\"top-mid\": \"\",\n\t\t\t\"top-right\": \"\",\n\t\t},\n\t\tstyle: {\n\t\t\t\"padding-left\": 0,\n\t\t\t\"padding-right\": 2,\n\t\t},\n\t\twordWrap: true,\n\t};\n\n\tif (usage) {\n\t\tif (typeof usage === \"string\") {\n\t\t\tconst optionalParameters = usage.match(/\\[(.*?)]/g);\n\t\t\tconst requiredParameters = usage.match(/<(.*?)>/g);\n\t\t\tif (optionalParameters) {\n\t\t\t\tfor (const item of optionalParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.green(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (requiredParameters) {\n\t\t\t\tfor (const item of requiredParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.red(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${usage}`;\n\t\t}\n\t\tif (typeof usage === \"boolean\") {\n\t\t\tconst processName = path.basename(process.argv[1]);\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${processName}`;\n\t\t\tif (flags) {\n\t\t\t\tusageText += kleur.green(\" [options]\");\n\t\t\t}\n\t\t}\n\t}\n\n\tif (flags) {\n\t\tconst flagsTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n Options:\\n\";\n\n\t\tfor (const item of Object.keys(flags).sort()) {\n\t\t\tconst flag = flags[item];\n\t\t\tconst aliasCell = flag.shortFlag\n\t\t\t\t? ` ${kleur.blue(`-${flag.shortFlag}, --${item}`)}`\n\t\t\t\t: ` ${kleur.blue(` --${item}`)}`;\n\t\t\tconst defaultCell =\n\t\t\t\tflag.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${flag.default})`)}`;\n\t\t\tflagsTable.push([aliasCell, flag.description, defaultCell]);\n\t\t}\n\t\thelpText += flagsTable.toString();\n\t}\n\n\tif (parameters) {\n\t\tconst parametersTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n\";\n\n\t\tfor (const item of Object.keys(parameters).sort()) {\n\t\t\tconst parameter = parameters[item];\n\t\t\tconst headerCell = ` ${upperFirst(item)}:`;\n\t\t\tconst defaultCell =\n\t\t\t\tparameter.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${parameter.default})`)}`;\n\t\t\tparametersTable.push([headerCell, parameter.description, defaultCell]);\n\t\t\tif (typeof usage === \"boolean\") {\n\t\t\t\tusageText += ` ${kleur.green(`[${item}]`)}`;\n\t\t\t}\n\t\t}\n\t\thelpText += parametersTable.toString();\n\t}\n\n\tif (examples) {\n\t\thelpText += \"\\n\\n Examples:\\n\";\n\t\tfor (const item of examples) {\n\t\t\thelpText += `\\n ${kleur.grey(`${item.comment}`)}\\n`;\n\t\t\thelpText += ` ${kleur.blue(`${commandPrefix}${item.command}`)}\\n`;\n\t\t}\n\t}\n\n\treturn {\n\t\thelpText: `\\n${usageText}${helpText}`,\n\t\toptions,\n\t};\n};\n\nexport const meowParserHelper = (parameters: {\n\tcli: any;\n\trestrictions?: any;\n}) => {\n\tconst { cli, restrictions } = parameters;\n\ttry {\n\t\tif (cli.flags.help) {\n\t\t\tcli.showHelp();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\ttry {\n\t\tif (cli.flags.version) {\n\t\t\tcli.showVersion();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\tif (restrictions && restrictions.length > 0) {\n\t\tfor (const rule of restrictions) {\n\t\t\tif (rule.test(cli.flags)) {\n\t\t\t\tlogger.error(rule.message(cli.flags));\n\t\t\t\tprocess.exit(rule.exit);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * Log multiple error messages at the prompt using `console.error` behind the scenes.\n * @param {string[]} errorMessages array of error message to display line by line\n * @param {number} [exitStatus=0] the process will exit with this value, unless set to false\n */\nexport const displayErrorMessages = (\n\terrorMessages: any[],\n\texitStatus: number = 0\n) => {\n\tif (errorMessages && errorMessages.length > 0) {\n\t\tlogger.log();\n\t\tfor (const message of errorMessages) {\n\t\t\tlogger.error(message);\n\t\t}\n\t\tlogger.log();\n\n\t\tif (typeof exitStatus === \"number\") {\n\t\t\tprocess.exit(exitStatus);\n\t\t}\n\t}\n};\n"],"names":["Logger","Table","_","kleur","path","logger","boring","process","env","NODE_ENV","upperFirst","string_","toUpperCase","slice","shallowMerge","objectA","objectB","customizer","mergeWith","merge","meowOptionsHelper","parameters_","usage","flags","parameters","examples","helpText","usageText","commandPrefix","options","importMeta","allowUnknownFlags","autoHelp","autoVersion","description","commonTableConfiguration","chars","bottom","left","mid","middle","right","top","style","wordWrap","optionalParameters","match","requiredParameters","item","replace","green","red","processName","basename","argv","flagsTable","Object","keys","sort","flag","aliasCell","shortFlag","blue","defaultCell","default","undefined","grey","push","toString","parametersTable","parameter","headerCell","comment","command","meowParserHelper","cli","restrictions","help","showHelp","exit","version","showVersion","length","rule","test","error","message","displayErrorMessages","errorMessages","exitStatus","log"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-cli/static-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Arno Versini",
|
|
6
6
|
"description": "A simple, zero-configuration, command line HTTP server to serve static files locally",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"@fastify/compress": "6.2.1",
|
|
20
20
|
"@fastify/cors": "8.2.1",
|
|
21
21
|
"@fastify/static": "6.10.1",
|
|
22
|
-
"@node-cli/logger": "^0.0.
|
|
22
|
+
"@node-cli/logger": "^0.0.8",
|
|
23
23
|
"boxen": "7.1.0",
|
|
24
24
|
"cli-table3": "0.6.3",
|
|
25
25
|
"fastify": "4.17.0",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"publishConfig": {
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "23fe76a185d8ff414348b2867dfddb793c2d3182"
|
|
49
49
|
}
|