@mrxsys/mrx-core 2.4.0 → 2.5.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/CHANGELOG.md +329 -31
- package/README.md +3 -3
- package/dist/chunk-1a3wj3m1.js +272 -0
- package/dist/chunk-370444pc.js +43 -0
- package/dist/chunk-5qtpggzv.js +38 -0
- package/dist/chunk-84mqvfsk.js +69 -0
- package/dist/chunk-cq973ydc.js +82 -0
- package/dist/chunk-f5z7x01b.js +352 -0
- package/dist/chunk-pc66jgqv.js +220 -0
- package/dist/chunk-s07amdhx.js +77 -0
- package/dist/chunk-v8v7982b.js +58 -0
- package/dist/chunk-vknq69e0.js +23 -0
- package/dist/chunk-yvyahr2h.js +40 -0
- package/dist/errors/baseError.d.ts +9 -0
- package/dist/errors/enums/httpErrorStatusCodes.d.ts +42 -0
- package/dist/errors/httpError.d.ts +14 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.js +11 -0
- package/dist/errors/types/baseErrorOptions.d.ts +15 -0
- package/dist/errors/types/httpErrorOptions.d.ts +13 -0
- package/dist/errors/types/index.d.ts +2 -0
- package/dist/modules/data/data.d.ts +115 -0
- package/dist/modules/data/enums/dataErrorKeys.d.ts +3 -0
- package/dist/modules/data/index.d.ts +1 -0
- package/dist/modules/data/index.js +16 -0
- package/dist/modules/data/transformers/camelCase.d.ts +25 -0
- package/dist/modules/data/transformers/index.d.ts +4 -0
- package/dist/modules/data/transformers/index.js +32 -0
- package/dist/modules/data/transformers/kebabCase.d.ts +25 -0
- package/dist/modules/data/transformers/pascalCase.d.ts +25 -0
- package/dist/modules/data/transformers/snakeCase.d.ts +25 -0
- package/dist/modules/data/types/camelCase.d.ts +1 -0
- package/dist/modules/data/types/caseTransformer.d.ts +13 -0
- package/dist/modules/data/types/index.d.ts +10 -0
- package/dist/modules/data/types/kebabCase.d.ts +1 -0
- package/dist/modules/data/types/pascalCase.d.ts +2 -0
- package/dist/modules/data/types/snakeCase.d.ts +1 -0
- package/dist/modules/data/types/transformKeysCamelCase.d.ts +4 -0
- package/dist/modules/data/types/transformKeysKebabCase.d.ts +4 -0
- package/dist/modules/data/types/transformKeysPascalCase.d.ts +4 -0
- package/dist/modules/data/types/transformKeysSnakeCase.d.ts +4 -0
- package/dist/modules/data/types/transformObjectKeys.d.ts +9 -0
- package/dist/modules/database/enums/databaseErrorKeys.d.ts +28 -0
- package/dist/modules/database/enums/mssqlErrorCode.d.ts +25 -0
- package/dist/modules/database/events/index.d.ts +2 -0
- package/dist/modules/database/events/mssqlEventMap.d.ts +6 -0
- package/dist/modules/database/events/tableEventMap.d.ts +7 -0
- package/dist/modules/database/index.d.ts +2 -0
- package/dist/modules/database/index.js +14 -0
- package/dist/{database → modules/database}/mssql.d.ts +21 -25
- package/dist/{database → modules/database}/table.d.ts +6 -6
- package/dist/modules/database/types/index.d.ts +3 -0
- package/dist/{database → modules/database}/types/mssqlDatabaseOption.d.ts +16 -37
- package/dist/modules/database/types/mssqlEventLog.d.ts +14 -0
- package/dist/modules/database/types/queryContext.d.ts +11 -0
- package/dist/modules/elysia/crud/crud.d.ts +46 -0
- package/dist/modules/elysia/crud/index.d.ts +1 -0
- package/dist/modules/elysia/crud/index.js +299 -0
- package/dist/modules/elysia/crud/types/crudOperationBaseOptions.d.ts +6 -0
- package/dist/modules/elysia/crud/types/crudOperationCountOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationDeleteOneOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationDeleteOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationFindOneOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationFindOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationInsertOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationUpdateOneOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationUpdateOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationsOptions.d.ts +18 -0
- package/dist/modules/elysia/crud/types/crudOptions.d.ts +23 -0
- package/dist/modules/elysia/crud/types/index.d.ts +11 -0
- package/dist/modules/elysia/crudSchema/crudSchema.d.ts +18 -0
- package/dist/modules/elysia/crudSchema/index.d.ts +1 -0
- package/dist/modules/elysia/crudSchema/index.js +10 -0
- package/dist/modules/elysia/crudSchema/types/adaptiveWhereClauseSchema.d.ts +31 -0
- package/dist/modules/elysia/crudSchema/types/crudModelsType.d.ts +14 -0
- package/dist/modules/elysia/crudSchema/types/crudSchemaOperations.d.ts +10 -0
- package/dist/modules/elysia/crudSchema/types/crudSchemaOptions.d.ts +13 -0
- package/dist/modules/elysia/crudSchema/types/index.d.ts +8 -0
- package/dist/modules/elysia/crudSchema/types/orderSchema.d.ts +11 -0
- package/dist/modules/elysia/crudSchema/types/qSchema.d.ts +15 -0
- package/dist/modules/elysia/crudSchema/types/queryOptionsBuilderOptions.d.ts +11 -0
- package/dist/modules/elysia/crudSchema/types/selectedFieldSchema.d.ts +6 -0
- package/dist/modules/elysia/crudSchema/utils/createAdaptiveWhereClauseSchema.d.ts +17 -0
- package/dist/modules/elysia/crudSchema/utils/createCountResponse200Schema.d.ts +11 -0
- package/dist/modules/elysia/crudSchema/utils/createCountSchema.d.ts +16 -0
- package/dist/modules/elysia/crudSchema/utils/createDeleteSchema.d.ts +18 -0
- package/dist/modules/elysia/crudSchema/utils/createFiltersSchema.d.ts +17 -0
- package/dist/modules/elysia/crudSchema/utils/createFindSchema.d.ts +22 -0
- package/dist/modules/elysia/crudSchema/utils/createIdParamSchema.d.ts +4 -0
- package/dist/modules/elysia/crudSchema/utils/createInsertSchema.d.ts +8 -0
- package/dist/modules/elysia/crudSchema/utils/createOrderSchema.d.ts +12 -0
- package/dist/modules/elysia/crudSchema/utils/createPropertiesSchema.d.ts +12 -0
- package/dist/modules/elysia/crudSchema/utils/createQSchema.d.ts +12 -0
- package/dist/modules/elysia/crudSchema/utils/createResponse200Schema.d.ts +5 -0
- package/dist/modules/elysia/crudSchema/utils/createSelectedFieldsSchema.d.ts +12 -0
- package/dist/modules/elysia/crudSchema/utils/createUpdateOneSchema.d.ts +4 -0
- package/dist/modules/elysia/crudSchema/utils/createUpdateSchema.d.ts +10 -0
- package/dist/modules/elysia/crudSchema/utils/index.d.ts +15 -0
- package/dist/modules/elysia/crudSchema/utils/index.js +37 -0
- package/dist/modules/elysia/crudSchema/utils/isDateFromElysiaTypeBox.d.ts +2 -0
- package/dist/modules/elysia/dbResolver/dbResolver.d.ts +17 -0
- package/dist/modules/elysia/dbResolver/enums/dbResolverErrorKeys.d.ts +3 -0
- package/dist/modules/elysia/dbResolver/index.d.ts +1 -0
- package/dist/modules/elysia/dbResolver/index.js +14 -0
- package/dist/modules/elysia/dbResolver/types/dynamicDbOptions.d.ts +7 -0
- package/dist/modules/elysia/dbResolver/types/index.d.ts +1 -0
- package/dist/modules/elysia/error/error.d.ts +34 -0
- package/dist/modules/elysia/error/index.d.ts +1 -0
- package/dist/modules/elysia/error/index.js +58 -0
- package/dist/modules/elysia/jwt/enums/jwtErrorKeys.d.ts +4 -0
- package/dist/modules/elysia/jwt/index.d.ts +1 -0
- package/dist/modules/elysia/jwt/index.js +81 -0
- package/dist/modules/elysia/jwt/jwt.d.ts +119 -0
- package/dist/modules/elysia/jwt/types/index.d.ts +1 -0
- package/dist/modules/elysia/jwt/types/jwtOptions.d.ts +98 -0
- package/dist/modules/elysia/microservice/index.d.ts +1 -0
- package/dist/modules/elysia/microservice/index.js +96 -0
- package/dist/{elysia → modules/elysia/microservice}/microservice.d.ts +1 -1
- package/dist/modules/elysia/ratelimit/enums/ratelimitErrorKeys.d.ts +3 -0
- package/dist/modules/elysia/ratelimit/index.d.ts +1 -0
- package/dist/modules/elysia/ratelimit/index.js +55 -0
- package/dist/{elysia → modules/elysia/ratelimit}/ratelimit.d.ts +3 -13
- package/dist/modules/elysia/ratelimit/types/index.d.ts +1 -0
- package/dist/{elysia → modules/elysia/ratelimit}/types/rateLimitOptions.d.ts +6 -16
- package/dist/modules/logger/enums/loggerErrorKeys.d.ts +6 -0
- package/dist/modules/logger/events/index.d.ts +1 -0
- package/dist/modules/logger/events/loggerEvents.d.ts +11 -0
- package/dist/modules/logger/index.d.ts +1 -0
- package/dist/modules/logger/index.js +139 -0
- package/dist/modules/logger/logger.d.ts +189 -0
- package/dist/{logger → modules/logger}/strategies/consoleLogger.d.ts +4 -4
- package/dist/{logger → modules/logger}/strategies/fileLogger.d.ts +4 -4
- package/dist/modules/logger/strategies/index.d.ts +2 -0
- package/dist/modules/logger/strategies/index.js +44 -0
- package/dist/modules/logger/types/index.d.ts +6 -0
- package/dist/modules/logger/types/index.js +1 -0
- package/dist/{logger → modules/logger}/types/logStreamChunk.d.ts +4 -4
- package/dist/{logger → modules/logger}/types/loggerStrategy.d.ts +1 -1
- package/dist/modules/mailer/enums/mailerErrorKeys.d.ts +5 -0
- package/dist/modules/mailer/index.d.ts +1 -0
- package/dist/modules/mailer/index.js +64 -0
- package/dist/{mailer → modules/mailer}/smtp.d.ts +6 -6
- package/dist/modules/mailer/types/index.d.ts +3 -0
- package/dist/modules/mailer/types/index.js +1 -0
- package/dist/{mailer → modules/mailer}/types/smtpCredentials.d.ts +2 -2
- package/dist/{mailer → modules/mailer}/types/smtpOptions.d.ts +5 -5
- package/dist/{mailer → modules/mailer}/types/smtpPoolOptions.d.ts +1 -1
- package/dist/modules/repository/index.d.ts +1 -0
- package/dist/modules/repository/index.js +10 -0
- package/dist/modules/repository/repository.d.ts +421 -0
- package/dist/modules/repository/types/adaptiveWhereClause.d.ts +30 -0
- package/dist/modules/repository/types/filter.d.ts +43 -0
- package/dist/modules/repository/types/index.d.ts +8 -0
- package/dist/modules/repository/types/index.js +1 -0
- package/dist/modules/repository/types/orderByItem.d.ts +42 -0
- package/dist/modules/repository/types/queryOptions.d.ts +36 -0
- package/dist/{repository → modules/repository}/types/queryOptionsExtendPagination.d.ts +2 -2
- package/dist/{repository → modules/repository}/types/queryOptionsExtendStream.d.ts +1 -1
- package/dist/modules/repository/types/selectedFields.d.ts +37 -0
- package/dist/modules/singletonManager/enums/singletonManagerErrorKeys.d.ts +4 -0
- package/dist/modules/singletonManager/index.d.ts +1 -0
- package/dist/modules/singletonManager/index.js +8 -0
- package/dist/modules/singletonManager/singletonManager.d.ts +75 -0
- package/dist/modules/typedEventEmitter/index.d.ts +1 -0
- package/dist/modules/typedEventEmitter/index.js +7 -0
- package/dist/{typedEventEmitter → modules/typedEventEmitter}/typedEventEmitter.d.ts +33 -11
- package/dist/modules/typedEventEmitter/types/index.d.ts +1 -0
- package/dist/modules/typedEventEmitter/types/index.js +1 -0
- package/dist/utils/enums/utilsErrorKeys.d.ts +3 -0
- package/dist/utils/env.d.ts +1 -1
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/index.js +32 -1
- package/dist/utils/isDateString.d.ts +16 -0
- package/dist/utils/stream.d.ts +12 -1
- package/dist/utils/types/index.d.ts +1 -1
- package/dist/utils/types/streamWithAsyncIterable.d.ts +12 -5
- package/package.json +157 -128
- package/dist/chunk-1c7w5cx7.js +0 -3
- package/dist/chunk-40pg2cqx.js +0 -2
- package/dist/chunk-4v4tp5qj.js +0 -2
- package/dist/chunk-4w7nd4nw.js +0 -2
- package/dist/chunk-5nvsx7md.js +0 -2
- package/dist/chunk-89mnpfvy.js +0 -2
- package/dist/chunk-91srr77d.js +0 -2
- package/dist/chunk-9hj714bv.js +0 -2
- package/dist/chunk-9rss6865.js +0 -2
- package/dist/chunk-df9xr1f5.js +0 -2
- package/dist/chunk-dq00mfya.js +0 -2
- package/dist/chunk-fnb68m68.js +0 -2
- package/dist/chunk-g6a16nyh.js +0 -2
- package/dist/chunk-gtgpa8nc.js +0 -2
- package/dist/chunk-gxjax5n3.js +0 -2
- package/dist/chunk-h9er1sh5.js +0 -2
- package/dist/chunk-mwpajm9x.js +0 -2
- package/dist/chunk-n5w9cwwg.js +0 -2
- package/dist/chunk-pt7wrvtr.js +0 -2
- package/dist/chunk-qndyhwdn.js +0 -2
- package/dist/chunk-v5dfx8mh.js +0 -2
- package/dist/chunk-wgq0yyqw.js +0 -2
- package/dist/chunk-wtfcgg9s.js +0 -2
- package/dist/chunk-z00b1r18.js +0 -2
- package/dist/data/data.d.ts +0 -99
- package/dist/data/enums/dataErrorKeys.d.ts +0 -7
- package/dist/data/enums/index.d.ts +0 -1
- package/dist/data/enums/index.js +0 -2
- package/dist/data/index.d.ts +0 -1
- package/dist/data/index.js +0 -2
- package/dist/data/transformers/camelCase.d.ts +0 -25
- package/dist/data/transformers/index.d.ts +0 -4
- package/dist/data/transformers/index.js +0 -2
- package/dist/data/transformers/kebabCase.d.ts +0 -25
- package/dist/data/transformers/pascalCase.d.ts +0 -25
- package/dist/data/transformers/snakeCase.d.ts +0 -25
- package/dist/data/types/index.d.ts +0 -1
- package/dist/data/types/keyTransformer.d.ts +0 -11
- package/dist/database/enums/databaseErrorKeys.d.ts +0 -52
- package/dist/database/enums/index.d.ts +0 -2
- package/dist/database/enums/index.js +0 -2
- package/dist/database/enums/mssqlErrorCode.d.ts +0 -25
- package/dist/database/events/index.d.ts +0 -2
- package/dist/database/events/mssqlEventMap.d.ts +0 -6
- package/dist/database/events/tableEventMap.d.ts +0 -7
- package/dist/database/index.d.ts +0 -2
- package/dist/database/index.js +0 -2
- package/dist/database/types/index.d.ts +0 -3
- package/dist/database/types/mssqlEventLog.d.ts +0 -29
- package/dist/database/types/queryContext.d.ts +0 -11
- package/dist/elysia/advancedSearch.d.ts +0 -460
- package/dist/elysia/crud.d.ts +0 -609
- package/dist/elysia/dynamicDatabaseSelector.d.ts +0 -352
- package/dist/elysia/enums/elysiaErrorKeys.d.ts +0 -12
- package/dist/elysia/enums/httpStatusCode.d.ts +0 -241
- package/dist/elysia/enums/index.d.ts +0 -2
- package/dist/elysia/enums/index.js +0 -2
- package/dist/elysia/error.d.ts +0 -46
- package/dist/elysia/index.d.ts +0 -7
- package/dist/elysia/index.js +0 -2
- package/dist/elysia/jwt.d.ts +0 -46
- package/dist/elysia/schemas/index.d.ts +0 -2
- package/dist/elysia/schemas/index.js +0 -2
- package/dist/elysia/types/crudOptions.d.ts +0 -126
- package/dist/elysia/types/crudRoutes.d.ts +0 -2
- package/dist/elysia/types/dynamicDatabaseSelectorPluginOptions.d.ts +0 -30
- package/dist/elysia/types/index.d.ts +0 -5
- package/dist/elysia/types/jwtOptions.d.ts +0 -92
- package/dist/error/coreError.d.ts +0 -89
- package/dist/error/index.d.ts +0 -1
- package/dist/error/index.js +0 -2
- package/dist/error/types/coreErrorOptions.d.ts +0 -21
- package/dist/error/types/index.d.ts +0 -1
- package/dist/index.d.ts +0 -68
- package/dist/index.js +0 -2
- package/dist/logger/enums/index.d.ts +0 -1
- package/dist/logger/enums/index.js +0 -2
- package/dist/logger/enums/loggerErrorKeys.d.ts +0 -6
- package/dist/logger/events/index.d.ts +0 -1
- package/dist/logger/events/loggerEvents.d.ts +0 -4
- package/dist/logger/index.d.ts +0 -1
- package/dist/logger/index.js +0 -2
- package/dist/logger/logger.d.ts +0 -173
- package/dist/logger/strategies/index.d.ts +0 -2
- package/dist/logger/strategies/index.js +0 -2
- package/dist/logger/types/index.d.ts +0 -6
- package/dist/mailer/enums/index.d.ts +0 -1
- package/dist/mailer/enums/index.js +0 -2
- package/dist/mailer/enums/mailerErrorKeys.d.ts +0 -8
- package/dist/mailer/index.d.ts +0 -1
- package/dist/mailer/index.js +0 -2
- package/dist/mailer/types/index.d.ts +0 -3
- package/dist/repository/index.d.ts +0 -1
- package/dist/repository/index.js +0 -2
- package/dist/repository/repository.d.ts +0 -378
- package/dist/repository/types/advancedSearch.d.ts +0 -47
- package/dist/repository/types/index.d.ts +0 -8
- package/dist/repository/types/orderBy.d.ts +0 -21
- package/dist/repository/types/queryOptions.d.ts +0 -33
- package/dist/repository/types/selectedFields.d.ts +0 -16
- package/dist/repository/types/whereClause.d.ts +0 -15
- package/dist/singletonManager/enums/index.d.ts +0 -1
- package/dist/singletonManager/enums/index.js +0 -2
- package/dist/singletonManager/enums/singletonManagerErrorKeys.d.ts +0 -7
- package/dist/singletonManager/index.d.ts +0 -1
- package/dist/singletonManager/index.js +0 -2
- package/dist/singletonManager/singletonManager.d.ts +0 -112
- package/dist/store/index.d.ts +0 -1
- package/dist/store/index.js +0 -2
- package/dist/store/redis.d.ts +0 -6
- package/dist/typedEventEmitter/index.d.ts +0 -1
- package/dist/typedEventEmitter/index.js +0 -2
- package/dist/typedEventEmitter/types/index.d.ts +0 -1
- package/dist/utils/enums/index.d.ts +0 -1
- package/dist/utils/enums/index.js +0 -2
- package/dist/utils/enums/utilErrorKeys.d.ts +0 -4
- package/dist/utils/isIsoDateString.d.ts +0 -1
- /package/dist/{data → errors}/types/index.js +0 -0
- /package/dist/{database/events → modules/data/types}/index.js +0 -0
- /package/dist/{database/types → modules/database/events}/index.js +0 -0
- /package/dist/{elysia → modules/database}/types/index.js +0 -0
- /package/dist/{error → modules/elysia/crud}/types/index.js +0 -0
- /package/dist/{logger/events → modules/elysia/crudSchema/types}/index.js +0 -0
- /package/dist/{logger → modules/elysia/dbResolver}/types/index.js +0 -0
- /package/dist/{mailer → modules/elysia/jwt}/types/index.js +0 -0
- /package/dist/{elysia → modules/elysia/microservice}/schemas/info.d.ts +0 -0
- /package/dist/{elysia → modules/elysia/microservice}/schemas/ping.d.ts +0 -0
- /package/dist/{repository → modules/elysia/ratelimit}/types/index.js +0 -0
- /package/dist/{typedEventEmitter/types → modules/logger/events}/index.js +0 -0
- /package/dist/{logger → modules/logger}/types/bodiesIntersection.d.ts +0 -0
- /package/dist/{logger → modules/logger}/types/logLevels.d.ts +0 -0
- /package/dist/{logger → modules/logger}/types/strategyBody.d.ts +0 -0
- /package/dist/{logger → modules/logger}/types/strategyMap.d.ts +0 -0
- /package/dist/{repository → modules/repository}/types/transaction.d.ts +0 -0
- /package/dist/{typedEventEmitter → modules/typedEventEmitter}/types/eventMap.d.ts +0 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isDateString,
|
|
3
|
+
makeStreamAsyncIterable
|
|
4
|
+
} from "./chunk-5qtpggzv.js";
|
|
5
|
+
import {
|
|
6
|
+
HttpError
|
|
7
|
+
} from "./chunk-84mqvfsk.js";
|
|
8
|
+
|
|
9
|
+
// source/modules/repository/repository.ts
|
|
10
|
+
import { PassThrough } from "stream";
|
|
11
|
+
|
|
12
|
+
// source/modules/database/enums/databaseErrorKeys.ts
|
|
13
|
+
var DATABASE_ERROR_KEYS = {
|
|
14
|
+
MSSQL_CONNECTION_ERROR: "mssql.error.database.connection_error",
|
|
15
|
+
MSSQL_DISCONNECT_ERROR: "mssql.error.database.disconnect_error",
|
|
16
|
+
MSSQL_NOT_CONNECTED: "mssql.error.database.not_connected",
|
|
17
|
+
MSSQL_NO_RESULT: "mssql.error.database.no_result",
|
|
18
|
+
MSSQL_QUERY_ERROR: "mssql.error.database.query_error",
|
|
19
|
+
MSSQL_DATABASE_ACCESS_DENIED: "mssql.error.database.access_denied",
|
|
20
|
+
MSSQL_DATABASE_AUTHORIZATION8FAILED: "mssql.error.database.authorization_failed",
|
|
21
|
+
MSSQL_DATABASE_SYNTAX_ERROR: "mssql.error.database.syntax_error",
|
|
22
|
+
MSSQL_DATABASE_COLUMN_NOT_FOUND: "mssql.error.database.column_not_found",
|
|
23
|
+
MSSQL_TABLE_NOT_FOUND: "mssql.error.database.table_not_found",
|
|
24
|
+
MSSQL_DATABASE_AMBIGUOUS_COLUMN: "mssql.error.database.ambiguous_column",
|
|
25
|
+
MSSQL_DATABASE_DUPLICATE_KEY: "mssql.error.database.duplicate_key",
|
|
26
|
+
MSSQL_DATABASE_FOREIGN_KEY_VIOLATION: "mssql.error.database.foreign_key_violation",
|
|
27
|
+
MSSQL_DATABASE_UNIQUE_CONSTRAINT_VIOLATION: "mssql.error.database.unique_constraint_violation",
|
|
28
|
+
MSSQL_DATABASE_DEADLOCK_DETECTED: "mssql.error.database.deadlock_detected",
|
|
29
|
+
MSSQL_DATABASE_RESOURCE_LOCKED: "mssql.error.database.resource_locked",
|
|
30
|
+
MSSQL_DATABASE_TRANSACTION_ABORTED: "mssql.error.database.transaction_aborted",
|
|
31
|
+
MSSQL_DATABASE_INSUFFICIENT_MEMORY: "mssql.error.database.insufficient_memory",
|
|
32
|
+
MSSQL_DATABASE_INSUFFICIENT_STORAGE: "mssql.error.database.insufficient_storage",
|
|
33
|
+
MSSQL_DATABASE_QUERY_TIMEOUT: "mssql.error.database.query_timeout",
|
|
34
|
+
MSSQL_DATABASE_TRANSACTION_LOG_FULL: "mssql.error.database.transaction_log_full",
|
|
35
|
+
MSSQL_DATABASE_DATA_TOO_LARGE: "mssql.error.database.data_too_large",
|
|
36
|
+
MSSQL_DATABASE_PERMISSION_DENIED: "mssql.error.database.permission_denied",
|
|
37
|
+
MSSQL_DATABASE_IDENTITY_INSERT_NOT_ALLOWED: "mssql.error.database.identity_insert_not_allowed",
|
|
38
|
+
MSSQL_DATABSE_CANNOT_UPDATE_IDENTITY_COLUMN: "mssql.error.database.cannot_update_identity_column",
|
|
39
|
+
MSSQL_DATABASE_CONVERSION_FAILED: "mssql.error.database.conversion_failed"
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// source/modules/database/enums/mssqlErrorCode.ts
|
|
43
|
+
var MSSQL_ERROR_CODE = {
|
|
44
|
+
0: DATABASE_ERROR_KEYS.MSSQL_QUERY_ERROR,
|
|
45
|
+
4060: DATABASE_ERROR_KEYS.MSSQL_DATABASE_ACCESS_DENIED,
|
|
46
|
+
18452: DATABASE_ERROR_KEYS.MSSQL_DATABASE_AUTHORIZATION8FAILED,
|
|
47
|
+
18456: DATABASE_ERROR_KEYS.MSSQL_DATABASE_AUTHORIZATION8FAILED,
|
|
48
|
+
102: DATABASE_ERROR_KEYS.MSSQL_DATABASE_SYNTAX_ERROR,
|
|
49
|
+
207: DATABASE_ERROR_KEYS.MSSQL_DATABASE_COLUMN_NOT_FOUND,
|
|
50
|
+
208: DATABASE_ERROR_KEYS.MSSQL_TABLE_NOT_FOUND,
|
|
51
|
+
209: DATABASE_ERROR_KEYS.MSSQL_DATABASE_AMBIGUOUS_COLUMN,
|
|
52
|
+
2627: DATABASE_ERROR_KEYS.MSSQL_DATABASE_DUPLICATE_KEY,
|
|
53
|
+
547: DATABASE_ERROR_KEYS.MSSQL_DATABASE_FOREIGN_KEY_VIOLATION,
|
|
54
|
+
2601: DATABASE_ERROR_KEYS.MSSQL_DATABASE_UNIQUE_CONSTRAINT_VIOLATION,
|
|
55
|
+
1205: DATABASE_ERROR_KEYS.MSSQL_DATABASE_DEADLOCK_DETECTED,
|
|
56
|
+
1222: DATABASE_ERROR_KEYS.MSSQL_DATABASE_RESOURCE_LOCKED,
|
|
57
|
+
3928: DATABASE_ERROR_KEYS.MSSQL_DATABASE_TRANSACTION_ABORTED,
|
|
58
|
+
701: DATABASE_ERROR_KEYS.MSSQL_DATABASE_INSUFFICIENT_MEMORY,
|
|
59
|
+
1105: DATABASE_ERROR_KEYS.MSSQL_DATABASE_INSUFFICIENT_STORAGE,
|
|
60
|
+
8645: DATABASE_ERROR_KEYS.MSSQL_DATABASE_QUERY_TIMEOUT,
|
|
61
|
+
9002: DATABASE_ERROR_KEYS.MSSQL_DATABASE_TRANSACTION_LOG_FULL,
|
|
62
|
+
8152: DATABASE_ERROR_KEYS.MSSQL_DATABASE_DATA_TOO_LARGE,
|
|
63
|
+
229: DATABASE_ERROR_KEYS.MSSQL_DATABASE_PERMISSION_DENIED,
|
|
64
|
+
544: DATABASE_ERROR_KEYS.MSSQL_DATABASE_IDENTITY_INSERT_NOT_ALLOWED,
|
|
65
|
+
8102: DATABASE_ERROR_KEYS.MSSQL_DATABSE_CANNOT_UPDATE_IDENTITY_COLUMN,
|
|
66
|
+
8169: DATABASE_ERROR_KEYS.MSSQL_DATABASE_CONVERSION_FAILED
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// source/modules/repository/repository.ts
|
|
70
|
+
var _operators = {
|
|
71
|
+
$eq: (q, c, v) => q.where(c, v),
|
|
72
|
+
$neq: (q, c, v) => q.whereNot(c, v),
|
|
73
|
+
$lt: (q, c, v) => q.where(c, "<", v),
|
|
74
|
+
$lte: (q, c, v) => q.where(c, "<=", v),
|
|
75
|
+
$gt: (q, c, v) => q.where(c, ">", v),
|
|
76
|
+
$gte: (q, c, v) => q.where(c, ">=", v),
|
|
77
|
+
$in: (q, c, v) => q.whereIn(c, v),
|
|
78
|
+
$nin: (q, c, v) => q.whereNotIn(c, v),
|
|
79
|
+
$between: (q, c, v) => q.whereBetween(c, v),
|
|
80
|
+
$nbetween: (q, c, v) => q.whereNotBetween(c, v),
|
|
81
|
+
$like: (q, c, v) => {
|
|
82
|
+
const likeValue = `%${v}%`;
|
|
83
|
+
if (isDateString(v))
|
|
84
|
+
return q.whereRaw(`CONVERT(VARCHAR, ${c}, 23) LIKE ?`, [likeValue]);
|
|
85
|
+
return q.whereLike(c, likeValue);
|
|
86
|
+
},
|
|
87
|
+
$nlike: (q, c, v) => {
|
|
88
|
+
const likeValue = `%${v}%`;
|
|
89
|
+
if (isDateString(v))
|
|
90
|
+
return q.whereRaw(`CONVERT(VARCHAR, ${c}, 23) NOT LIKE ?`, [likeValue]);
|
|
91
|
+
return q.whereRaw(`${c} NOT LIKE ?`, [likeValue]);
|
|
92
|
+
},
|
|
93
|
+
$isNull: (q, c, v) => v ? q.whereNull(c) : q.whereNotNull(c)
|
|
94
|
+
};
|
|
95
|
+
var _validOperatorKeys = new Set([
|
|
96
|
+
"$eq",
|
|
97
|
+
"$neq",
|
|
98
|
+
"$lt",
|
|
99
|
+
"$lte",
|
|
100
|
+
"$gt",
|
|
101
|
+
"$gte",
|
|
102
|
+
"$in",
|
|
103
|
+
"$nin",
|
|
104
|
+
"$between",
|
|
105
|
+
"$nbetween",
|
|
106
|
+
"$like",
|
|
107
|
+
"$nlike",
|
|
108
|
+
"$isNull"
|
|
109
|
+
]);
|
|
110
|
+
var _DEFAULT_LIMIT = 100;
|
|
111
|
+
var _DEFAULT_OFFSET = 0;
|
|
112
|
+
|
|
113
|
+
class Repository {
|
|
114
|
+
_knex;
|
|
115
|
+
_table;
|
|
116
|
+
constructor(knex, table) {
|
|
117
|
+
this._knex = knex;
|
|
118
|
+
this._table = table;
|
|
119
|
+
}
|
|
120
|
+
findStream(options) {
|
|
121
|
+
const query = this._knex(this._table.name);
|
|
122
|
+
this._applyQueryOptions(query, options);
|
|
123
|
+
const kStream = query.stream();
|
|
124
|
+
const passThrough = new PassThrough({
|
|
125
|
+
objectMode: true,
|
|
126
|
+
...options?.transform && { transform: options.transform }
|
|
127
|
+
});
|
|
128
|
+
const cleanup = () => {
|
|
129
|
+
if (!kStream.destroyed)
|
|
130
|
+
kStream.destroy();
|
|
131
|
+
if (!passThrough.destroyed)
|
|
132
|
+
passThrough.destroy();
|
|
133
|
+
};
|
|
134
|
+
kStream.on("error", (error) => {
|
|
135
|
+
const code = error?.number || 0;
|
|
136
|
+
passThrough.emit("error", new HttpError({
|
|
137
|
+
message: MSSQL_ERROR_CODE[code] ?? DATABASE_ERROR_KEYS.MSSQL_QUERY_ERROR,
|
|
138
|
+
cause: {
|
|
139
|
+
query: query.toSQL().sql,
|
|
140
|
+
error
|
|
141
|
+
}
|
|
142
|
+
}));
|
|
143
|
+
});
|
|
144
|
+
passThrough.on("close", cleanup);
|
|
145
|
+
passThrough.on("error", cleanup);
|
|
146
|
+
kStream.pipe(passThrough);
|
|
147
|
+
return makeStreamAsyncIterable(passThrough);
|
|
148
|
+
}
|
|
149
|
+
async find(options) {
|
|
150
|
+
const query = this._knex(this._table.name);
|
|
151
|
+
this._applyQueryOptions(query, options);
|
|
152
|
+
const limit = options?.limit || _DEFAULT_LIMIT;
|
|
153
|
+
const offset = options?.offset || _DEFAULT_OFFSET;
|
|
154
|
+
query.limit(limit).offset(offset);
|
|
155
|
+
return this._executeQuery(query, options?.throwIfNoResult);
|
|
156
|
+
}
|
|
157
|
+
async count(options) {
|
|
158
|
+
const query = this._knex(this._table.name).count({ count: "*" });
|
|
159
|
+
this._applyFilter(query, options?.filters);
|
|
160
|
+
if (options?.transaction)
|
|
161
|
+
query.transacting(options.transaction);
|
|
162
|
+
return this._executeQuery(query, options?.throwIfNoResult).then((result) => result[0].count);
|
|
163
|
+
}
|
|
164
|
+
async insert(data, options) {
|
|
165
|
+
const query = this._knex(this._table.name).insert(data).returning(options?.selectedFields ?? "*");
|
|
166
|
+
if (options?.transaction)
|
|
167
|
+
query.transacting(options.transaction);
|
|
168
|
+
return this._executeQuery(query);
|
|
169
|
+
}
|
|
170
|
+
async update(data, options) {
|
|
171
|
+
const query = this._knex(this._table.name).update(data);
|
|
172
|
+
this._applyQueryOptions(query, options);
|
|
173
|
+
return this._executeQuery(query);
|
|
174
|
+
}
|
|
175
|
+
async delete(options) {
|
|
176
|
+
const query = this._knex(this._table.name).delete();
|
|
177
|
+
this._applyQueryOptions(query, options);
|
|
178
|
+
return this._executeQuery(query);
|
|
179
|
+
}
|
|
180
|
+
_applySelectedFields(query, selectedFields) {
|
|
181
|
+
const qMethod = query._method;
|
|
182
|
+
if (qMethod === "del" || qMethod === "update" || qMethod === "insert")
|
|
183
|
+
query.returning(selectedFields ?? "*");
|
|
184
|
+
else
|
|
185
|
+
query.select(selectedFields ?? "*");
|
|
186
|
+
}
|
|
187
|
+
_applyFilter(query, search) {
|
|
188
|
+
const processing = (query2, search2) => {
|
|
189
|
+
for (const key in search2) {
|
|
190
|
+
const prop = search2[key];
|
|
191
|
+
if (this._filterIsAdaptiveWhereClause(prop)) {
|
|
192
|
+
for (const operator in prop)
|
|
193
|
+
if (operator in _operators && prop[operator] !== undefined)
|
|
194
|
+
_operators[operator](query2, key, prop[operator]);
|
|
195
|
+
} else if (key === "$q" && prop !== null && (typeof prop === "string" || typeof prop === "number")) {
|
|
196
|
+
for (const field of this._table.fields)
|
|
197
|
+
if (prop)
|
|
198
|
+
query2.orWhere(field, "like", `%${prop}%`);
|
|
199
|
+
} else if (key === "$q" && prop !== null && typeof prop === "object" && "selectedFields" in prop && "value" in prop) {
|
|
200
|
+
const { selectedFields, value } = prop;
|
|
201
|
+
if (Array.isArray(selectedFields))
|
|
202
|
+
for (const field of selectedFields)
|
|
203
|
+
query2.orWhere(field, "like", `%${value}%`);
|
|
204
|
+
else
|
|
205
|
+
query2.orWhere(selectedFields, "like", `%${value}%`);
|
|
206
|
+
} else {
|
|
207
|
+
if (prop !== null && typeof prop === "object" && Object.keys(prop).length === 0)
|
|
208
|
+
continue;
|
|
209
|
+
if (prop !== undefined)
|
|
210
|
+
query2.where(key, prop);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
if (search && Array.isArray(search))
|
|
215
|
+
search.reduce((acc, item) => acc.orWhere((q) => this._applyFilter(q, item)), query);
|
|
216
|
+
else if (search)
|
|
217
|
+
processing(query, search);
|
|
218
|
+
}
|
|
219
|
+
_applyOrderBy(query, orderBy) {
|
|
220
|
+
const qMethod = query._method;
|
|
221
|
+
if (!(qMethod === "select"))
|
|
222
|
+
return;
|
|
223
|
+
if (!orderBy)
|
|
224
|
+
query.orderBy(this._table.primaryKey[0], "asc");
|
|
225
|
+
else if (Array.isArray(orderBy))
|
|
226
|
+
orderBy.forEach((item) => {
|
|
227
|
+
query.orderBy(item.selectedField, item.direction);
|
|
228
|
+
});
|
|
229
|
+
else
|
|
230
|
+
query.orderBy(orderBy.selectedField, orderBy.direction);
|
|
231
|
+
}
|
|
232
|
+
_applyQueryOptions(query, options) {
|
|
233
|
+
this._applyFilter(query, options?.filters);
|
|
234
|
+
this._applyOrderBy(query, options?.orderBy);
|
|
235
|
+
this._applySelectedFields(query, options?.selectedFields);
|
|
236
|
+
if (options?.transaction)
|
|
237
|
+
query.transacting(options.transaction);
|
|
238
|
+
}
|
|
239
|
+
_handleError(error, query) {
|
|
240
|
+
if (error instanceof HttpError)
|
|
241
|
+
throw error;
|
|
242
|
+
const code = error?.number || 0;
|
|
243
|
+
throw new HttpError({
|
|
244
|
+
message: MSSQL_ERROR_CODE[code] ?? DATABASE_ERROR_KEYS.MSSQL_QUERY_ERROR,
|
|
245
|
+
cause: {
|
|
246
|
+
query: query.toSQL().sql,
|
|
247
|
+
error
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
_filterIsAdaptiveWhereClause(data) {
|
|
252
|
+
return Boolean(data && typeof data === "object" && !Array.isArray(data) && Object.keys(data).some((key) => _validOperatorKeys.has(key)));
|
|
253
|
+
}
|
|
254
|
+
async _executeQuery(query, throwIfNoResult = false) {
|
|
255
|
+
try {
|
|
256
|
+
const result = await query;
|
|
257
|
+
if (throwIfNoResult && result.length === 0)
|
|
258
|
+
throw new HttpError({
|
|
259
|
+
message: DATABASE_ERROR_KEYS.MSSQL_NO_RESULT,
|
|
260
|
+
cause: {
|
|
261
|
+
query: query.toSQL().sql
|
|
262
|
+
},
|
|
263
|
+
httpStatusCode: 404
|
|
264
|
+
});
|
|
265
|
+
return result;
|
|
266
|
+
} catch (error) {
|
|
267
|
+
return this._handleError(error, query);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export { DATABASE_ERROR_KEYS, Repository };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseError
|
|
3
|
+
} from "./chunk-vknq69e0.js";
|
|
4
|
+
|
|
5
|
+
// source/modules/singletonManager/enums/singletonManagerErrorKeys.ts
|
|
6
|
+
var SINGLETON_MANAGER_ERROR_KEYS = {
|
|
7
|
+
CLASS_CONSTRUCTOR_ALREADY_REGISTERED: "singletonManager.error.class_constructor_already_registered",
|
|
8
|
+
CLASS_CONSTRUCTOR_NOT_REGISTERED: "singletonManager.error.class_constructor_not_registered"
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
// source/modules/singletonManager/singletonManager.ts
|
|
12
|
+
class SingletonManager {
|
|
13
|
+
static _registry = new Map;
|
|
14
|
+
static register(name, constructor, ...args) {
|
|
15
|
+
if (this._registry.has(name))
|
|
16
|
+
throw new BaseError({
|
|
17
|
+
message: SINGLETON_MANAGER_ERROR_KEYS.CLASS_CONSTRUCTOR_ALREADY_REGISTERED,
|
|
18
|
+
cause: { name }
|
|
19
|
+
});
|
|
20
|
+
this._registry.set(name, new constructor(...args));
|
|
21
|
+
}
|
|
22
|
+
static unregister(name) {
|
|
23
|
+
if (!this._registry.has(name))
|
|
24
|
+
throw new BaseError({
|
|
25
|
+
message: SINGLETON_MANAGER_ERROR_KEYS.CLASS_CONSTRUCTOR_NOT_REGISTERED,
|
|
26
|
+
cause: { name }
|
|
27
|
+
});
|
|
28
|
+
this._registry.delete(name);
|
|
29
|
+
}
|
|
30
|
+
static get(name) {
|
|
31
|
+
if (!this._registry.has(name))
|
|
32
|
+
throw new BaseError({
|
|
33
|
+
message: SINGLETON_MANAGER_ERROR_KEYS.CLASS_CONSTRUCTOR_NOT_REGISTERED,
|
|
34
|
+
cause: { name }
|
|
35
|
+
});
|
|
36
|
+
return this._registry.get(name);
|
|
37
|
+
}
|
|
38
|
+
static has(name) {
|
|
39
|
+
return this._registry.has(name);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { SingletonManager };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// source/utils/isDateString.ts
|
|
2
|
+
var isDateString = (v) => typeof v === "string" && new Date(v).toString() !== "Invalid Date";
|
|
3
|
+
|
|
4
|
+
// source/utils/stream.ts
|
|
5
|
+
var makeStreamAsyncIterable = (stream) => {
|
|
6
|
+
const asyncIterable = {
|
|
7
|
+
[Symbol.asyncIterator]: () => ({
|
|
8
|
+
next() {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const cleanup = () => {
|
|
11
|
+
stream.off("data", onData);
|
|
12
|
+
stream.off("end", onEnd);
|
|
13
|
+
stream.off("error", onError);
|
|
14
|
+
};
|
|
15
|
+
const onData = (data) => {
|
|
16
|
+
cleanup();
|
|
17
|
+
resolve({ value: data, done: false });
|
|
18
|
+
};
|
|
19
|
+
const onEnd = () => {
|
|
20
|
+
cleanup();
|
|
21
|
+
resolve({ value: undefined, done: true });
|
|
22
|
+
};
|
|
23
|
+
const onError = (error) => {
|
|
24
|
+
cleanup();
|
|
25
|
+
reject(error);
|
|
26
|
+
};
|
|
27
|
+
stream.on("data", onData);
|
|
28
|
+
stream.on("end", onEnd);
|
|
29
|
+
stream.on("error", onError);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
stream[Symbol.asyncIterator] = asyncIterable[Symbol.asyncIterator];
|
|
35
|
+
return stream;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { isDateString, makeStreamAsyncIterable };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseError
|
|
3
|
+
} from "./chunk-vknq69e0.js";
|
|
4
|
+
|
|
5
|
+
// source/errors/enums/httpErrorStatusCodes.ts
|
|
6
|
+
var HTTP_ERROR_STATUS_CODES = {
|
|
7
|
+
BAD_REQUEST: 400,
|
|
8
|
+
UNAUTHORIZED: 401,
|
|
9
|
+
PAYMENT_REQUIRED: 402,
|
|
10
|
+
FORBIDDEN: 403,
|
|
11
|
+
NOT_FOUND: 404,
|
|
12
|
+
METHOD_NOT_ALLOWED: 405,
|
|
13
|
+
NOT_ACCEPTABLE: 406,
|
|
14
|
+
PROXY_AUTHENTICATION_REQUIRED: 407,
|
|
15
|
+
REQUEST_TIMEOUT: 408,
|
|
16
|
+
CONFLICT: 409,
|
|
17
|
+
GONE: 410,
|
|
18
|
+
LENGTH_REQUIRED: 411,
|
|
19
|
+
PRECONDITION_FAILED: 412,
|
|
20
|
+
PAYLOAD_TOO_LARGE: 413,
|
|
21
|
+
URI_TOO_LONG: 414,
|
|
22
|
+
UNSUPPORTED_MEDIA_TYPE: 415,
|
|
23
|
+
RANGE_NOT_SATISFIABLE: 416,
|
|
24
|
+
EXPECTATION_FAILED: 417,
|
|
25
|
+
IM_A_TEAPOT: 418,
|
|
26
|
+
MISDIRECTED_REQUEST: 421,
|
|
27
|
+
UNPROCESSABLE_ENTITY: 422,
|
|
28
|
+
LOCKED: 423,
|
|
29
|
+
FAILED_DEPENDENCY: 424,
|
|
30
|
+
TOO_EARLY: 425,
|
|
31
|
+
UPGRADE_REQUIRED: 426,
|
|
32
|
+
PRECONDITION_REQUIRED: 428,
|
|
33
|
+
TOO_MANY_REQUESTS: 429,
|
|
34
|
+
REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
|
|
35
|
+
UNAVAILABLE_FOR_LEGAL_REASONS: 451,
|
|
36
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
37
|
+
NOT_IMPLEMENTED: 501,
|
|
38
|
+
BAD_GATEWAY: 502,
|
|
39
|
+
SERVICE_UNAVAILABLE: 503,
|
|
40
|
+
GATEWAY_TIMEOUT: 504,
|
|
41
|
+
HTTP_VERSION_NOT_SUPPORTED: 505,
|
|
42
|
+
VARIANT_ALSO_NEGOTIATES: 506,
|
|
43
|
+
INSUFFICIENT_STORAGE: 507,
|
|
44
|
+
LOOP_DETECTED: 508,
|
|
45
|
+
NOT_EXTENDED: 510,
|
|
46
|
+
NETWORK_AUTHENTICATION_REQUIRED: 511
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// source/errors/httpError.ts
|
|
50
|
+
class HttpError extends BaseError {
|
|
51
|
+
_httpStatusCode;
|
|
52
|
+
constructor(options) {
|
|
53
|
+
super(options);
|
|
54
|
+
super.name = "HttpError";
|
|
55
|
+
const statusCodeOption = options?.httpStatusCode;
|
|
56
|
+
this._httpStatusCode = typeof statusCodeOption === "number" ? statusCodeOption : HTTP_ERROR_STATUS_CODES[statusCodeOption ?? "INTERNAL_SERVER_ERROR"] ?? HTTP_ERROR_STATUS_CODES.INTERNAL_SERVER_ERROR;
|
|
57
|
+
}
|
|
58
|
+
get httpStatusCode() {
|
|
59
|
+
return this._httpStatusCode;
|
|
60
|
+
}
|
|
61
|
+
get isClientError() {
|
|
62
|
+
return this._httpStatusCode >= 400 && this._httpStatusCode < 500;
|
|
63
|
+
}
|
|
64
|
+
get isServerError() {
|
|
65
|
+
return this._httpStatusCode >= 500 && this._httpStatusCode < 600;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { HttpError };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseError
|
|
3
|
+
} from "./chunk-vknq69e0.js";
|
|
4
|
+
|
|
5
|
+
// source/modules/data/enums/dataErrorKeys.ts
|
|
6
|
+
var DATA_ERROR_KEYS = {
|
|
7
|
+
DATA_IS_NULL: "data.error.is_null"
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
// source/modules/data/data.ts
|
|
11
|
+
var _validateDataNull = (data) => {
|
|
12
|
+
if (data === null || data === undefined)
|
|
13
|
+
throw new BaseError({
|
|
14
|
+
message: DATA_ERROR_KEYS.DATA_IS_NULL
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
var filterByKeyExclusion = (data, keys, excludeNullUndefined) => {
|
|
18
|
+
_validateDataNull(data);
|
|
19
|
+
const filteredData = {};
|
|
20
|
+
for (const key in data) {
|
|
21
|
+
const typedKey = key;
|
|
22
|
+
if (!keys.includes(typedKey) && (!excludeNullUndefined || data[typedKey] !== null && data[typedKey] !== undefined))
|
|
23
|
+
filteredData[key] = data[typedKey];
|
|
24
|
+
}
|
|
25
|
+
return filteredData;
|
|
26
|
+
};
|
|
27
|
+
var filterByKeyExclusionRecursive = (data, keys, excludeNullUndefined = false) => {
|
|
28
|
+
_validateDataNull(data);
|
|
29
|
+
const filteredData = {};
|
|
30
|
+
for (const key in data) {
|
|
31
|
+
const typedKey = key;
|
|
32
|
+
if (!keys.includes(typedKey) && (!excludeNullUndefined || data[typedKey] !== null && data[typedKey] !== undefined))
|
|
33
|
+
if (typeof data[typedKey] === "object" && data[typedKey] !== null && !Array.isArray(data[typedKey]))
|
|
34
|
+
filteredData[key] = filterByKeyExclusionRecursive(data[typedKey], keys, excludeNullUndefined);
|
|
35
|
+
else if (Array.isArray(data[typedKey]))
|
|
36
|
+
filteredData[key] = data[typedKey].map((item) => {
|
|
37
|
+
if (typeof item === "object" && item !== null && !Array.isArray(item))
|
|
38
|
+
return filterByKeyExclusionRecursive(item, keys, excludeNullUndefined);
|
|
39
|
+
return item;
|
|
40
|
+
});
|
|
41
|
+
else
|
|
42
|
+
filteredData[key] = data[typedKey];
|
|
43
|
+
}
|
|
44
|
+
for (const symbol of Object.getOwnPropertySymbols(data))
|
|
45
|
+
filteredData[symbol] = data[symbol];
|
|
46
|
+
return filteredData;
|
|
47
|
+
};
|
|
48
|
+
var filterByKeyInclusion = (data, keys, excludeNullUndefined, throwIfDataIsNull = true) => {
|
|
49
|
+
if (throwIfDataIsNull)
|
|
50
|
+
_validateDataNull(data);
|
|
51
|
+
const filteredData = {};
|
|
52
|
+
for (const key of keys) {
|
|
53
|
+
const typedKey = key;
|
|
54
|
+
if (typedKey in data && (!excludeNullUndefined || data[typedKey] !== null && data[typedKey] !== undefined))
|
|
55
|
+
filteredData[key] = data[typedKey];
|
|
56
|
+
}
|
|
57
|
+
return filteredData;
|
|
58
|
+
};
|
|
59
|
+
var filterByValue = (data, predicate, excludeNullUndefined = false, throwIfDataIsNull = true) => {
|
|
60
|
+
if (throwIfDataIsNull)
|
|
61
|
+
_validateDataNull(data);
|
|
62
|
+
const filteredData = {};
|
|
63
|
+
for (const key in data)
|
|
64
|
+
if (Object.hasOwn(data, key)) {
|
|
65
|
+
const typedKey = key;
|
|
66
|
+
if (predicate(data[typedKey]) && (!excludeNullUndefined || data[typedKey] !== null && data[typedKey] !== undefined))
|
|
67
|
+
filteredData[typedKey] = data[typedKey];
|
|
68
|
+
}
|
|
69
|
+
return filteredData;
|
|
70
|
+
};
|
|
71
|
+
var transformKeys = (data, transformer, throwIfDataIsNull = true) => {
|
|
72
|
+
if (throwIfDataIsNull)
|
|
73
|
+
_validateDataNull(data);
|
|
74
|
+
const result = {};
|
|
75
|
+
for (const key in data) {
|
|
76
|
+
const transformedKey = transformer.convertCase(key);
|
|
77
|
+
result[transformedKey] = data[key];
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export { filterByKeyExclusion, filterByKeyExclusionRecursive, filterByKeyInclusion, filterByValue, transformKeys };
|