hsu-utils 0.0.1
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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/hsu-utils.js +138 -0
- package/dist/hsu-utils.min.js +2 -0
- package/dist/hsu-utils.min.js.LICENSE.txt +29 -0
- package/es/ConsoleTable/index.d.ts +2 -0
- package/es/ConsoleTable/index.js +90 -0
- package/es/DeepCopy/index.d.ts +1 -0
- package/es/DeepCopy/index.js +40 -0
- package/es/Equal/index.d.ts +9 -0
- package/es/Equal/index.js +66 -0
- package/es/Typeof/index.d.ts +3 -0
- package/es/Typeof/index.js +6 -0
- package/es/index.d.ts +6 -0
- package/es/index.js +5 -0
- package/lib/ConsoleTable/index.d.ts +2 -0
- package/lib/ConsoleTable/index.js +96 -0
- package/lib/DeepCopy/index.d.ts +1 -0
- package/lib/DeepCopy/index.js +43 -0
- package/lib/Equal/index.d.ts +9 -0
- package/lib/Equal/index.js +72 -0
- package/lib/Typeof/index.d.ts +3 -0
- package/lib/Typeof/index.js +9 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +14 -0
- package/package.json +55 -0
package/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2023 LazyCat
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# some front-end utils
|
@@ -0,0 +1,138 @@
|
|
1
|
+
/*!
|
2
|
+
*
|
3
|
+
* hsu-utils v0.0.0
|
4
|
+
*
|
5
|
+
* some front-end uilts
|
6
|
+
*
|
7
|
+
* MIT License
|
8
|
+
*
|
9
|
+
* Copyright (c) 2023 LazyCat
|
10
|
+
*
|
11
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
12
|
+
* of this software and associated documentation files (the "Software"), to deal
|
13
|
+
* in the Software without restriction, including without limitation the rights
|
14
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
15
|
+
* copies of the Software, and to permit persons to whom the Software is
|
16
|
+
* furnished to do so, subject to the following conditions:
|
17
|
+
*
|
18
|
+
* The above copyright notice and this permission notice shall be included in all
|
19
|
+
* copies or substantial portions of the Software.
|
20
|
+
*
|
21
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
22
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
23
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
24
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
25
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
26
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
27
|
+
* SOFTWARE.
|
28
|
+
*
|
29
|
+
*/
|
30
|
+
/*
|
31
|
+
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
32
|
+
* This devtool is neither made for production nor for readable output files.
|
33
|
+
* It uses "eval()" calls to create a separate source file in the browser devtools.
|
34
|
+
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
35
|
+
* or disable the default devtool with "devtool: false".
|
36
|
+
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
37
|
+
*/
|
38
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
39
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
40
|
+
module.exports = factory();
|
41
|
+
else if(typeof define === 'function' && define.amd)
|
42
|
+
define([], factory);
|
43
|
+
else if(typeof exports === 'object')
|
44
|
+
exports["hsu-utils"] = factory();
|
45
|
+
else
|
46
|
+
root["hsu-utils"] = factory();
|
47
|
+
})(this, () => {
|
48
|
+
return /******/ (() => { // webpackBootstrap
|
49
|
+
/******/ "use strict";
|
50
|
+
/******/ var __webpack_modules__ = ({
|
51
|
+
|
52
|
+
/***/ "./tools/ConsoleTable/index.ts":
|
53
|
+
/*!*************************************!*\
|
54
|
+
!*** ./tools/ConsoleTable/index.ts ***!
|
55
|
+
\*************************************/
|
56
|
+
/***/ ((__unused_webpack_module, exports) => {
|
57
|
+
|
58
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar NODE = '+';\nvar EDGE = '-';\nvar HIGH = '|';\nvar SPACE = ' ';\nvar EMPTY = '';\nfunction get_string_width(str) {\n var width = 0;\n for (var _i = 0, str_1 = str; _i < str_1.length; _i++) {\n var char = str_1[_i];\n width += char.charCodeAt(0) < 128 && char.charCodeAt(0) >= 0 ? 1 : 2;\n }\n return width;\n}\nfunction get_egde(width) {\n var edge = '';\n for (var i = 0; i <= width; i++) {\n edge += EDGE;\n }\n return edge;\n}\nfunction get_edge(widths, no_line_break) {\n if (no_line_break === void 0) { no_line_break = false; }\n var col_num = widths.length;\n var border = '';\n widths.forEach(function (width, col) {\n border += NODE + get_egde(width + 1);\n if (col === col_num - 1) {\n border += NODE + (no_line_break ? EMPTY : '\\n');\n }\n else {\n border += EMPTY;\n }\n });\n return border;\n}\nfunction get_space(width) {\n var space = '';\n for (var i = 0; i <= width; i++) {\n space += SPACE;\n }\n return space;\n}\nfunction wirte_data(widths, data) {\n var col_num = widths.length;\n var content = '';\n widths.forEach(function (width, col) {\n var col_data = data[col];\n var _content = '';\n if (!isNaN(+col_data)) {\n _content += get_space(width - get_string_width(col_data.toString())) + col_data + SPACE;\n }\n else {\n _content += SPACE + (col_data !== null && col_data !== void 0 ? col_data : '') + get_space(width - get_string_width((col_data !== null && col_data !== void 0 ? col_data : '').toString()));\n }\n content += HIGH + _content;\n if (col === col_num - 1) {\n content += HIGH + '\\n';\n }\n else {\n content += EMPTY;\n }\n });\n return content;\n}\nfunction get_max_widths(data) {\n var max_widths = Object.keys(data[0]).map(function (v) { return +v; });\n for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {\n var row_data = data_1[_i];\n row_data.forEach(function (col_data, idx) {\n var width = get_string_width(col_data.toString());\n max_widths[idx] = Math.max(width, max_widths[idx]);\n });\n }\n return max_widths;\n}\nfunction console_table(data, callBack) {\n var row_num = data.length;\n var max_widths = get_max_widths(data);\n var table = '';\n data.forEach(function (row_data, row) {\n if (row <= 1) {\n table += get_edge(max_widths);\n }\n table += wirte_data(max_widths, row_data);\n if (row === row_num - 1) {\n table += get_edge(max_widths, true);\n }\n });\n console.log(table);\n if (callBack) {\n callBack(table);\n }\n}\nexports[\"default\"] = console_table;\n\n\n//# sourceURL=webpack://hsu-utils/./tools/ConsoleTable/index.ts?");
|
59
|
+
|
60
|
+
/***/ }),
|
61
|
+
|
62
|
+
/***/ "./tools/DeepCopy/index.ts":
|
63
|
+
/*!*********************************!*\
|
64
|
+
!*** ./tools/DeepCopy/index.ts ***!
|
65
|
+
\*********************************/
|
66
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
67
|
+
|
68
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar __1 = __webpack_require__(/*! .. */ \"./tools/index.ts\");\nfunction deepCopy(data) {\n if ((0, __1.Typeof)(data) === 'date') {\n return new Date(data.toISOString());\n }\n else if ((0, __1.Typeof)(data) === 'formdata') {\n var _data = data;\n var _formData_1 = new FormData();\n _data.forEach(function (value, key) {\n _formData_1.append(key, value);\n });\n return _formData_1;\n }\n else if (Array.isArray(data)) {\n var newData = data.map(function (item) {\n if (typeof item === 'object') {\n return deepCopy(item);\n }\n else {\n return item;\n }\n });\n return newData;\n }\n else if (data && (0, __1.Typeof)(data) === 'object') {\n var _data_1 = data;\n var newData_1 = {};\n Object.keys(_data_1).forEach(function (key) {\n var _item = _data_1[key];\n if (typeof _item === 'object') {\n newData_1[key] = deepCopy(_item);\n }\n else {\n newData_1[key] = _item;\n }\n });\n return newData_1;\n }\n return data;\n}\nexports[\"default\"] = deepCopy;\n\n\n//# sourceURL=webpack://hsu-utils/./tools/DeepCopy/index.ts?");
|
69
|
+
|
70
|
+
/***/ }),
|
71
|
+
|
72
|
+
/***/ "./tools/Equal/index.ts":
|
73
|
+
/*!******************************!*\
|
74
|
+
!*** ./tools/Equal/index.ts ***!
|
75
|
+
\******************************/
|
76
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
77
|
+
|
78
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ObjEqual = exports.ValEqual = exports.TypeEqual = void 0;\nvar __1 = __webpack_require__(/*! .. */ \"./tools/index.ts\");\nfunction TypeEqual(obj1, obj2) {\n var isEqual = false;\n if ((0, __1.Typeof)(obj1) !== (0, __1.Typeof)(obj2)) {\n isEqual = false;\n }\n else {\n isEqual = true;\n }\n return isEqual;\n}\nexports.TypeEqual = TypeEqual;\nfunction ValEqual(obj1, obj2) {\n var isEqual = false;\n if ((obj1 === null && obj2 === undefined) || (obj1 === undefined && obj2 === null)) {\n isEqual = true;\n }\n else {\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n isEqual = ObjEqual(obj1, obj2);\n }\n else if (typeof obj1 === 'function' && typeof obj2 === 'function') {\n isEqual = JSON.stringify(obj1) === JSON.stringify(obj2);\n }\n else {\n isEqual = obj1 === obj2;\n }\n }\n return isEqual;\n}\nexports.ValEqual = ValEqual;\nfunction ObjEqual(obj1, obj2) {\n var isEqual = false;\n if (obj1 !== null && obj2 !== null) {\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n obj1.sort();\n obj2.sort();\n if (obj1.length !== obj2.length) {\n isEqual = false;\n }\n else {\n for (var i = 0; i < obj1.length; i++) {\n isEqual = ValEqual(obj1[i], obj2[i]);\n if (!isEqual)\n break;\n }\n }\n }\n else if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n isEqual = false;\n }\n else {\n for (var key in obj1) {\n isEqual = ValEqual(obj1[key], obj2[key]);\n if (!isEqual)\n break;\n }\n }\n }\n }\n else if (obj1 === null && obj2 === null) {\n isEqual = true;\n }\n return isEqual;\n}\nexports.ObjEqual = ObjEqual;\nvar Equal = { ObjEqual: ObjEqual, ValEqual: ValEqual, TypeEqual: TypeEqual };\nexports[\"default\"] = Equal;\n\n\n//# sourceURL=webpack://hsu-utils/./tools/Equal/index.ts?");
|
79
|
+
|
80
|
+
/***/ }),
|
81
|
+
|
82
|
+
/***/ "./tools/Typeof/index.ts":
|
83
|
+
/*!*******************************!*\
|
84
|
+
!*** ./tools/Typeof/index.ts ***!
|
85
|
+
\*******************************/
|
86
|
+
/***/ ((__unused_webpack_module, exports) => {
|
87
|
+
|
88
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction Typeof(value) {\n var object_type = Object.prototype.toString.call(value);\n var reg = new RegExp(' (.+?)]');\n var type = object_type.match(reg)[1];\n return type.toLowerCase();\n}\nexports[\"default\"] = Typeof;\n\n\n//# sourceURL=webpack://hsu-utils/./tools/Typeof/index.ts?");
|
89
|
+
|
90
|
+
/***/ }),
|
91
|
+
|
92
|
+
/***/ "./tools/index.ts":
|
93
|
+
/*!************************!*\
|
94
|
+
!*** ./tools/index.ts ***!
|
95
|
+
\************************/
|
96
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
97
|
+
|
98
|
+
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Typeof = exports.Equal = exports.deepCopy = exports.console_table = void 0;\nvar ConsoleTable_1 = __importDefault(__webpack_require__(/*! ./ConsoleTable */ \"./tools/ConsoleTable/index.ts\"));\nexports.console_table = ConsoleTable_1.default;\nvar DeepCopy_1 = __importDefault(__webpack_require__(/*! ./DeepCopy */ \"./tools/DeepCopy/index.ts\"));\nexports.deepCopy = DeepCopy_1.default;\nvar Equal_1 = __importDefault(__webpack_require__(/*! ./Equal */ \"./tools/Equal/index.ts\"));\nexports.Equal = Equal_1.default;\nvar Typeof_1 = __importDefault(__webpack_require__(/*! ./Typeof */ \"./tools/Typeof/index.ts\"));\nexports.Typeof = Typeof_1.default;\n\n\n//# sourceURL=webpack://hsu-utils/./tools/index.ts?");
|
99
|
+
|
100
|
+
/***/ })
|
101
|
+
|
102
|
+
/******/ });
|
103
|
+
/************************************************************************/
|
104
|
+
/******/ // The module cache
|
105
|
+
/******/ var __webpack_module_cache__ = {};
|
106
|
+
/******/
|
107
|
+
/******/ // The require function
|
108
|
+
/******/ function __webpack_require__(moduleId) {
|
109
|
+
/******/ // Check if module is in cache
|
110
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
111
|
+
/******/ if (cachedModule !== undefined) {
|
112
|
+
/******/ return cachedModule.exports;
|
113
|
+
/******/ }
|
114
|
+
/******/ // Create a new module (and put it into the cache)
|
115
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
116
|
+
/******/ // no module.id needed
|
117
|
+
/******/ // no module.loaded needed
|
118
|
+
/******/ exports: {}
|
119
|
+
/******/ };
|
120
|
+
/******/
|
121
|
+
/******/ // Execute the module function
|
122
|
+
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
123
|
+
/******/
|
124
|
+
/******/ // Return the exports of the module
|
125
|
+
/******/ return module.exports;
|
126
|
+
/******/ }
|
127
|
+
/******/
|
128
|
+
/************************************************************************/
|
129
|
+
/******/
|
130
|
+
/******/ // startup
|
131
|
+
/******/ // Load entry module and return exports
|
132
|
+
/******/ // This entry module is referenced by other modules so it can't be inlined
|
133
|
+
/******/ var __webpack_exports__ = __webpack_require__("./tools/index.ts");
|
134
|
+
/******/
|
135
|
+
/******/ return __webpack_exports__;
|
136
|
+
/******/ })()
|
137
|
+
;
|
138
|
+
});
|
@@ -0,0 +1,2 @@
|
|
1
|
+
/*! For license information please see hsu-utils.min.js.LICENSE.txt */
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["hsu-utils"]=t():e["hsu-utils"]=t()}(this,(()=>(()=>{"use strict";var e={442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var r="+",o="-",n="|",u=" ",a="";function f(e){for(var t=0,r=0,o=e;r<o.length;r++){var n=o[r];t+=n.charCodeAt(0)<128&&n.charCodeAt(0)>=0?1:2}return t}function l(e,t){void 0===t&&(t=!1);var n=e.length,u="";return e.forEach((function(e,f){u+=r+function(e){for(var t="",r=0;r<=e;r++)t+=o;return t}(e+1),u+=f===n-1?r+(t?a:"\n"):a})),u}function i(e){for(var t="",r=0;r<=e;r++)t+=u;return t}t.default=function(e,t){var r=e.length,o=function(e){for(var t=Object.keys(e[0]).map((function(e){return+e})),r=0,o=e;r<o.length;r++)o[r].forEach((function(e,r){var o=f(e.toString());t[r]=Math.max(o,t[r])}));return t}(e),c="";e.forEach((function(e,t){t<=1&&(c+=l(o)),c+=function(e,t){var r=e.length,o="";return e.forEach((function(e,l){var c=t[l],p="";isNaN(+c)?p+=u+(null!=c?c:"")+i(e-f((null!=c?c:"").toString())):p+=i(e-f(c.toString()))+c+u,o+=n+p,o+=l===r-1?n+"\n":a})),o}(o,e),t===r-1&&(c+=l(o,!0))})),console.log(c),t&&t(c)}},819:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var o=r(243);t.default=function e(t){if("date"===(0,o.Typeof)(t))return new Date(t.toISOString());if("formdata"===(0,o.Typeof)(t)){var r=t,n=new FormData;return r.forEach((function(e,t){n.append(t,e)})),n}if(Array.isArray(t))return t.map((function(t){return"object"==typeof t?e(t):t}));if(t&&"object"===(0,o.Typeof)(t)){var u=t,a={};return Object.keys(u).forEach((function(t){var r=u[t];a[t]="object"==typeof r?e(r):r})),a}return t}},962:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObjEqual=t.ValEqual=t.TypeEqual=void 0;var o=r(243);function n(e,t){return(0,o.Typeof)(e)===(0,o.Typeof)(t)}function u(e,t){return null===e&&void 0===t||void 0===e&&null===t||("object"==typeof e&&"object"==typeof t?a(e,t):"function"==typeof e&&"function"==typeof t?JSON.stringify(e)===JSON.stringify(t):e===t)}function a(e,t){var r=!1;if(null!==e&&null!==t){if(Array.isArray(e)&&Array.isArray(t))if(e.sort(),t.sort(),e.length!==t.length)r=!1;else for(var o=0;o<e.length&&(r=u(e[o],t[o]));o++);else if("object"==typeof e&&"object"==typeof t)if(Object.keys(e).length!==Object.keys(t).length)r=!1;else for(var n in e)if(!(r=u(e[n],t[n])))break}else null===e&&null===t&&(r=!0);return r}t.TypeEqual=n,t.ValEqual=u,t.ObjEqual=a;var f={ObjEqual:a,ValEqual:u,TypeEqual:n};t.default=f},332:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=Object.prototype.toString.call(e),r=new RegExp(" (.+?)]");return t.match(r)[1].toLowerCase()}},243:function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Typeof=t.Equal=t.deepCopy=t.console_table=void 0;var n=o(r(442));t.console_table=n.default;var u=o(r(819));t.deepCopy=u.default;var a=o(r(962));t.Equal=a.default;var f=o(r(332));t.Typeof=f.default}},t={};var r=function r(o){var n=t[o];if(void 0!==n)return n.exports;var u=t[o]={exports:{}};return e[o].call(u.exports,u,u.exports,r),u.exports}(243);return r})()));
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/*!
|
2
|
+
*
|
3
|
+
* hsu-utils v0.0.0
|
4
|
+
*
|
5
|
+
* some front-end uilts
|
6
|
+
*
|
7
|
+
* MIT License
|
8
|
+
*
|
9
|
+
* Copyright (c) 2023 LazyCat
|
10
|
+
*
|
11
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
12
|
+
* of this software and associated documentation files (the "Software"), to deal
|
13
|
+
* in the Software without restriction, including without limitation the rights
|
14
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
15
|
+
* copies of the Software, and to permit persons to whom the Software is
|
16
|
+
* furnished to do so, subject to the following conditions:
|
17
|
+
*
|
18
|
+
* The above copyright notice and this permission notice shall be included in all
|
19
|
+
* copies or substantial portions of the Software.
|
20
|
+
*
|
21
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
22
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
23
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
24
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
25
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
26
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
27
|
+
* SOFTWARE.
|
28
|
+
*
|
29
|
+
*/
|
@@ -0,0 +1,90 @@
|
|
1
|
+
const NODE = '+';
|
2
|
+
const EDGE = '-';
|
3
|
+
const HIGH = '|';
|
4
|
+
const SPACE = ' ';
|
5
|
+
const EMPTY = '';
|
6
|
+
function get_string_width(str) {
|
7
|
+
let width = 0;
|
8
|
+
for (const char of str) {
|
9
|
+
width += char.charCodeAt(0) < 128 && char.charCodeAt(0) >= 0 ? 1 : 2;
|
10
|
+
}
|
11
|
+
return width;
|
12
|
+
}
|
13
|
+
function get_egde(width) {
|
14
|
+
let edge = '';
|
15
|
+
for (let i = 0; i <= width; i++) {
|
16
|
+
edge += EDGE;
|
17
|
+
}
|
18
|
+
return edge;
|
19
|
+
}
|
20
|
+
function get_edge(widths, no_line_break = false) {
|
21
|
+
const col_num = widths.length;
|
22
|
+
let border = '';
|
23
|
+
widths.forEach((width, col) => {
|
24
|
+
border += NODE + get_egde(width + 1);
|
25
|
+
if (col === col_num - 1) {
|
26
|
+
border += NODE + (no_line_break ? EMPTY : '\n');
|
27
|
+
}
|
28
|
+
else {
|
29
|
+
border += EMPTY;
|
30
|
+
}
|
31
|
+
});
|
32
|
+
return border;
|
33
|
+
}
|
34
|
+
function get_space(width) {
|
35
|
+
let space = '';
|
36
|
+
for (let i = 0; i <= width; i++) {
|
37
|
+
space += SPACE;
|
38
|
+
}
|
39
|
+
return space;
|
40
|
+
}
|
41
|
+
function wirte_data(widths, data) {
|
42
|
+
const col_num = widths.length;
|
43
|
+
let content = '';
|
44
|
+
widths.forEach((width, col) => {
|
45
|
+
const col_data = data[col];
|
46
|
+
let _content = '';
|
47
|
+
if (!isNaN(+col_data)) {
|
48
|
+
_content += get_space(width - get_string_width(col_data.toString())) + col_data + SPACE;
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
_content += SPACE + (col_data !== null && col_data !== void 0 ? col_data : '') + get_space(width - get_string_width((col_data !== null && col_data !== void 0 ? col_data : '').toString()));
|
52
|
+
}
|
53
|
+
content += HIGH + _content;
|
54
|
+
if (col === col_num - 1) {
|
55
|
+
content += HIGH + '\n';
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
content += EMPTY;
|
59
|
+
}
|
60
|
+
});
|
61
|
+
return content;
|
62
|
+
}
|
63
|
+
function get_max_widths(data) {
|
64
|
+
let max_widths = Object.keys(data[0]).map((v) => +v);
|
65
|
+
for (const row_data of data) {
|
66
|
+
row_data.forEach((col_data, idx) => {
|
67
|
+
const width = get_string_width(col_data.toString());
|
68
|
+
max_widths[idx] = Math.max(width, max_widths[idx]);
|
69
|
+
});
|
70
|
+
}
|
71
|
+
return max_widths;
|
72
|
+
}
|
73
|
+
export default function console_table(data, callBack) {
|
74
|
+
const row_num = data.length;
|
75
|
+
const max_widths = get_max_widths(data);
|
76
|
+
let table = '';
|
77
|
+
data.forEach((row_data, row) => {
|
78
|
+
if (row <= 1) {
|
79
|
+
table += get_edge(max_widths);
|
80
|
+
}
|
81
|
+
table += wirte_data(max_widths, row_data);
|
82
|
+
if (row === row_num - 1) {
|
83
|
+
table += get_edge(max_widths, true);
|
84
|
+
}
|
85
|
+
});
|
86
|
+
console.log(table);
|
87
|
+
if (callBack) {
|
88
|
+
callBack(table);
|
89
|
+
}
|
90
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export default function deepCopy<T = unknown>(data: T): T;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { Typeof } from '..';
|
2
|
+
export default function deepCopy(data) {
|
3
|
+
if (Typeof(data) === 'date') {
|
4
|
+
return new Date(data.toISOString());
|
5
|
+
}
|
6
|
+
else if (Typeof(data) === 'formdata') {
|
7
|
+
const _data = data;
|
8
|
+
const _formData = new FormData();
|
9
|
+
_data.forEach((value, key) => {
|
10
|
+
_formData.append(key, value);
|
11
|
+
});
|
12
|
+
return _formData;
|
13
|
+
}
|
14
|
+
else if (Array.isArray(data)) {
|
15
|
+
const newData = data.map((item) => {
|
16
|
+
if (typeof item === 'object') {
|
17
|
+
return deepCopy(item);
|
18
|
+
}
|
19
|
+
else {
|
20
|
+
return item;
|
21
|
+
}
|
22
|
+
});
|
23
|
+
return newData;
|
24
|
+
}
|
25
|
+
else if (data && Typeof(data) === 'object') {
|
26
|
+
const _data = data;
|
27
|
+
const newData = {};
|
28
|
+
Object.keys(_data).forEach((key) => {
|
29
|
+
const _item = _data[key];
|
30
|
+
if (typeof _item === 'object') {
|
31
|
+
newData[key] = deepCopy(_item);
|
32
|
+
}
|
33
|
+
else {
|
34
|
+
newData[key] = _item;
|
35
|
+
}
|
36
|
+
});
|
37
|
+
return newData;
|
38
|
+
}
|
39
|
+
return data;
|
40
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
export declare function TypeEqual<T = unknown>(obj1: T, obj2: T): boolean;
|
2
|
+
export declare function ValEqual<T = unknown>(obj1: T, obj2: T): boolean;
|
3
|
+
export declare function ObjEqual<T = object>(obj1: T, obj2: T): boolean;
|
4
|
+
declare const Equal: {
|
5
|
+
ObjEqual: typeof ObjEqual;
|
6
|
+
ValEqual: typeof ValEqual;
|
7
|
+
TypeEqual: typeof TypeEqual;
|
8
|
+
};
|
9
|
+
export default Equal;
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import { Typeof } from '..';
|
2
|
+
export function TypeEqual(obj1, obj2) {
|
3
|
+
let isEqual = false;
|
4
|
+
if (Typeof(obj1) !== Typeof(obj2)) {
|
5
|
+
isEqual = false;
|
6
|
+
}
|
7
|
+
else {
|
8
|
+
isEqual = true;
|
9
|
+
}
|
10
|
+
return isEqual;
|
11
|
+
}
|
12
|
+
export function ValEqual(obj1, obj2) {
|
13
|
+
let isEqual = false;
|
14
|
+
if ((obj1 === null && obj2 === undefined) || (obj1 === undefined && obj2 === null)) {
|
15
|
+
isEqual = true;
|
16
|
+
}
|
17
|
+
else {
|
18
|
+
if (typeof obj1 === 'object' && typeof obj2 === 'object') {
|
19
|
+
isEqual = ObjEqual(obj1, obj2);
|
20
|
+
}
|
21
|
+
else if (typeof obj1 === 'function' && typeof obj2 === 'function') {
|
22
|
+
isEqual = JSON.stringify(obj1) === JSON.stringify(obj2);
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
isEqual = obj1 === obj2;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
return isEqual;
|
29
|
+
}
|
30
|
+
export function ObjEqual(obj1, obj2) {
|
31
|
+
let isEqual = false;
|
32
|
+
if (obj1 !== null && obj2 !== null) {
|
33
|
+
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
34
|
+
obj1.sort();
|
35
|
+
obj2.sort();
|
36
|
+
if (obj1.length !== obj2.length) {
|
37
|
+
isEqual = false;
|
38
|
+
}
|
39
|
+
else {
|
40
|
+
for (let i = 0; i < obj1.length; i++) {
|
41
|
+
isEqual = ValEqual(obj1[i], obj2[i]);
|
42
|
+
if (!isEqual)
|
43
|
+
break;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
else if (typeof obj1 === 'object' && typeof obj2 === 'object') {
|
48
|
+
if (Object.keys(obj1).length !== Object.keys(obj2).length) {
|
49
|
+
isEqual = false;
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
for (const key in obj1) {
|
53
|
+
isEqual = ValEqual(obj1[key], obj2[key]);
|
54
|
+
if (!isEqual)
|
55
|
+
break;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
else if (obj1 === null && obj2 === null) {
|
61
|
+
isEqual = true;
|
62
|
+
}
|
63
|
+
return isEqual;
|
64
|
+
}
|
65
|
+
const Equal = { ObjEqual, ValEqual, TypeEqual };
|
66
|
+
export default Equal;
|
package/es/index.d.ts
ADDED
package/es/index.js
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var NODE = '+';
|
4
|
+
var EDGE = '-';
|
5
|
+
var HIGH = '|';
|
6
|
+
var SPACE = ' ';
|
7
|
+
var EMPTY = '';
|
8
|
+
function get_string_width(str) {
|
9
|
+
var width = 0;
|
10
|
+
for (var _i = 0, str_1 = str; _i < str_1.length; _i++) {
|
11
|
+
var char = str_1[_i];
|
12
|
+
width += char.charCodeAt(0) < 128 && char.charCodeAt(0) >= 0 ? 1 : 2;
|
13
|
+
}
|
14
|
+
return width;
|
15
|
+
}
|
16
|
+
function get_egde(width) {
|
17
|
+
var edge = '';
|
18
|
+
for (var i = 0; i <= width; i++) {
|
19
|
+
edge += EDGE;
|
20
|
+
}
|
21
|
+
return edge;
|
22
|
+
}
|
23
|
+
function get_edge(widths, no_line_break) {
|
24
|
+
if (no_line_break === void 0) { no_line_break = false; }
|
25
|
+
var col_num = widths.length;
|
26
|
+
var border = '';
|
27
|
+
widths.forEach(function (width, col) {
|
28
|
+
border += NODE + get_egde(width + 1);
|
29
|
+
if (col === col_num - 1) {
|
30
|
+
border += NODE + (no_line_break ? EMPTY : '\n');
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
border += EMPTY;
|
34
|
+
}
|
35
|
+
});
|
36
|
+
return border;
|
37
|
+
}
|
38
|
+
function get_space(width) {
|
39
|
+
var space = '';
|
40
|
+
for (var i = 0; i <= width; i++) {
|
41
|
+
space += SPACE;
|
42
|
+
}
|
43
|
+
return space;
|
44
|
+
}
|
45
|
+
function wirte_data(widths, data) {
|
46
|
+
var col_num = widths.length;
|
47
|
+
var content = '';
|
48
|
+
widths.forEach(function (width, col) {
|
49
|
+
var col_data = data[col];
|
50
|
+
var _content = '';
|
51
|
+
if (!isNaN(+col_data)) {
|
52
|
+
_content += get_space(width - get_string_width(col_data.toString())) + col_data + SPACE;
|
53
|
+
}
|
54
|
+
else {
|
55
|
+
_content += SPACE + (col_data !== null && col_data !== void 0 ? col_data : '') + get_space(width - get_string_width((col_data !== null && col_data !== void 0 ? col_data : '').toString()));
|
56
|
+
}
|
57
|
+
content += HIGH + _content;
|
58
|
+
if (col === col_num - 1) {
|
59
|
+
content += HIGH + '\n';
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
content += EMPTY;
|
63
|
+
}
|
64
|
+
});
|
65
|
+
return content;
|
66
|
+
}
|
67
|
+
function get_max_widths(data) {
|
68
|
+
var max_widths = Object.keys(data[0]).map(function (v) { return +v; });
|
69
|
+
for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
|
70
|
+
var row_data = data_1[_i];
|
71
|
+
row_data.forEach(function (col_data, idx) {
|
72
|
+
var width = get_string_width(col_data.toString());
|
73
|
+
max_widths[idx] = Math.max(width, max_widths[idx]);
|
74
|
+
});
|
75
|
+
}
|
76
|
+
return max_widths;
|
77
|
+
}
|
78
|
+
function console_table(data, callBack) {
|
79
|
+
var row_num = data.length;
|
80
|
+
var max_widths = get_max_widths(data);
|
81
|
+
var table = '';
|
82
|
+
data.forEach(function (row_data, row) {
|
83
|
+
if (row <= 1) {
|
84
|
+
table += get_edge(max_widths);
|
85
|
+
}
|
86
|
+
table += wirte_data(max_widths, row_data);
|
87
|
+
if (row === row_num - 1) {
|
88
|
+
table += get_edge(max_widths, true);
|
89
|
+
}
|
90
|
+
});
|
91
|
+
console.log(table);
|
92
|
+
if (callBack) {
|
93
|
+
callBack(table);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
exports.default = console_table;
|
@@ -0,0 +1 @@
|
|
1
|
+
export default function deepCopy<T = unknown>(data: T): T;
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var __1 = require("..");
|
4
|
+
function deepCopy(data) {
|
5
|
+
if ((0, __1.Typeof)(data) === 'date') {
|
6
|
+
return new Date(data.toISOString());
|
7
|
+
}
|
8
|
+
else if ((0, __1.Typeof)(data) === 'formdata') {
|
9
|
+
var _data = data;
|
10
|
+
var _formData_1 = new FormData();
|
11
|
+
_data.forEach(function (value, key) {
|
12
|
+
_formData_1.append(key, value);
|
13
|
+
});
|
14
|
+
return _formData_1;
|
15
|
+
}
|
16
|
+
else if (Array.isArray(data)) {
|
17
|
+
var newData = data.map(function (item) {
|
18
|
+
if (typeof item === 'object') {
|
19
|
+
return deepCopy(item);
|
20
|
+
}
|
21
|
+
else {
|
22
|
+
return item;
|
23
|
+
}
|
24
|
+
});
|
25
|
+
return newData;
|
26
|
+
}
|
27
|
+
else if (data && (0, __1.Typeof)(data) === 'object') {
|
28
|
+
var _data_1 = data;
|
29
|
+
var newData_1 = {};
|
30
|
+
Object.keys(_data_1).forEach(function (key) {
|
31
|
+
var _item = _data_1[key];
|
32
|
+
if (typeof _item === 'object') {
|
33
|
+
newData_1[key] = deepCopy(_item);
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
newData_1[key] = _item;
|
37
|
+
}
|
38
|
+
});
|
39
|
+
return newData_1;
|
40
|
+
}
|
41
|
+
return data;
|
42
|
+
}
|
43
|
+
exports.default = deepCopy;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
export declare function TypeEqual<T = unknown>(obj1: T, obj2: T): boolean;
|
2
|
+
export declare function ValEqual<T = unknown>(obj1: T, obj2: T): boolean;
|
3
|
+
export declare function ObjEqual<T = object>(obj1: T, obj2: T): boolean;
|
4
|
+
declare const Equal: {
|
5
|
+
ObjEqual: typeof ObjEqual;
|
6
|
+
ValEqual: typeof ValEqual;
|
7
|
+
TypeEqual: typeof TypeEqual;
|
8
|
+
};
|
9
|
+
export default Equal;
|
@@ -0,0 +1,72 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ObjEqual = exports.ValEqual = exports.TypeEqual = void 0;
|
4
|
+
var __1 = require("..");
|
5
|
+
function TypeEqual(obj1, obj2) {
|
6
|
+
var isEqual = false;
|
7
|
+
if ((0, __1.Typeof)(obj1) !== (0, __1.Typeof)(obj2)) {
|
8
|
+
isEqual = false;
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
isEqual = true;
|
12
|
+
}
|
13
|
+
return isEqual;
|
14
|
+
}
|
15
|
+
exports.TypeEqual = TypeEqual;
|
16
|
+
function ValEqual(obj1, obj2) {
|
17
|
+
var isEqual = false;
|
18
|
+
if ((obj1 === null && obj2 === undefined) || (obj1 === undefined && obj2 === null)) {
|
19
|
+
isEqual = true;
|
20
|
+
}
|
21
|
+
else {
|
22
|
+
if (typeof obj1 === 'object' && typeof obj2 === 'object') {
|
23
|
+
isEqual = ObjEqual(obj1, obj2);
|
24
|
+
}
|
25
|
+
else if (typeof obj1 === 'function' && typeof obj2 === 'function') {
|
26
|
+
isEqual = JSON.stringify(obj1) === JSON.stringify(obj2);
|
27
|
+
}
|
28
|
+
else {
|
29
|
+
isEqual = obj1 === obj2;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
return isEqual;
|
33
|
+
}
|
34
|
+
exports.ValEqual = ValEqual;
|
35
|
+
function ObjEqual(obj1, obj2) {
|
36
|
+
var isEqual = false;
|
37
|
+
if (obj1 !== null && obj2 !== null) {
|
38
|
+
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
39
|
+
obj1.sort();
|
40
|
+
obj2.sort();
|
41
|
+
if (obj1.length !== obj2.length) {
|
42
|
+
isEqual = false;
|
43
|
+
}
|
44
|
+
else {
|
45
|
+
for (var i = 0; i < obj1.length; i++) {
|
46
|
+
isEqual = ValEqual(obj1[i], obj2[i]);
|
47
|
+
if (!isEqual)
|
48
|
+
break;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
else if (typeof obj1 === 'object' && typeof obj2 === 'object') {
|
53
|
+
if (Object.keys(obj1).length !== Object.keys(obj2).length) {
|
54
|
+
isEqual = false;
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
for (var key in obj1) {
|
58
|
+
isEqual = ValEqual(obj1[key], obj2[key]);
|
59
|
+
if (!isEqual)
|
60
|
+
break;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
else if (obj1 === null && obj2 === null) {
|
66
|
+
isEqual = true;
|
67
|
+
}
|
68
|
+
return isEqual;
|
69
|
+
}
|
70
|
+
exports.ObjEqual = ObjEqual;
|
71
|
+
var Equal = { ObjEqual: ObjEqual, ValEqual: ValEqual, TypeEqual: TypeEqual };
|
72
|
+
exports.default = Equal;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
function Typeof(value) {
|
4
|
+
var object_type = Object.prototype.toString.call(value);
|
5
|
+
var reg = new RegExp(' (.+?)]');
|
6
|
+
var type = object_type.match(reg)[1];
|
7
|
+
return type.toLowerCase();
|
8
|
+
}
|
9
|
+
exports.default = Typeof;
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.Typeof = exports.Equal = exports.deepCopy = exports.console_table = void 0;
|
7
|
+
var ConsoleTable_1 = __importDefault(require("./ConsoleTable"));
|
8
|
+
exports.console_table = ConsoleTable_1.default;
|
9
|
+
var DeepCopy_1 = __importDefault(require("./DeepCopy"));
|
10
|
+
exports.deepCopy = DeepCopy_1.default;
|
11
|
+
var Equal_1 = __importDefault(require("./Equal"));
|
12
|
+
exports.Equal = Equal_1.default;
|
13
|
+
var Typeof_1 = __importDefault(require("./Typeof"));
|
14
|
+
exports.Typeof = Typeof_1.default;
|
package/package.json
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
{
|
2
|
+
"name": "hsu-utils",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"description": "some front-end uilts",
|
5
|
+
"repository": "git@github.com:VitaTsui/hsu-utils.git",
|
6
|
+
"author": "VitaHsu <vitahsu7@gmail.com>",
|
7
|
+
"license": "MIT",
|
8
|
+
"main": "lib/index.js",
|
9
|
+
"module": "es/index.js",
|
10
|
+
"unpkg": "dist/hsu-utils.min.js",
|
11
|
+
"files": [
|
12
|
+
"es",
|
13
|
+
"lib",
|
14
|
+
"dist",
|
15
|
+
"package.json",
|
16
|
+
"README.md",
|
17
|
+
"LICENSE"
|
18
|
+
],
|
19
|
+
"sideEffects": [
|
20
|
+
"es/*",
|
21
|
+
"lib/*",
|
22
|
+
"dist/*"
|
23
|
+
],
|
24
|
+
"scripts": {
|
25
|
+
"build": "yarn build:es && yarn build:cjs && rimraf dist && yarn build:umd",
|
26
|
+
"build:es": "rimraf es && tsc -p build/tsconfig.es.json",
|
27
|
+
"build:cjs": "rimraf lib && tsc -p build/tsconfig.cjs.json",
|
28
|
+
"build:umd": "rimraf dist && yarn build:dev && yarn build:prod",
|
29
|
+
"build:dev": "cross-env NODE_ENV=development webpack --config build/webpack.config.js",
|
30
|
+
"build:prod": "cross-env NODE_ENV=production webpack --config build/webpack.config.js",
|
31
|
+
"clear": "rimraf lib && rimraf es && rimraf dist",
|
32
|
+
"test": "jest",
|
33
|
+
"publish:patch": "yarn build && yarn publish --new-version patch",
|
34
|
+
"publish:minor": "yarn build && yarn publish --new-version minor",
|
35
|
+
"publish:major": "yarn build && yarn publish --new-version major"
|
36
|
+
},
|
37
|
+
"devDependencies": {
|
38
|
+
"@jest/globals": "^29.5.0",
|
39
|
+
"@testing-library/react-hooks": "^8.0.1",
|
40
|
+
"@types/jest": "^29.5.2",
|
41
|
+
"cross-env": "^7.0.3",
|
42
|
+
"jest": "^29.5.0",
|
43
|
+
"jest-environment-jsdom": "^29.5.0",
|
44
|
+
"jsdom": "^22.1.0",
|
45
|
+
"rimraf": "^5.0.1",
|
46
|
+
"terser-webpack-plugin": "^5.3.0",
|
47
|
+
"ts-jest": "^29.1.0",
|
48
|
+
"ts-loader": "^9.2.6",
|
49
|
+
"ts-node": "^10.9.1",
|
50
|
+
"typescript": "^5.1.3",
|
51
|
+
"webpack": "^5.65.0",
|
52
|
+
"webpack-cli": "^4.9.1"
|
53
|
+
},
|
54
|
+
"dependencies": {}
|
55
|
+
}
|