@mrtujiawei/bin
Advanced tools
Comparing version 1.2.15 to 1.2.16
@@ -11,3 +11,3 @@ #!/bin/env node | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "https", "fs", "path", "koa", "koa-static", "koa-router", "@koa/cors", "koa-bodyparser", "@mrtujiawei/node-utils", "./utils"], factory); | ||
define(["require", "exports", "commander", "path", "./impl/server"], factory); | ||
} | ||
@@ -17,64 +17,23 @@ })(function (require, exports) { | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const https_1 = __importDefault(require("https")); | ||
const fs_1 = __importDefault(require("fs")); | ||
const commander_1 = require("commander"); | ||
const path_1 = __importDefault(require("path")); | ||
const koa_1 = __importDefault(require("koa")); | ||
const koa_static_1 = __importDefault(require("koa-static")); | ||
const koa_router_1 = __importDefault(require("koa-router")); | ||
const cors_1 = __importDefault(require("@koa/cors")); | ||
const koa_bodyparser_1 = __importDefault(require("koa-bodyparser")); | ||
const node_utils_1 = require("@mrtujiawei/node-utils"); | ||
const utils_1 = require("./utils"); | ||
const config = { | ||
port: 3000, | ||
secure: false, | ||
directory: process.cwd(), | ||
}; | ||
const formattedArgs = (0, node_utils_1.getFormattedArgs)(process.argv.slice(2)); | ||
if ('p' in formattedArgs) { | ||
config.port = Number(formattedArgs.p); | ||
} | ||
if (formattedArgs.s) { | ||
config.secure = true; | ||
} | ||
if ('d' in formattedArgs) { | ||
const dir = formattedArgs.d; | ||
if (path_1.default.isAbsolute(dir)) { | ||
config.directory = dir; | ||
const server_1 = __importDefault(require("./impl/server")); | ||
const program = new commander_1.Command('server'); | ||
program | ||
.description('静态文件服务,支持https,请求代理') | ||
.option('-s, --https', '开启https', false) | ||
.option('-p, --port <port>', '监听端口号', '3000') | ||
.option('-d, --dir <directory>', '项目根目录', process.cwd()) | ||
.option('-t, --target <url>', '代理目录地址') | ||
.option('--prefix <prefix>', '需要代理的路径前缀', '/api') | ||
.option('--rewrite', '是否移除前缀', false) | ||
.action((options) => { | ||
options.port = Number(options.port); | ||
if (!path_1.default.isAbsolute(options.dir)) { | ||
options.dir = path_1.default.resolve(process.cwd(), options.dir); | ||
} | ||
else { | ||
config.directory = path_1.default.resolve(config.directory, dir); | ||
} | ||
} | ||
const app = new koa_1.default(); | ||
const router = new koa_router_1.default(); | ||
app | ||
.use((0, cors_1.default)()) | ||
.use((0, koa_bodyparser_1.default)()) | ||
.use((0, koa_static_1.default)(config.directory)) | ||
.use(router.routes()) | ||
.use(router.allowedMethods()); | ||
if (config.secure) { | ||
const httpsOptions = { | ||
key: fs_1.default.readFileSync(path_1.default.resolve(__dirname, '../pem/private_key.pem')), | ||
cert: fs_1.default.readFileSync(path_1.default.resolve(__dirname, '../pem/ca-cert.pem')), | ||
}; | ||
https_1.default.createServer(httpsOptions, app.callback()).listen(config.port, () => { | ||
const ips = (0, node_utils_1.getIps)(); | ||
utils_1.logger.info('Server is running at:'); | ||
ips.forEach((ip) => { | ||
utils_1.logger.info(`https://${ip}:${config.port}`); | ||
}); | ||
}); | ||
} | ||
else { | ||
app.listen(config.port, () => { | ||
const ips = (0, node_utils_1.getIps)(); | ||
utils_1.logger.info('Server is running at:'); | ||
ips.forEach((ip) => { | ||
utils_1.logger.info(`http://${ip}:${config.port}`); | ||
}); | ||
}); | ||
} | ||
(0, server_1.default)(options); | ||
}) | ||
.parse(process.argv); | ||
}); | ||
//# sourceMappingURL=server.js.map |
@@ -0,1 +1,13 @@ | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
(function (factory) { | ||
@@ -7,3 +19,3 @@ if (typeof module === "object" && typeof module.exports === "object") { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "@mrtujiawei/utils"], factory); | ||
define(["require", "exports", "http", "https", "@mrtujiawei/utils"], factory); | ||
} | ||
@@ -13,3 +25,5 @@ })(function (require, exports) { | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.isCompleteUrl = exports.isComment = exports.getDomain = exports.formatArgvs = exports.logger = void 0; | ||
exports.sendRequest = exports.isCompleteUrl = exports.isComment = exports.getDomain = exports.formatArgvs = exports.logger = void 0; | ||
const http_1 = __importDefault(require("http")); | ||
const https_1 = __importDefault(require("https")); | ||
const utils_1 = require("@mrtujiawei/utils"); | ||
@@ -36,3 +50,3 @@ exports.logger = utils_1.Logger.getLogger('@mrtujiawei/bin'); | ||
let key = ''; | ||
argvs.forEach(argv => { | ||
argvs.forEach((argv) => { | ||
if (argv.startsWith('-')) { | ||
@@ -90,3 +104,26 @@ key = argv.slice(1); | ||
}; | ||
function sendRequest(options, body, secure) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
let sender = secure ? https_1.default : http_1.default; | ||
return new Promise((resolve, reject) => { | ||
sender | ||
.request(options, (res) => { | ||
let data = []; | ||
res.on('data', (chunk) => { | ||
data.push(chunk.toString()); | ||
}); | ||
res.on('end', () => { | ||
resolve(data.join('')); | ||
}); | ||
}) | ||
.end(JSON.stringify(body)) | ||
.on('error', (err) => { | ||
console.log({ err }); | ||
reject(err); | ||
}); | ||
}); | ||
}); | ||
} | ||
exports.sendRequest = sendRequest; | ||
}); | ||
//# sourceMappingURL=index.js.map |
@@ -10,3 +10,3 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "../../../utils/utils", "../../../Types/index", "./LinkedNode"], factory); | ||
define(["require", "exports", "../../../utils/utils", "../../../utils/Types", "./LinkedNode"], factory); | ||
} | ||
@@ -25,3 +25,3 @@ })(function (require, exports) { | ||
const utils_1 = require("../../../utils/utils"); | ||
const index_1 = __importDefault(require("../../../Types/index")); | ||
const Types_1 = __importDefault(require("../../../utils/Types")); | ||
const LinkedNode_1 = __importDefault(require("./LinkedNode")); | ||
@@ -183,3 +183,3 @@ /** | ||
join(delimiter = '', transfer = utils_1.identity) { | ||
if (!index_1.default.isFunction(transfer)) { | ||
if (!Types_1.default.isFunction(transfer)) { | ||
throw new TypeError('transfer is not a function'); | ||
@@ -242,3 +242,3 @@ } | ||
reduce(fn, initialValue) { | ||
if (!this.size() && index_1.default.isUndefined(initialValue)) { | ||
if (!this.size() && Types_1.default.isUndefined(initialValue)) { | ||
throw new TypeError('Reduce of empty array with no initial value'); | ||
@@ -248,3 +248,3 @@ } | ||
if (index == 0) { | ||
if (index_1.default.isUndefined(initialValue)) { | ||
if (Types_1.default.isUndefined(initialValue)) { | ||
initialValue = value; | ||
@@ -267,3 +267,3 @@ } | ||
let node = this.tail.prev; | ||
if (index_1.default.isUndefined(initialValue)) { | ||
if (Types_1.default.isUndefined(initialValue)) { | ||
if (!this.size()) { | ||
@@ -344,3 +344,3 @@ throw new TypeError('Reduce of empty array with no initial value'); | ||
start = start || 0; | ||
end = !index_1.default.isUndefined(end) ? end : this.size(); | ||
end = !Types_1.default.isUndefined(end) ? end : this.size(); | ||
end = end > -1 ? end : this.size() - end; | ||
@@ -347,0 +347,0 @@ let linkList = new DoublyLinkedList(); |
@@ -0,1 +1,15 @@ | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -10,3 +24,3 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "./data-structure/Stack", "./data-structure/Queue/Queue", "./data-structure/Queue/Deque", "./data-structure/List/LinkedList", "./data-structure/List/DoublyLinkedList", "./data-structure/Heap", "./data-structure/Tree/AVLTree", "./data-structure/Tree/BinarySearchTree", "./data-structure/Tree/BinaryIndexedTree", "./data-structure/Tree/RBTree/Tree", "./data-structure/TreeMap", "./data-structure/TreeSet", "./data-structure/List/SkipList", "./data-structure/Graph/Graph", "./data-structure/Graph/DirectedGraph", "./data-structure/UnionFind", "./utils/Lock", "./utils/TaskQueue", "./utils/ResponsibilityChain", "./utils/DateTimeTool", "./utils/CountDown", "./utils/Pagination", "./Logger", "./utils/KMP", "./utils/Events", "./utils/Random", "./utils/topLevelUtils", "./Types/index", "./Envs", "./utils/utils"], factory); | ||
define(["require", "exports", "./data-structure/Stack", "./data-structure/Queue/Queue", "./data-structure/Queue/Deque", "./data-structure/List/LinkedList", "./data-structure/List/DoublyLinkedList", "./data-structure/Heap", "./data-structure/Tree/AVLTree", "./data-structure/Tree/BinarySearchTree", "./data-structure/Tree/BinaryIndexedTree", "./data-structure/Tree/RBTree/Tree", "./data-structure/TreeMap", "./data-structure/TreeSet", "./data-structure/List/SkipList", "./data-structure/Graph/Graph", "./data-structure/Graph/DirectedGraph", "./data-structure/UnionFind", "./utils/Lock", "./utils/TaskQueue", "./utils/ResponsibilityChain", "./utils/DateTimeTool", "./utils/CountDown", "./utils/Pagination", "./Logger", "./utils/KMP", "./utils/Events", "./utils/Random", "./utils/topLevelUtils", "./utils/Types", "./Envs", "./utils/utils", "./utils/utils"], factory); | ||
} | ||
@@ -16,3 +30,3 @@ })(function (require, exports) { | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Envs = exports.C = exports.KMP = exports.isArrayElementsEqual = exports.getGlobalThis = exports.fixed = exports.gcd = exports.trampoline = exports.currying = exports.memorize = exports.eager = exports.lazy = exports.not = exports.objectToString = exports.numFormat = exports.rgbToHex = exports.matrixTransposition = exports.symbols = exports.keys = exports.isSame = exports.findFirstIndex = exports.reentrant = exports.swap = exports.reverseRange = exports.hiddenMobile = exports.isNaturalNumber = exports.isInteger = exports.trailing = exports.throttle = exports.retry = exports.identity = exports.debounce = exports.isPlainObject = exports.isObject = exports.urlParamsToObject = exports.objectToUrlParams = exports.addZero = exports.trim = exports.sleep = exports.toString = exports.UnionFind = exports.Deque = exports.BinaryIndexedTree = exports.Types = exports.SkipList = exports.TreeSet = exports.TreeMap = exports.RBTree = exports.ResponsibilityChain = exports.BinarySearchTree = exports.DateTimeTool = exports.Pagination = exports.TaskQueue = exports.CountDown = exports.Random = exports.Logger = exports.Events = exports.Queue = exports.AVLTree = exports.DoublyLinkedList = exports.LinkedList = exports.Stack = exports.Heap = exports.Lock = exports.DirectedGraph = exports.Graph = void 0; | ||
exports.Envs = exports.KMP = exports.toString = exports.UnionFind = exports.Deque = exports.BinaryIndexedTree = exports.Types = exports.SkipList = exports.TreeSet = exports.TreeMap = exports.RBTree = exports.ResponsibilityChain = exports.BinarySearchTree = exports.DateTimeTool = exports.Pagination = exports.TaskQueue = exports.CountDown = exports.Random = exports.Logger = exports.Events = exports.Queue = exports.AVLTree = exports.DoublyLinkedList = exports.LinkedList = exports.Stack = exports.Heap = exports.Lock = exports.DirectedGraph = exports.Graph = void 0; | ||
// 数据结构 | ||
@@ -74,44 +88,9 @@ const Stack_1 = __importDefault(require("./data-structure/Stack")); | ||
Object.defineProperty(exports, "toString", { enumerable: true, get: function () { return topLevelUtils_1.toString; } }); | ||
const index_1 = __importDefault(require("./Types/index")); | ||
exports.Types = index_1.default; | ||
const Types_1 = __importDefault(require("./utils/Types")); | ||
exports.Types = Types_1.default; | ||
const Envs_1 = __importDefault(require("./Envs")); | ||
exports.Envs = Envs_1.default; | ||
// tree shaking 需要 | ||
const utils_1 = require("./utils/utils"); | ||
Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return utils_1.sleep; } }); | ||
Object.defineProperty(exports, "trim", { enumerable: true, get: function () { return utils_1.trim; } }); | ||
Object.defineProperty(exports, "addZero", { enumerable: true, get: function () { return utils_1.addZero; } }); | ||
Object.defineProperty(exports, "objectToUrlParams", { enumerable: true, get: function () { return utils_1.objectToUrlParams; } }); | ||
Object.defineProperty(exports, "urlParamsToObject", { enumerable: true, get: function () { return utils_1.urlParamsToObject; } }); | ||
Object.defineProperty(exports, "isObject", { enumerable: true, get: function () { return utils_1.isObject; } }); | ||
Object.defineProperty(exports, "isPlainObject", { enumerable: true, get: function () { return utils_1.isPlainObject; } }); | ||
Object.defineProperty(exports, "debounce", { enumerable: true, get: function () { return utils_1.debounce; } }); | ||
Object.defineProperty(exports, "identity", { enumerable: true, get: function () { return utils_1.identity; } }); | ||
Object.defineProperty(exports, "retry", { enumerable: true, get: function () { return utils_1.retry; } }); | ||
Object.defineProperty(exports, "throttle", { enumerable: true, get: function () { return utils_1.throttle; } }); | ||
Object.defineProperty(exports, "trailing", { enumerable: true, get: function () { return utils_1.trailing; } }); | ||
Object.defineProperty(exports, "isInteger", { enumerable: true, get: function () { return utils_1.isInteger; } }); | ||
Object.defineProperty(exports, "isNaturalNumber", { enumerable: true, get: function () { return utils_1.isNaturalNumber; } }); | ||
Object.defineProperty(exports, "hiddenMobile", { enumerable: true, get: function () { return utils_1.hiddenMobile; } }); | ||
Object.defineProperty(exports, "reverseRange", { enumerable: true, get: function () { return utils_1.reverseRange; } }); | ||
Object.defineProperty(exports, "swap", { enumerable: true, get: function () { return utils_1.swap; } }); | ||
Object.defineProperty(exports, "reentrant", { enumerable: true, get: function () { return utils_1.reentrant; } }); | ||
Object.defineProperty(exports, "findFirstIndex", { enumerable: true, get: function () { return utils_1.findFirstIndex; } }); | ||
Object.defineProperty(exports, "isSame", { enumerable: true, get: function () { return utils_1.isSame; } }); | ||
Object.defineProperty(exports, "keys", { enumerable: true, get: function () { return utils_1.keys; } }); | ||
Object.defineProperty(exports, "symbols", { enumerable: true, get: function () { return utils_1.symbols; } }); | ||
Object.defineProperty(exports, "matrixTransposition", { enumerable: true, get: function () { return utils_1.matrixTransposition; } }); | ||
Object.defineProperty(exports, "rgbToHex", { enumerable: true, get: function () { return utils_1.rgbToHex; } }); | ||
Object.defineProperty(exports, "numFormat", { enumerable: true, get: function () { return utils_1.numFormat; } }); | ||
Object.defineProperty(exports, "objectToString", { enumerable: true, get: function () { return utils_1.objectToString; } }); | ||
Object.defineProperty(exports, "not", { enumerable: true, get: function () { return utils_1.not; } }); | ||
Object.defineProperty(exports, "lazy", { enumerable: true, get: function () { return utils_1.lazy; } }); | ||
Object.defineProperty(exports, "eager", { enumerable: true, get: function () { return utils_1.eager; } }); | ||
Object.defineProperty(exports, "memorize", { enumerable: true, get: function () { return utils_1.memorize; } }); | ||
Object.defineProperty(exports, "currying", { enumerable: true, get: function () { return utils_1.currying; } }); | ||
Object.defineProperty(exports, "trampoline", { enumerable: true, get: function () { return utils_1.trampoline; } }); | ||
Object.defineProperty(exports, "gcd", { enumerable: true, get: function () { return utils_1.gcd; } }); | ||
Object.defineProperty(exports, "fixed", { enumerable: true, get: function () { return utils_1.fixed; } }); | ||
Object.defineProperty(exports, "getGlobalThis", { enumerable: true, get: function () { return utils_1.getGlobalThis; } }); | ||
Object.defineProperty(exports, "isArrayElementsEqual", { enumerable: true, get: function () { return utils_1.isArrayElementsEqual; } }); | ||
Object.defineProperty(exports, "C", { enumerable: true, get: function () { return utils_1.C; } }); | ||
__exportStar(require("./utils/utils"), exports); | ||
exports.default = { | ||
@@ -140,3 +119,3 @@ Graph: Graph_1.default, | ||
SkipList: SkipList_1.default, | ||
Types: index_1.default, | ||
Types: Types_1.default, | ||
BinaryIndexedTree: BinaryIndexedTree_1.default, | ||
@@ -186,4 +165,5 @@ Deque: Deque_1.default, | ||
Envs: Envs_1.default, | ||
isShortPath: utils_1.isShortPath, | ||
}; | ||
}); | ||
//# sourceMappingURL=index.js.map |
/** | ||
* 一些公共的类型 | ||
* @filename: /home/tujiawei/github/package/packages/utils/src/types.ts | ||
* @filename: package/packages/utils/src/types.ts | ||
* @author: Mr Prince | ||
@@ -5,0 +5,0 @@ * @date: 2022-06-23 14:01:11 |
@@ -277,3 +277,3 @@ (function (factory) { | ||
const result = new Date(date); | ||
result.setDate(new Date(date).getTime() + days); | ||
result.setDate(new Date(date).getDate() + days); | ||
return result; | ||
@@ -280,0 +280,0 @@ } |
@@ -87,2 +87,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
* 释放锁 | ||
* @throws Lock.InvalidSizeError 没有锁时释放锁 | ||
*/ | ||
@@ -89,0 +90,0 @@ unlock() { |
@@ -19,3 +19,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "./topLevelUtils", "../Types/index"], factory); | ||
define(["require", "exports", "./topLevelUtils", "./Types"], factory); | ||
} | ||
@@ -25,5 +25,5 @@ })(function (require, exports) { | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.test1 = exports.divToPercent = exports.isFullwidthChar = exports.isChineseChar = exports.hasDoubleByteWord = exports.deepEqual = exports.C = exports.lowbit = exports.isArrayElementsEqual = exports.getGlobalThis = exports.fixed = exports.gcd = exports.trampoline = exports.currying = exports.memorize = exports.eager = exports.lazy = exports.not = exports.objectToString = exports.numFormat = exports.rgbToHex = exports.matrixTransposition = exports.symbols = exports.keys = exports.hypot = exports.isSame = exports.findFirstIndex = exports.reentrant = exports.swap = exports.reverseRange = exports.hiddenMobile = exports.isNaturalNumber = exports.isInteger = exports.trailing = exports.throttle = exports.retry = exports.identity = exports.debounce = exports.isPlainObject = exports.isObject = exports.urlParamsToObject = exports.objectToUrlParams = exports.addZero = exports.trim = exports.sleep = void 0; | ||
exports.z = exports.y = exports.x = exports.w = exports.v = exports.u = exports.t = exports.s = exports.r = exports.q = exports.p = exports.o = exports.n = exports.m = exports.l = exports.k = exports.j = exports.i = exports.h = exports.g = exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = exports.isShortPath = exports.getNestValue = exports.divToPercent = exports.isFullwidthChar = exports.isChineseChar = exports.hasDoubleByteWord = exports.deepEqual = exports.C = exports.lowbit = exports.isArrayElementsEqual = exports.getGlobalThis = exports.fixed = exports.gcd = exports.trampoline = exports.currying = exports.memorize = exports.eager = exports.lazy = exports.not = exports.objectToString = exports.numFormat = exports.rgbToHex = exports.matrixTransposition = exports.symbols = exports.keys = exports.hypot = exports.isSame = exports.findFirstIndex = exports.reentrant = exports.swap = exports.reverseRange = exports.hiddenMobile = exports.isNaturalNumber = exports.isInteger = exports.trailing = exports.throttle = exports.retry = exports.identity = exports.debounce = exports.isPlainObject = exports.isObject = exports.urlParamsToObject = exports.objectToUrlParams = exports.addZero = exports.trim = exports.sleep = void 0; | ||
const topLevelUtils_1 = require("./topLevelUtils"); | ||
const index_1 = __importDefault(require("../Types/index")); | ||
const Types_1 = __importDefault(require("./Types")); | ||
/** | ||
@@ -43,3 +43,6 @@ * @description 延迟一段时间(秒) | ||
function trim(data) { | ||
if (typeof data == typeof {}) { | ||
if (Types_1.default.isString(data)) { | ||
data = data.trim(); | ||
} | ||
else if (Types_1.default.isObject(data)) { | ||
for (let prop in data) { | ||
@@ -49,6 +52,2 @@ data[prop] = trim(data[prop]); | ||
} | ||
else if (typeof data == typeof '') { | ||
// @ts-ignore | ||
data = data.trim(); | ||
} | ||
return data; | ||
@@ -86,3 +85,3 @@ } | ||
.reduce((params, [key, value]) => { | ||
params[decodeURIComponent(key)] = decodeURIComponent(value); | ||
params[key] = value; | ||
return params; | ||
@@ -96,3 +95,3 @@ }, {}); | ||
const isObject = (object) => { | ||
if (typeof {} != typeof object || (0, topLevelUtils_1.toString)(object) == index_1.default.NULL) { | ||
if (typeof {} != typeof object || (0, topLevelUtils_1.toString)(object) == Types_1.default.NULL) { | ||
return false; | ||
@@ -130,2 +129,5 @@ } | ||
exports.debounce = debounce; | ||
/** | ||
* 返回原来的值 | ||
*/ | ||
function identity(value) { | ||
@@ -150,3 +152,3 @@ return value; | ||
let data = callback(...args); | ||
if (index_1.default.isPromise(data)) { | ||
if (Types_1.default.isPromise(data)) { | ||
return data | ||
@@ -236,3 +238,3 @@ .then(identity) | ||
const type = (0, topLevelUtils_1.toString)(number); | ||
if (index_1.default.NULL == type || index_1.default.UNDEFINED == type) { | ||
if (Types_1.default.NULL == type || Types_1.default.UNDEFINED == type) { | ||
return false; | ||
@@ -427,5 +429,5 @@ } | ||
* 数字格式化 | ||
* 1234 => 1.234 | ||
* 1234 => 1,234 | ||
*/ | ||
const numFormat = (num, delimiter = '.') => { | ||
const numFormat = (num, delimiter = ',') => { | ||
const result = num.toString().replace(/\B(?=(\d{3})+$)/g, delimiter); | ||
@@ -453,3 +455,3 @@ return result; | ||
const paramType = (0, topLevelUtils_1.toString)(data); | ||
const normalTypes = [index_1.default.NULL, index_1.default.NUMBER, index_1.default.UNDEFINED, index_1.default.SYMBOL]; | ||
const normalTypes = [Types_1.default.NULL, Types_1.default.NUMBER, Types_1.default.UNDEFINED, Types_1.default.SYMBOL]; | ||
// 没必要特殊处理的类型,直接 转换成字符串 | ||
@@ -460,12 +462,12 @@ if (normalTypes.includes(paramType)) { | ||
// 给 string 类型的加上字符串标识 | ||
if (index_1.default.STRING == paramType) { | ||
if (Types_1.default.STRING == paramType) { | ||
return `"${data}"`; | ||
} | ||
if (index_1.default.FUNCTION == paramType) { | ||
if (Types_1.default.FUNCTION == paramType) { | ||
return `function ${data.name}() { [code] }`; | ||
} | ||
if (index_1.default.ERROR == paramType) { | ||
if (Types_1.default.ERROR == paramType) { | ||
return `${data.message}: \n${data.stack}`; | ||
} | ||
if (index_1.default.DATE == paramType) { | ||
if (Types_1.default.DATE == paramType) { | ||
return `Date(${data.getTime()})`; | ||
@@ -477,3 +479,3 @@ } | ||
// 处理数组 | ||
if (index_1.default.ARRAY == paramType) { | ||
if (Types_1.default.ARRAY == paramType) { | ||
const result = []; | ||
@@ -493,3 +495,3 @@ result.push('['); | ||
// 处理对象 | ||
if (index_1.default.OBJECT == paramType) { | ||
if (Types_1.default.OBJECT == paramType) { | ||
const result = []; | ||
@@ -801,7 +803,110 @@ result.push('{ '); | ||
exports.divToPercent = divToPercent; | ||
function test1() { | ||
console.log('test1'); | ||
/** | ||
* 获取嵌套对象或数组中的值 | ||
*/ | ||
function getNestValue(values, indexs, defaultValue) { | ||
let result = values; | ||
for (let i = 0; i < indexs.length; i++) { | ||
const index = indexs[i]; | ||
if ((0, exports.isObject)(result) || Array.isArray(result)) { | ||
result = result[index]; | ||
} | ||
else { | ||
return defaultValue; | ||
} | ||
} | ||
if (Types_1.default.isUndefined(result)) { | ||
return defaultValue; | ||
} | ||
return result; | ||
} | ||
exports.test1 = test1; | ||
exports.getNestValue = getNestValue; | ||
/** | ||
* 判断是否是短路径 | ||
* | ||
* 不以 http|https|// 开头的路径 | ||
*/ | ||
function isShortPath(path) { | ||
return !/^(https?|\/\/)/.test(path); | ||
} | ||
exports.isShortPath = isShortPath; | ||
function a() { | ||
} | ||
exports.a = a; | ||
function b() { | ||
} | ||
exports.b = b; | ||
function c() { | ||
} | ||
exports.c = c; | ||
function d() { | ||
} | ||
exports.d = d; | ||
function e() { | ||
} | ||
exports.e = e; | ||
function f() { | ||
} | ||
exports.f = f; | ||
function g() { | ||
} | ||
exports.g = g; | ||
function h() { | ||
} | ||
exports.h = h; | ||
function i() { | ||
} | ||
exports.i = i; | ||
function j() { | ||
} | ||
exports.j = j; | ||
function k() { | ||
} | ||
exports.k = k; | ||
function l() { | ||
} | ||
exports.l = l; | ||
function m() { | ||
} | ||
exports.m = m; | ||
function n() { | ||
} | ||
exports.n = n; | ||
function o() { | ||
} | ||
exports.o = o; | ||
function p() { | ||
} | ||
exports.p = p; | ||
function q() { | ||
} | ||
exports.q = q; | ||
function r() { | ||
} | ||
exports.r = r; | ||
function s() { | ||
} | ||
exports.s = s; | ||
function t() { | ||
} | ||
exports.t = t; | ||
function u() { | ||
} | ||
exports.u = u; | ||
function v() { | ||
} | ||
exports.v = v; | ||
function w() { | ||
} | ||
exports.w = w; | ||
function x() { | ||
} | ||
exports.x = x; | ||
function y() { | ||
} | ||
exports.y = y; | ||
function z() { | ||
} | ||
exports.z = z; | ||
}); | ||
//# sourceMappingURL=utils.js.map |
{ | ||
"name": "@mrtujiawei/bin", | ||
"version": "1.2.15", | ||
"version": "1.2.16", | ||
"description": "我的命令行工具", | ||
@@ -29,3 +29,4 @@ "main": "", | ||
"@mrtujiawei/node-utils": "0.1.10", | ||
"@mrtujiawei/utils": "2.3.130", | ||
"@mrtujiawei/utils": "2.3.197", | ||
"commander": "9.4.0", | ||
"koa": "2.11.0", | ||
@@ -32,0 +33,0 @@ "koa-bodyparser": "4.2.1", |
@@ -7,13 +7,18 @@ # @mrtujiawei/bin | ||
```shell script | ||
# 把当前目录作为静态服务器的根目录 | ||
server [-p port] [-s] [-d directory] | ||
``` | ||
Usage: server [options] | ||
-p port 指定端口号 | ||
静态文件服务,支持https,请求代理 | ||
-s 开启https | ||
-d 指定静态文件目录 | ||
Options: | ||
-s, --https 开启https (default: false) | ||
-p, --port <port> 监听端口号 (default: "3000") | ||
-d, --dir <directory> 项目根目录 (default: 当前目录) | ||
-t, --target <url> 代理目录地址 | ||
--prefix <prefix> 需要代理的路径前缀 (default: "/api") | ||
--rewrite 是否移除前缀 (default: false) | ||
-h, --help display help for command | ||
``` | ||
## push-all | ||
@@ -20,0 +25,0 @@ |
#!/bin/env node | ||
import https from 'https'; | ||
import fs from 'fs'; | ||
import { Command } from 'commander'; | ||
import path from 'path'; | ||
import Koa from 'koa'; | ||
import Static from 'koa-static'; | ||
import Router from 'koa-router'; | ||
import cors from '@koa/cors'; | ||
import bodyParser from 'koa-bodyparser'; | ||
import { getIps, getFormattedArgs } from '@mrtujiawei/node-utils'; | ||
import { logger } from './utils'; | ||
import server from './impl/server'; | ||
const config = { | ||
port: 3000, | ||
secure: false, | ||
directory: process.cwd(), | ||
}; | ||
const program = new Command('server'); | ||
const formattedArgs = getFormattedArgs(process.argv.slice(2)); | ||
if ('p' in formattedArgs) { | ||
config.port = Number(formattedArgs.p); | ||
} | ||
if (formattedArgs.s) { | ||
config.secure = true; | ||
} | ||
if ('d' in formattedArgs) { | ||
const dir = formattedArgs.d as string; | ||
if (path.isAbsolute(dir)) { | ||
config.directory = dir; | ||
} else { | ||
config.directory = path.resolve(config.directory, dir); | ||
} | ||
} | ||
const app = new Koa(); | ||
const router = new Router(); | ||
app | ||
.use(cors()) | ||
.use(bodyParser()) | ||
.use(Static(config.directory)) | ||
.use(router.routes()) | ||
.use(router.allowedMethods()); | ||
if (config.secure) { | ||
const httpsOptions = { | ||
key: fs.readFileSync( | ||
path.resolve(__dirname, '../pem/private_key.pem') | ||
), | ||
cert: fs.readFileSync(path.resolve(__dirname, '../pem/ca-cert.pem')), | ||
}; | ||
https.createServer(httpsOptions, app.callback()).listen(config.port, () => { | ||
const ips = getIps(); | ||
logger.info('Server is running at:'); | ||
ips.forEach((ip) => { | ||
logger.info(`https://${ip}:${config.port}`); | ||
}); | ||
}); | ||
} else { | ||
app.listen(config.port, () => { | ||
const ips = getIps(); | ||
logger.info('Server is running at:'); | ||
ips.forEach((ip) => { | ||
logger.info(`http://${ip}:${config.port}`); | ||
}); | ||
}); | ||
} | ||
program | ||
.description('静态文件服务,支持https,请求代理') | ||
.option('-s, --https', '开启https', false) | ||
.option('-p, --port <port>', '监听端口号', '3000') | ||
.option('-d, --dir <directory>', '项目根目录', process.cwd()) | ||
.option('-t, --target <url>', '代理目录地址') | ||
.option('--prefix <prefix>', '需要代理的路径前缀', '/api') | ||
.option('--rewrite', '是否移除前缀', false) | ||
.action((options) => { | ||
options.port = Number(options.port); | ||
if (!path.isAbsolute(options.dir)) { | ||
options.dir = path.resolve(process.cwd(), options.dir); | ||
} | ||
server(options); | ||
}) | ||
.parse(process.argv); |
@@ -0,1 +1,4 @@ | ||
import http from 'http'; | ||
import https from 'https'; | ||
import type { Request } from 'koa'; | ||
import { Logger } from '@mrtujiawei/utils'; | ||
@@ -33,3 +36,3 @@ | ||
let key = ''; | ||
argvs.forEach(argv => { | ||
argvs.forEach((argv) => { | ||
if (argv.startsWith('-')) { | ||
@@ -76,3 +79,3 @@ key = argv.slice(1); | ||
return url.startsWith('http'); | ||
} | ||
}; | ||
@@ -88,1 +91,26 @@ /** | ||
}; | ||
export async function sendRequest( | ||
options: https.RequestOptions, | ||
body?: Record<string, unknown>, | ||
secure?: boolean | ||
) { | ||
let sender = secure ? https : http; | ||
return new Promise((resolve, reject) => { | ||
sender | ||
.request(options, (res) => { | ||
let data: any[] = []; | ||
res.on('data', (chunk) => { | ||
data.push(chunk.toString()); | ||
}); | ||
res.on('end', () => { | ||
resolve(data.join('')); | ||
}); | ||
}) | ||
.end(JSON.stringify(body)) | ||
.on('error', (err) => { | ||
console.log({ err }); | ||
reject(err); | ||
}); | ||
}); | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
444946
151
8126
52
8
6
+ Addedcommander@9.4.0
+ Added@mrtujiawei/utils@2.3.197(transitive)
+ Addedcommander@9.4.0(transitive)
- Removed@mrtujiawei/utils@2.3.130(transitive)
Updated@mrtujiawei/utils@2.3.197