@nest-yalc-2/errors 2.2.8 → 2.2.10
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/package.json +5 -5
- package/src/__tests__/http-exception.filter.spec.ts +1 -1
- package/src/__tests__/validation-exception.filter.spec.ts +1 -1
- package/src/filters/http-exception.filter.d.ts +4 -3
- package/src/filters/http-exception.filter.js +3 -2
- package/src/filters/http-exception.filter.js.map +1 -1
- package/src/filters/http-exception.filter.ts +145 -144
- package/src/filters/validation-exception.filter.d.ts +1 -1
- package/src/filters/validation-exception.filter.js +1 -1
- package/src/filters/validation-exception.filter.js.map +1 -1
- package/src/filters/validation-exception.filter.ts +1 -1
- package/src/index.d.ts +0 -4
- package/src/index.js +0 -4
- package/src/index.js.map +1 -1
- package/src/index.ts +0 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nest-yalc-2/errors",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"src"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@nest-yalc-2/crud-gen": "^2.2.
|
|
20
|
-
"@nest-yalc-2/event-manager": "^2.2.
|
|
21
|
-
"@nest-yalc-2/logger": "^2.2.
|
|
22
|
-
"@nest-yalc-2/utils": "^2.2.
|
|
19
|
+
"@nest-yalc-2/crud-gen": "^2.2.10",
|
|
20
|
+
"@nest-yalc-2/event-manager": "^2.2.10",
|
|
21
|
+
"@nest-yalc-2/logger": "^2.2.10",
|
|
22
|
+
"@nest-yalc-2/utils": "^2.2.10",
|
|
23
23
|
"axios": "^1.20.0",
|
|
24
24
|
"neverthrow": "^8.2.0",
|
|
25
25
|
"tslib": "^2.8.1"
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from '@nestjs/common';
|
|
12
12
|
import { HttpExceptionFilter } from '../filters/http-exception.filter.js';
|
|
13
13
|
import { GqlError } from '@nest-yalc-2/graphql/plugins/gql.error.js';
|
|
14
|
-
import { DefaultError } from '
|
|
14
|
+
import { DefaultError } from '@node-yalc/errors';
|
|
15
15
|
import { GqlArgumentsHost } from '@nestjs/graphql';
|
|
16
16
|
describe('Http exceptions filter', () => {
|
|
17
17
|
let filter: HttpExceptionFilter;
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import { createMock } from '@golevelup/ts-jest';
|
|
12
12
|
import { LoggerService } from '@nestjs/common';
|
|
13
13
|
import { ValidationExceptionFilter } from '../filters/validation-exception.filter.js';
|
|
14
|
-
import { InputValidationError } from '
|
|
14
|
+
import { InputValidationError } from '@node-yalc/errors';
|
|
15
15
|
import { CrudGenError } from '@nest-yalc-2/crud-gen/crud-gen.error.js';
|
|
16
16
|
|
|
17
17
|
describe('ValidationExceptionFilter', () => {
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { GqlExceptionFilter } from '@nestjs/graphql';
|
|
2
2
|
import * as common from '@nestjs/common';
|
|
3
3
|
import type { HttpServer } from '@nestjs/common';
|
|
4
|
-
import {
|
|
4
|
+
import { IAbstractDefaultError } from '@node-yalc/errors';
|
|
5
|
+
import { MissingArgumentsError } from '@nest-yalc-2/crud-gen/missing-arguments.error.js';
|
|
5
6
|
import { FastifyReply as FResponse } from 'fastify';
|
|
6
7
|
import { GqlError } from '@nest-yalc-2/graphql/plugins/gql.error.js';
|
|
7
8
|
import { BaseExceptionFilter } from '@nestjs/core';
|
|
8
9
|
import { type ImprovedLoggerService } from '@node-yalc/logger/logger-abstract.service.js';
|
|
9
|
-
type HttpErrorType = common.HttpException | MissingArgumentsError | GqlError |
|
|
10
|
+
type HttpErrorType = common.HttpException | MissingArgumentsError | GqlError | IAbstractDefaultError;
|
|
10
11
|
export declare class HttpExceptionFilter extends BaseExceptionFilter implements GqlExceptionFilter, common.ExceptionFilter {
|
|
11
12
|
protected logger: ImprovedLoggerService;
|
|
12
13
|
constructor(logger: ImprovedLoggerService, applicationRef?: HttpServer);
|
|
13
14
|
catch(error: Error | HttpErrorType, host: common.ArgumentsHost, { sendResponse }?: {
|
|
14
15
|
sendResponse: boolean;
|
|
15
|
-
}): Error | FResponse<import("fastify").RouteGenericInterface, import("fastify").RawServerDefault, import("node:http").IncomingMessage, import("node:http").ServerResponse<import("node:http").IncomingMessage>, unknown, import("fastify").FastifySchema, import("fastify").FastifyTypeProviderDefault, unknown> |
|
|
16
|
+
}): Error | FResponse<import("fastify").RouteGenericInterface, import("fastify").RawServerDefault, import("node:http").IncomingMessage, import("node:http").ServerResponse<import("node:http").IncomingMessage>, unknown, import("fastify").FastifySchema, import("fastify").FastifyTypeProviderDefault, unknown> | IAbstractDefaultError;
|
|
16
17
|
}
|
|
17
18
|
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import * as common from '@nestjs/common';
|
|
3
|
-
import { DefaultErrorMixin,
|
|
3
|
+
import { DefaultErrorMixin, isDefaultErrorMixin, formatCause, } from '@node-yalc/errors';
|
|
4
|
+
import { MissingArgumentsError } from '@nest-yalc-2/crud-gen/missing-arguments.error.js';
|
|
4
5
|
import { isEntityError, } from '@nest-yalc-2/crud-gen/entity.error.js';
|
|
5
6
|
import { GqlError } from '@nest-yalc-2/graphql/plugins/gql.error.js';
|
|
6
7
|
import { BaseExceptionFilter } from '@nestjs/core';
|
|
7
|
-
import { getLogLevelByStatus } from '
|
|
8
|
+
import { getLogLevelByStatus } from '@node-yalc/event-manager/event.helper.js';
|
|
8
9
|
import { LogLevelEnum } from '@node-yalc/logger/logger.enum.js';
|
|
9
10
|
let HttpExceptionFilter = class HttpExceptionFilter extends BaseExceptionFilter {
|
|
10
11
|
constructor(logger, applicationRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["http-exception.filter.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EACL,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["http-exception.filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,144 +1,145 @@
|
|
|
1
|
-
import { GqlExceptionFilter } from '@nestjs/graphql';
|
|
2
|
-
import * as common from '@nestjs/common';
|
|
3
|
-
import type { HttpServer } from '@nestjs/common';
|
|
4
|
-
import {
|
|
5
|
-
DefaultErrorMixin,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} from '@
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
*
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}
|
|
1
|
+
import { GqlExceptionFilter } from '@nestjs/graphql';
|
|
2
|
+
import * as common from '@nestjs/common';
|
|
3
|
+
import type { HttpServer } from '@nestjs/common';
|
|
4
|
+
import {
|
|
5
|
+
DefaultErrorMixin,
|
|
6
|
+
isDefaultErrorMixin,
|
|
7
|
+
formatCause,
|
|
8
|
+
IAbstractDefaultError,
|
|
9
|
+
} from '@node-yalc/errors';
|
|
10
|
+
import { MissingArgumentsError } from '@nest-yalc-2/crud-gen/missing-arguments.error.js';
|
|
11
|
+
import {
|
|
12
|
+
EntityError,
|
|
13
|
+
isEntityError,
|
|
14
|
+
} from '@nest-yalc-2/crud-gen/entity.error.js';
|
|
15
|
+
import { FastifyReply as FResponse } from 'fastify';
|
|
16
|
+
import { GqlError } from '@nest-yalc-2/graphql/plugins/gql.error.js';
|
|
17
|
+
import { BaseExceptionFilter } from '@nestjs/core';
|
|
18
|
+
import { getLogLevelByStatus } from '@node-yalc/event-manager/event.helper.js';
|
|
19
|
+
import { LogLevelEnum } from '@node-yalc/logger/logger.enum.js';
|
|
20
|
+
import { type ImprovedLoggerService } from '@node-yalc/logger/logger-abstract.service.js';
|
|
21
|
+
|
|
22
|
+
type HttpErrorType =
|
|
23
|
+
common.HttpException | MissingArgumentsError | GqlError | IAbstractDefaultError;
|
|
24
|
+
@common.Catch(
|
|
25
|
+
common.HttpException,
|
|
26
|
+
MissingArgumentsError,
|
|
27
|
+
GqlError,
|
|
28
|
+
DefaultErrorMixin,
|
|
29
|
+
)
|
|
30
|
+
export class HttpExceptionFilter
|
|
31
|
+
extends BaseExceptionFilter
|
|
32
|
+
implements GqlExceptionFilter, common.ExceptionFilter
|
|
33
|
+
{
|
|
34
|
+
constructor(
|
|
35
|
+
protected logger: ImprovedLoggerService,
|
|
36
|
+
applicationRef?: HttpServer,
|
|
37
|
+
) {
|
|
38
|
+
super(applicationRef);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
catch(
|
|
42
|
+
error: Error | HttpErrorType,
|
|
43
|
+
host: common.ArgumentsHost,
|
|
44
|
+
{ sendResponse }: { sendResponse: boolean } = { sendResponse: true },
|
|
45
|
+
) {
|
|
46
|
+
try {
|
|
47
|
+
const isHttpError =
|
|
48
|
+
this.isHttpError(error) || error instanceof common.HttpException;
|
|
49
|
+
// TODO: Validate when monitoring is in place if we need an eventEmitter here instead of log
|
|
50
|
+
switch (true) {
|
|
51
|
+
// Base logging for normal operation execution errors
|
|
52
|
+
case error instanceof MissingArgumentsError:
|
|
53
|
+
this.logger.log(error.message, {
|
|
54
|
+
stack: error.stack,
|
|
55
|
+
});
|
|
56
|
+
break;
|
|
57
|
+
|
|
58
|
+
case isDefaultErrorMixin(error):
|
|
59
|
+
// no need to log, DefaultErrorMixin already logs
|
|
60
|
+
break;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Log original error message (for now only if is an EntityError)
|
|
64
|
+
* @todo refactor with the default error mixin
|
|
65
|
+
*/
|
|
66
|
+
case isEntityError(error):
|
|
67
|
+
{
|
|
68
|
+
const entityError = error as EntityError;
|
|
69
|
+
this.logger.error(
|
|
70
|
+
entityError.originalError?.message
|
|
71
|
+
? entityError.originalError.message
|
|
72
|
+
: error,
|
|
73
|
+
entityError.originalError?.stack,
|
|
74
|
+
{
|
|
75
|
+
stack: entityError.originalError?.stack,
|
|
76
|
+
data: {
|
|
77
|
+
response: entityError.getResponse(),
|
|
78
|
+
name: entityError.name,
|
|
79
|
+
cause: formatCause(entityError.cause),
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
|
|
86
|
+
case isHttpError:
|
|
87
|
+
{
|
|
88
|
+
const httpError = error as common.HttpException;
|
|
89
|
+
const logLevel = getLogLevelByStatus(httpError.getStatus());
|
|
90
|
+
|
|
91
|
+
if (logLevel === LogLevelEnum.ERROR) {
|
|
92
|
+
(this.logger as any)[logLevel](error.message, error.stack, {
|
|
93
|
+
stack: httpError.stack,
|
|
94
|
+
data: {
|
|
95
|
+
response: httpError.getResponse(),
|
|
96
|
+
name: error.name,
|
|
97
|
+
cause: formatCause(error.cause),
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
} else {
|
|
101
|
+
(this.logger as any)[logLevel](error.message, {
|
|
102
|
+
stack: error.stack,
|
|
103
|
+
data: {
|
|
104
|
+
response: httpError.getResponse(),
|
|
105
|
+
name: error.name,
|
|
106
|
+
cause: formatCause(error.cause),
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
break;
|
|
112
|
+
|
|
113
|
+
case error instanceof GqlError:
|
|
114
|
+
this.logger.error((<GqlError>error).systemMessage ?? error.message);
|
|
115
|
+
break;
|
|
116
|
+
|
|
117
|
+
// Log critically any other error, as those are not expected
|
|
118
|
+
default:
|
|
119
|
+
this.logger.error(error.message, error.stack, {
|
|
120
|
+
stack: error.stack,
|
|
121
|
+
data: {
|
|
122
|
+
cause: formatCause(error.cause),
|
|
123
|
+
name: error.name,
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (host.getType() === 'http') {
|
|
130
|
+
if (sendResponse) {
|
|
131
|
+
const ctx = host.switchToHttp();
|
|
132
|
+
const response = ctx.getResponse<FResponse>();
|
|
133
|
+
let status = common.HttpStatus.INTERNAL_SERVER_ERROR;
|
|
134
|
+
if (isHttpError) status = (error as common.HttpException).getStatus();
|
|
135
|
+
return response.status(status).send(error.message);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
} catch (e) {
|
|
139
|
+
// eslint-disable-next-line no-console
|
|
140
|
+
console.error(e); // if there's an error with the logger itself
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return error;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GqlExceptionFilter } from '@nestjs/graphql';
|
|
2
|
-
import { InputValidationError } from '
|
|
2
|
+
import { InputValidationError } from '@node-yalc/errors';
|
|
3
3
|
import type { LoggerService } from '@nestjs/common';
|
|
4
4
|
export declare class ValidationExceptionFilter implements GqlExceptionFilter {
|
|
5
5
|
private logger;
|
|
@@ -2,7 +2,7 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { CrudGenError } from '@nest-yalc-2/crud-gen/crud-gen.error.js';
|
|
3
3
|
import { UUIDValidationError } from '@nest-yalc-2/graphql/scalars/uuid-validation.error.js';
|
|
4
4
|
import * as common from '@nestjs/common';
|
|
5
|
-
import { InputValidationError } from '
|
|
5
|
+
import { InputValidationError } from '@node-yalc/errors';
|
|
6
6
|
let ValidationExceptionFilter = class ValidationExceptionFilter {
|
|
7
7
|
constructor(logger) {
|
|
8
8
|
this.logger = logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-exception.filter.js","sourceRoot":"","sources":["validation-exception.filter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validation-exception.filter.js","sourceRoot":"","sources":["validation-exception.filter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKlD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C,KAAK,CAAC,KAAY;QAChB,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACxB,KAAM,CAAC,aAAa,EACnC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CACzC,CAAC;QACF,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CACA,KAAM,CAAC,aAAa,IAAI,QAAQ,CAAC,OAAO,EACvD,QAAQ,CAAC,KAAK,CACf,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AAhBY,yBAAyB;IADrC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC;;GACnC,yBAAyB,CAgBrC"}
|
|
@@ -2,7 +2,7 @@ import { CrudGenError } from '@nest-yalc-2/crud-gen/crud-gen.error.js';
|
|
|
2
2
|
import { UUIDValidationError } from '@nest-yalc-2/graphql/scalars/uuid-validation.error.js';
|
|
3
3
|
import * as common from '@nestjs/common';
|
|
4
4
|
import { GqlExceptionFilter } from '@nestjs/graphql';
|
|
5
|
-
import { InputValidationError } from '
|
|
5
|
+
import { InputValidationError } from '@node-yalc/errors';
|
|
6
6
|
|
|
7
7
|
import type { LoggerService } from '@nestjs/common';
|
|
8
8
|
|
package/src/index.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
export { MissingArgumentsError } from '@nest-yalc-2/crud-gen';
|
|
2
|
-
export * from '@node-yalc/errors/error.enum.js';
|
|
3
|
-
export * from '@node-yalc/errors/error.class.js';
|
|
4
|
-
export * from '@node-yalc/errors/default.error.js';
|
|
5
|
-
export * from '@node-yalc/errors/result.error.js';
|
|
6
2
|
export * from './filters/index.js';
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
export { MissingArgumentsError } from '@nest-yalc-2/crud-gen';
|
|
2
|
-
export * from '@node-yalc/errors/error.enum.js';
|
|
3
|
-
export * from '@node-yalc/errors/error.class.js';
|
|
4
|
-
export * from '@node-yalc/errors/default.error.js';
|
|
5
|
-
export * from '@node-yalc/errors/result.error.js';
|
|
6
2
|
export * from './filters/index.js';
|
|
7
3
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,cAAc,oBAAoB,CAAC"}
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
/* istanbul ignore file */
|
|
2
2
|
|
|
3
3
|
export { MissingArgumentsError } from '@nest-yalc-2/crud-gen';
|
|
4
|
-
export * from '@node-yalc/errors/error.enum.js';
|
|
5
|
-
export * from '@node-yalc/errors/error.class.js';
|
|
6
|
-
export * from '@node-yalc/errors/default.error.js';
|
|
7
|
-
export * from '@node-yalc/errors/result.error.js';
|
|
8
4
|
export * from './filters/index.js';
|