topsyde-utils 1.0.7 → 1.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/README.md +29 -48
- package/dist/application.js +41 -0
- package/dist/application.js.map +1 -0
- package/dist/consts.js +34 -0
- package/dist/consts.js.map +1 -0
- package/dist/enums.js +19 -0
- package/dist/enums.js.map +1 -0
- package/dist/errors.js +46 -0
- package/dist/errors.js.map +1 -0
- package/dist/guards.js +42 -0
- package/dist/guards.js.map +1 -0
- package/dist/index.js +79 -1035
- package/dist/index.js.map +1 -22
- package/dist/initializable.js +309 -0
- package/dist/initializable.js.map +1 -0
- package/dist/lib.js +460 -0
- package/dist/lib.js.map +1 -0
- package/dist/router/index.d.ts +5 -5
- package/dist/router/index.js +30 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/router.internal.js +47 -0
- package/dist/router/router.internal.js.map +1 -0
- package/dist/router/router.js +43 -0
- package/dist/router/router.js.map +1 -0
- package/dist/router/routes.js +5 -0
- package/dist/router/routes.js.map +1 -0
- package/dist/server/controller.js +55 -0
- package/dist/server/controller.js.map +1 -0
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +26 -0
- package/dist/server/index.js.map +1 -0
- package/dist/singleton.js +142 -0
- package/dist/singleton.js.map +1 -0
- package/dist/throwable.js +70 -0
- package/dist/throwable.js.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +10 -10
package/README.md
CHANGED
@@ -177,28 +177,6 @@ To generate the index files:
|
|
177
177
|
bun run generate-indexes
|
178
178
|
```
|
179
179
|
|
180
|
-
### Building the Package
|
181
|
-
|
182
|
-
The build process is streamlined to perform several tasks in sequence:
|
183
|
-
|
184
|
-
1. Clean the dist directory
|
185
|
-
2. Generate index files
|
186
|
-
3. Compile TypeScript using Bun's fast bundler
|
187
|
-
4. Format generated index files
|
188
|
-
5. Generate TypeScript declaration files
|
189
|
-
|
190
|
-
To build the package:
|
191
|
-
|
192
|
-
```bash
|
193
|
-
bun run build
|
194
|
-
```
|
195
|
-
|
196
|
-
For faster development builds (without type declarations or source maps):
|
197
|
-
|
198
|
-
```bash
|
199
|
-
bun run build:fast
|
200
|
-
```
|
201
|
-
|
202
180
|
### Development Scripts
|
203
181
|
|
204
182
|
- `bun run clean` - Remove the dist directory
|
@@ -207,27 +185,15 @@ bun run build:fast
|
|
207
185
|
- `bun run lint` - Lint TypeScript files with ESLint (using cache)
|
208
186
|
- `bun run test` - Run tests with Jest
|
209
187
|
- `bun run generate-indexes` - Generate index files only
|
210
|
-
- `bun run build:
|
188
|
+
- `bun run build:ts` - Compile TypeScript files
|
189
|
+
- `bun run build:types` - Generate TypeScript declaration files
|
190
|
+
- `bun run build:prepare` - Clean, generate indexes, and format generated files
|
191
|
+
- `bun run build` - Complete build process (prepare, compile, generate types)
|
192
|
+
- `bun run version:bump` - Bump version without creating git tags
|
211
193
|
|
212
194
|
### Publishing
|
213
195
|
|
214
|
-
To publish a new version of the package,
|
215
|
-
|
216
|
-
#### Manual Version Specification
|
217
|
-
|
218
|
-
```bash
|
219
|
-
./scripts/publish.sh <version> [tag]
|
220
|
-
```
|
221
|
-
|
222
|
-
For example:
|
223
|
-
```bash
|
224
|
-
./scripts/publish.sh 1.0.2
|
225
|
-
./scripts/publish.sh 1.1.0-beta beta
|
226
|
-
```
|
227
|
-
|
228
|
-
#### Automated Version Increment
|
229
|
-
|
230
|
-
For a more streamlined release process, use the release script which automatically increments the version number:
|
196
|
+
To publish a new version of the package, use the optimized release script:
|
231
197
|
|
232
198
|
```bash
|
233
199
|
# Using the script directly
|
@@ -249,16 +215,31 @@ bun run release minor beta # Increment minor version with 'beta' tag
|
|
249
215
|
The release script will:
|
250
216
|
1. Calculate and display the new version number
|
251
217
|
2. Ask for confirmation before proceeding
|
252
|
-
3.
|
253
|
-
4.
|
254
|
-
5. Build the package
|
255
|
-
6. Publish
|
218
|
+
3. Run linting to ensure code quality
|
219
|
+
4. Update the version in package.json
|
220
|
+
5. Build the package with all optimizations
|
221
|
+
6. Publish the package with the specified tag
|
222
|
+
7. Display the time taken for the release process
|
256
223
|
|
257
|
-
|
224
|
+
The script includes robust error handling and will exit on any failure, ensuring that the package is only published when all steps complete successfully.
|
225
|
+
|
226
|
+
### Testing the Release Process
|
227
|
+
|
228
|
+
You can test the release process without actually publishing to npm using these commands:
|
229
|
+
|
230
|
+
```bash
|
231
|
+
# Test the release process without building or publishing
|
232
|
+
bun run release:dry-run [patch|minor|major] [tag]
|
233
|
+
|
234
|
+
# Test the full release process including building but without publishing to npm
|
235
|
+
bun run release:test [patch|minor|major] [tag]
|
236
|
+
```
|
258
237
|
|
259
|
-
|
260
|
-
-
|
261
|
-
-
|
238
|
+
These test options are useful for:
|
239
|
+
- Verifying that the release script works correctly
|
240
|
+
- Testing the build process without affecting the npm registry
|
241
|
+
- Checking what files will be included in the published package
|
242
|
+
- Measuring the time taken for the release process
|
262
243
|
|
263
244
|
## License
|
264
245
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.RESPONSE_METHOD_OPTIONS = exports.RESPONSE_INIT = void 0;
|
4
|
+
const RESPONSE_INIT = (status, headers) => {
|
5
|
+
return {
|
6
|
+
status: status ?? 200,
|
7
|
+
headers: {
|
8
|
+
"Content-Type": "application/json",
|
9
|
+
"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
|
10
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
11
|
+
"Access-Control-Allow-Credentials": "true",
|
12
|
+
},
|
13
|
+
};
|
14
|
+
};
|
15
|
+
exports.RESPONSE_INIT = RESPONSE_INIT;
|
16
|
+
exports.RESPONSE_METHOD_OPTIONS = {
|
17
|
+
name: "Access-Control-Max-Age",
|
18
|
+
value: "86400",
|
19
|
+
};
|
20
|
+
class Application {
|
21
|
+
static Response(data, status = 200, headers) {
|
22
|
+
const response = {
|
23
|
+
status: true,
|
24
|
+
data,
|
25
|
+
};
|
26
|
+
return Response.json(response, (0, exports.RESPONSE_INIT)(status, headers));
|
27
|
+
}
|
28
|
+
static Error(error, status = 200, headers) {
|
29
|
+
const response = {
|
30
|
+
status: false,
|
31
|
+
data: error,
|
32
|
+
error,
|
33
|
+
};
|
34
|
+
return Response.json(response, (0, exports.RESPONSE_INIT)(status, headers));
|
35
|
+
}
|
36
|
+
static Throw(error, status = 400, headers) {
|
37
|
+
return Response.json(error, (0, exports.RESPONSE_INIT)(status, headers));
|
38
|
+
}
|
39
|
+
}
|
40
|
+
exports.default = Application;
|
41
|
+
//# sourceMappingURL=application.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":";;;AAEO,MAAM,aAAa,GAAG,CAAC,MAAe,EAAE,OAAqB,EAAgB,EAAE;IACrF,OAAO;QACN,MAAM,EAAE,MAAM,IAAI,GAAG;QACrB,OAAO,EAAE;YACR,cAAc,EAAE,kBAAkB;YAClC,8BAA8B,EAAE,oBAAoB;YACpD,8BAA8B,EAAE,6BAA6B;YAC7D,kCAAkC,EAAE,MAAM;SAC1C;KACD,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,aAAa,iBAUxB;AAEW,QAAA,uBAAuB,GAAG;IACtC,IAAI,EAAE,wBAAwB;IAC9B,KAAK,EAAE,OAAO;CACd,CAAC;AAEF,MAAM,WAAW;IACT,MAAM,CAAC,QAAQ,CAAI,IAAO,EAAE,MAAM,GAAG,GAAG,EAAE,OAAqB;QACrE,MAAM,QAAQ,GAA6B;YAC1C,MAAM,EAAE,IAAI;YACZ,IAAI;SACJ,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAA,qBAAa,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,KAAK,CAAuC,KAAQ,EAAE,MAAM,GAAG,GAAG,EAAE,OAAqB;QACtG,MAAM,QAAQ,GAA6B;YAC1C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,KAAK;YACX,KAAK;SACL,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAA,qBAAa,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,KAAK,CAAuC,KAAQ,EAAE,MAAM,GAAG,GAAG,EAAE,OAAqB;QACtG,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAA,qBAAa,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;CACD;AAED,kBAAe,WAAW,CAAC"}
|
package/dist/consts.js
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.LOG_COLORS = exports.DEFAULT_FALSE_RESPONSE = void 0;
|
4
|
+
exports.DEFAULT_FALSE_RESPONSE = "Something went wrong. Please try again later.";
|
5
|
+
exports.LOG_COLORS = {
|
6
|
+
reset: "\x1b[0m",
|
7
|
+
bright: "\x1b[1m",
|
8
|
+
dim: "\x1b[2m",
|
9
|
+
underscore: "\x1b[4m",
|
10
|
+
blink: "\x1b[5m",
|
11
|
+
reverse: "\x1b[7m",
|
12
|
+
hidden: "\x1b[8m",
|
13
|
+
text: {
|
14
|
+
black: "\x1b[30m",
|
15
|
+
red: "\x1b[31m",
|
16
|
+
green: "\x1b[32m",
|
17
|
+
yellow: "\x1b[33m",
|
18
|
+
blue: "\x1b[34m",
|
19
|
+
magenta: "\x1b[35m",
|
20
|
+
cyan: "\x1b[36m",
|
21
|
+
white: "\x1b[37m",
|
22
|
+
},
|
23
|
+
bg: {
|
24
|
+
black: "\x1b[40m",
|
25
|
+
red: "\x1b[41m",
|
26
|
+
green: "\x1b[42m",
|
27
|
+
yellow: "\x1b[43m",
|
28
|
+
blue: "\x1b[44m",
|
29
|
+
magenta: "\x1b[45m",
|
30
|
+
cyan: "\x1b[46m",
|
31
|
+
white: "\x1b[47m",
|
32
|
+
},
|
33
|
+
};
|
34
|
+
//# sourceMappingURL=consts.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,+CAA+C,CAAC;AAEzE,QAAA,UAAU,GAAG;IACzB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;IACd,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IAEjB,IAAI,EAAE;QACL,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KACjB;IACD,EAAE,EAAE;QACH,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KACjB;CACD,CAAC"}
|
package/dist/enums.js
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.E_ENVIRONMENTS = exports.E_IS = void 0;
|
4
|
+
var E_IS;
|
5
|
+
(function (E_IS) {
|
6
|
+
E_IS["ARRAY"] = "array";
|
7
|
+
E_IS["OBJECT"] = "object";
|
8
|
+
E_IS["FUNCTION"] = "function";
|
9
|
+
E_IS["STRING"] = "string";
|
10
|
+
E_IS["NUMBER"] = "number";
|
11
|
+
E_IS["BOOLEAN"] = "boolean";
|
12
|
+
E_IS["REGEX"] = "regex";
|
13
|
+
})(E_IS || (exports.E_IS = E_IS = {}));
|
14
|
+
var E_ENVIRONMENTS;
|
15
|
+
(function (E_ENVIRONMENTS) {
|
16
|
+
E_ENVIRONMENTS["DEV"] = "development";
|
17
|
+
E_ENVIRONMENTS["PROD"] = "production";
|
18
|
+
})(E_ENVIRONMENTS || (exports.E_ENVIRONMENTS = E_ENVIRONMENTS = {}));
|
19
|
+
//# sourceMappingURL=enums.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,IAQX;AARD,WAAY,IAAI;IACf,uBAAe,CAAA;IACf,yBAAiB,CAAA;IACjB,6BAAqB,CAAA;IACrB,yBAAiB,CAAA;IACjB,yBAAiB,CAAA;IACjB,2BAAmB,CAAA;IACnB,uBAAe,CAAA;AAChB,CAAC,EARW,IAAI,oBAAJ,IAAI,QAQf;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACzB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACpB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB"}
|
package/dist/errors.js
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.WS_ERROR_CODE = exports.HTTP_ERROR_CODE = exports.ERROR_CODE = void 0;
|
4
|
+
// Error code enums
|
5
|
+
var ERROR_CODE;
|
6
|
+
(function (ERROR_CODE) {
|
7
|
+
ERROR_CODE[ERROR_CODE["NO_REQUEST"] = -1] = "NO_REQUEST";
|
8
|
+
ERROR_CODE[ERROR_CODE["UNKNOWN_ERROR"] = 0] = "UNKNOWN_ERROR";
|
9
|
+
ERROR_CODE[ERROR_CODE["INVALID_METHOD"] = 1] = "INVALID_METHOD";
|
10
|
+
ERROR_CODE[ERROR_CODE["INVALID_REQUEST"] = 2] = "INVALID_REQUEST";
|
11
|
+
ERROR_CODE[ERROR_CODE["INVALID_CONTROLLER"] = 3] = "INVALID_CONTROLLER";
|
12
|
+
ERROR_CODE[ERROR_CODE["INVALID_ACTION"] = 4] = "INVALID_ACTION";
|
13
|
+
ERROR_CODE[ERROR_CODE["NO_ACTION_IN_MAP"] = 5] = "NO_ACTION_IN_MAP";
|
14
|
+
ERROR_CODE[ERROR_CODE["NO_METHOD_HANDLER"] = 6] = "NO_METHOD_HANDLER";
|
15
|
+
ERROR_CODE[ERROR_CODE["INVALID_METHOD_INPUT"] = 7] = "INVALID_METHOD_INPUT";
|
16
|
+
ERROR_CODE[ERROR_CODE["REQ_BODY_EMPTY"] = 8] = "REQ_BODY_EMPTY";
|
17
|
+
})(ERROR_CODE || (exports.ERROR_CODE = ERROR_CODE = {}));
|
18
|
+
var HTTP_ERROR_CODE;
|
19
|
+
(function (HTTP_ERROR_CODE) {
|
20
|
+
HTTP_ERROR_CODE[HTTP_ERROR_CODE["OK"] = 200] = "OK";
|
21
|
+
HTTP_ERROR_CODE[HTTP_ERROR_CODE["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
22
|
+
HTTP_ERROR_CODE[HTTP_ERROR_CODE["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
23
|
+
HTTP_ERROR_CODE[HTTP_ERROR_CODE["FORBIDDEN"] = 403] = "FORBIDDEN";
|
24
|
+
HTTP_ERROR_CODE[HTTP_ERROR_CODE["NOT_FOUND"] = 404] = "NOT_FOUND";
|
25
|
+
HTTP_ERROR_CODE[HTTP_ERROR_CODE["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
|
26
|
+
})(HTTP_ERROR_CODE || (exports.HTTP_ERROR_CODE = HTTP_ERROR_CODE = {}));
|
27
|
+
var WS_ERROR_CODE;
|
28
|
+
(function (WS_ERROR_CODE) {
|
29
|
+
// WebSocket close event codes
|
30
|
+
WS_ERROR_CODE[WS_ERROR_CODE["NORMAL_CLOSURE"] = 1000] = "NORMAL_CLOSURE";
|
31
|
+
WS_ERROR_CODE[WS_ERROR_CODE["GOING_AWAY"] = 1001] = "GOING_AWAY";
|
32
|
+
WS_ERROR_CODE[WS_ERROR_CODE["PROTOCOL_ERROR"] = 1002] = "PROTOCOL_ERROR";
|
33
|
+
WS_ERROR_CODE[WS_ERROR_CODE["UNSUPPORTED_DATA"] = 1003] = "UNSUPPORTED_DATA";
|
34
|
+
WS_ERROR_CODE[WS_ERROR_CODE["NO_STATUS_RECEIVED"] = 1005] = "NO_STATUS_RECEIVED";
|
35
|
+
WS_ERROR_CODE[WS_ERROR_CODE["ABNORMAL_CLOSURE"] = 1006] = "ABNORMAL_CLOSURE";
|
36
|
+
WS_ERROR_CODE[WS_ERROR_CODE["INVALID_FRAME_PAYLOAD_DATA"] = 1007] = "INVALID_FRAME_PAYLOAD_DATA";
|
37
|
+
WS_ERROR_CODE[WS_ERROR_CODE["POLICY_VIOLATION"] = 1008] = "POLICY_VIOLATION";
|
38
|
+
WS_ERROR_CODE[WS_ERROR_CODE["MESSAGE_TOO_BIG"] = 1009] = "MESSAGE_TOO_BIG";
|
39
|
+
WS_ERROR_CODE[WS_ERROR_CODE["MISSING_EXTENSION"] = 1010] = "MISSING_EXTENSION";
|
40
|
+
WS_ERROR_CODE[WS_ERROR_CODE["INTERNAL_ERROR"] = 1011] = "INTERNAL_ERROR";
|
41
|
+
WS_ERROR_CODE[WS_ERROR_CODE["SERVICE_RESTART"] = 1012] = "SERVICE_RESTART";
|
42
|
+
WS_ERROR_CODE[WS_ERROR_CODE["TRY_AGAIN_LATER"] = 1013] = "TRY_AGAIN_LATER";
|
43
|
+
WS_ERROR_CODE[WS_ERROR_CODE["BAD_GATEWAY"] = 1014] = "BAD_GATEWAY";
|
44
|
+
WS_ERROR_CODE[WS_ERROR_CODE["TLS_HANDSHAKE"] = 1015] = "TLS_HANDSHAKE";
|
45
|
+
})(WS_ERROR_CODE || (exports.WS_ERROR_CODE = WS_ERROR_CODE = {}));
|
46
|
+
//# sourceMappingURL=errors.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACnB,IAAY,UAWX;AAXD,WAAY,UAAU;IACrB,wDAAe,CAAA;IACf,6DAAiB,CAAA;IACjB,+DAAkB,CAAA;IAClB,iEAAmB,CAAA;IACnB,uEAAsB,CAAA;IACtB,+DAAkB,CAAA;IAClB,mEAAoB,CAAA;IACpB,qEAAqB,CAAA;IACrB,2EAAwB,CAAA;IACxB,+DAAkB,CAAA;AACnB,CAAC,EAXW,UAAU,0BAAV,UAAU,QAWrB;AAED,IAAY,eAOX;AAPD,WAAY,eAAe;IAC1B,mDAAQ,CAAA;IACR,qEAAiB,CAAA;IACjB,uEAAkB,CAAA;IAClB,iEAAe,CAAA;IACf,iEAAe,CAAA;IACf,yFAA2B,CAAA;AAC5B,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AAED,IAAY,aAiBX;AAjBD,WAAY,aAAa;IACxB,8BAA8B;IAC9B,wEAAqB,CAAA;IACrB,gEAAiB,CAAA;IACjB,wEAAqB,CAAA;IACrB,4EAAuB,CAAA;IACvB,gFAAyB,CAAA;IACzB,4EAAuB,CAAA;IACvB,gGAAiC,CAAA;IACjC,4EAAuB,CAAA;IACvB,0EAAsB,CAAA;IACtB,8EAAwB,CAAA;IACxB,wEAAqB,CAAA;IACrB,0EAAsB,CAAA;IACtB,0EAAsB,CAAA;IACtB,kEAAkB,CAAA;IAClB,sEAAoB,CAAA;AACrB,CAAC,EAjBW,aAAa,6BAAb,aAAa,QAiBxB"}
|
package/dist/guards.js
ADDED
@@ -0,0 +1,42 @@
|
|
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
|
+
const lib_1 = __importDefault(require("./lib"));
|
7
|
+
class Guards {
|
8
|
+
static IsString(value, excludeNull = false) {
|
9
|
+
const output = lib_1.default.IsString(value);
|
10
|
+
return excludeNull ? !Guards.IsNil(value) && output : output;
|
11
|
+
}
|
12
|
+
static IsNumber(value, excludeNull = false) {
|
13
|
+
const output = lib_1.default.IsNumber(value);
|
14
|
+
return excludeNull ? !Guards.IsNil(value) && output : output;
|
15
|
+
}
|
16
|
+
static IsBoolean(value, excludeNull = false) {
|
17
|
+
const output = lib_1.default.GetType(value, true) === "boolean";
|
18
|
+
return excludeNull ? !Guards.IsNil(value) && output : output;
|
19
|
+
}
|
20
|
+
static IsArray(value, excludeNull = false) {
|
21
|
+
const output = lib_1.default.IsArray(value);
|
22
|
+
return excludeNull ? !Guards.IsNil(value) && output : output;
|
23
|
+
}
|
24
|
+
static IsObject(value, excludeNull = false) {
|
25
|
+
const output = lib_1.default.IsObject(value);
|
26
|
+
return excludeNull ? !Guards.IsNil(value) && output : output;
|
27
|
+
}
|
28
|
+
static IsFunction(value, excludeNull = false) {
|
29
|
+
const output = lib_1.default.IsFunction(value);
|
30
|
+
return excludeNull ? !Guards.IsNil(value) && output : output;
|
31
|
+
}
|
32
|
+
static IsNil(value) {
|
33
|
+
return lib_1.default.IsNil(value);
|
34
|
+
}
|
35
|
+
static IsType(obj, keys) {
|
36
|
+
if (!keys)
|
37
|
+
return !this.IsNil(obj);
|
38
|
+
return keys.every((key) => key in obj);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
exports.default = Guards;
|
42
|
+
//# sourceMappingURL=guards.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":";;;;;AACA,gDAAwB;AAExB,MAAM,MAAM;IAGJ,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACrD,MAAM,MAAM,GAAG,aAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACrD,MAAM,MAAM,GAAG,aAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,SAAS,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACtD,MAAM,MAAM,GAAG,aAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC;QACtD,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,OAAO,CAAI,KAAU,EAAE,WAAW,GAAG,KAAK;QACvD,MAAM,MAAM,GAAG,aAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACrD,MAAM,MAAM,GAAG,aAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,UAAU,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACvD,MAAM,MAAM,GAAG,aAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,KAAU;QAC7B,OAAO,aAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAIM,MAAM,CAAC,MAAM,CAAI,GAAQ,EAAE,IAAkB;QACnD,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IACxC,CAAC;CACD;AAED,kBAAe,MAAM,CAAC"}
|