@emoyly/problem 6.0.0 → 7.0.0
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 +1 -1
- package/cjs/index.d.ts +0 -1
- package/cjs/index.js +1 -3
- package/cjs/middleware/axios.js +1 -2
- package/cjs/middleware/base.d.ts +11 -1
- package/cjs/middleware/base.js +21 -0
- package/cjs/middleware/express.js +1 -2
- package/cjs/tsconfig.tsbuildinfo +1 -1
- package/cjs/typings/index.d.ts +0 -1
- package/cjs/typings/index.js +0 -1
- package/cjs/typings/middleware.d.ts +2 -0
- package/cjs/util/version.d.ts +1 -1
- package/cjs/util/version.js +1 -1
- package/esm/index.d.ts +0 -1
- package/esm/index.js +0 -1
- package/esm/middleware/axios.js +1 -2
- package/esm/middleware/base.d.ts +11 -1
- package/esm/middleware/base.js +21 -0
- package/esm/middleware/express.js +1 -2
- package/esm/tsconfig.tsbuildinfo +1 -1
- package/esm/typings/index.d.ts +0 -1
- package/esm/typings/index.js +0 -1
- package/esm/typings/middleware.d.ts +2 -0
- package/esm/util/version.d.ts +1 -1
- package/esm/util/version.js +1 -1
- package/package.json +5 -5
- package/src/index.ts +0 -1
- package/src/middleware/axios.ts +1 -2
- package/src/middleware/base.ts +27 -1
- package/src/middleware/express.ts +1 -2
- package/src/typings/index.ts +0 -1
- package/src/typings/middleware.ts +3 -0
- package/src/util/version.ts +1 -1
- package/cjs/typings/events.d.ts +0 -2
- package/cjs/typings/events.js +0 -2
- package/cjs/util/events.d.ts +0 -16
- package/cjs/util/events.js +0 -27
- package/esm/typings/events.d.ts +0 -2
- package/esm/typings/events.js +0 -1
- package/esm/util/events.d.ts +0 -16
- package/esm/util/events.js +0 -25
- package/src/typings/events.ts +0 -3
- package/src/util/events.ts +0 -34
package/src/middleware/base.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { otherErrors } from '../defaults/index.js'
|
|
2
2
|
import { Problem } from '../problem.js'
|
|
3
3
|
import type { ProblemOpts } from '../typings/index.js'
|
|
4
|
-
import type { MiddlewareOptions, PartialMiddlewareOptions } from '../typings/middleware.js'
|
|
4
|
+
import type { MiddlewareOptions, PartialMiddlewareOptions, ProblemListener } from '../typings/middleware.js'
|
|
5
5
|
import { getProblems } from '../util/getProblems.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -61,4 +61,30 @@ export abstract class MiddlewareBase {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
fallback: ProblemOpts = otherErrors.unknown
|
|
64
|
+
|
|
65
|
+
problemListeners: ProblemListener[] = []
|
|
66
|
+
|
|
67
|
+
protected emit = (list: Problem[]) => {
|
|
68
|
+
for (const listener of this.problemListeners) {
|
|
69
|
+
listener(list)
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Listen to problems
|
|
75
|
+
*/
|
|
76
|
+
onProblem = (listener: ProblemListener) => {
|
|
77
|
+
this.problemListeners.push(listener)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Un-listen to problems
|
|
82
|
+
*/
|
|
83
|
+
offProblem = (listener: ProblemListener) => {
|
|
84
|
+
const idx = this.problemListeners.findIndex(val => val === listener)
|
|
85
|
+
|
|
86
|
+
if (idx < 0 || isNaN(idx)) return
|
|
87
|
+
|
|
88
|
+
this.problemListeners.splice(idx, 1)
|
|
89
|
+
}
|
|
64
90
|
}
|
|
@@ -3,7 +3,6 @@ import type { PartialMiddlewareOptions } from '../typings/middleware.js'
|
|
|
3
3
|
import { MiddlewareBase } from './base.js'
|
|
4
4
|
import { Problem } from '../problem.js'
|
|
5
5
|
import { codes4xx, otherErrors } from '../defaults/index.js'
|
|
6
|
-
import events from '../util/events.js'
|
|
7
6
|
import { defaultInstance } from '../util/defaults.js'
|
|
8
7
|
|
|
9
8
|
export class ExpressMiddleware extends MiddlewareBase {
|
|
@@ -18,7 +17,7 @@ export class ExpressMiddleware extends MiddlewareBase {
|
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
this.emit(problems)
|
|
22
21
|
|
|
23
22
|
res
|
|
24
23
|
.contentType('application/problem+json')
|
package/src/typings/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Problem } from '../problem.js'
|
|
1
2
|
import type { Parser } from './parser.js'
|
|
2
3
|
|
|
3
4
|
export interface MiddlewareOptions {
|
|
@@ -9,3 +10,5 @@ export interface MiddlewareOptions {
|
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export type PartialMiddlewareOptions = Partial<MiddlewareOptions>
|
|
13
|
+
|
|
14
|
+
export type ProblemListener = (problems: Problem[]) => void
|
package/src/util/version.ts
CHANGED
package/cjs/typings/events.d.ts
DELETED
package/cjs/typings/events.js
DELETED
package/cjs/util/events.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { ProblemListener } from '../typings/events.js';
|
|
2
|
-
import { Problem } from '../problem.js';
|
|
3
|
-
declare class ProblemEvents {
|
|
4
|
-
listeners: ProblemListener[];
|
|
5
|
-
emit: (list: Problem[]) => void;
|
|
6
|
-
/**
|
|
7
|
-
* Listen to problems
|
|
8
|
-
*/
|
|
9
|
-
onProblem: (listener: ProblemListener) => void;
|
|
10
|
-
/**
|
|
11
|
-
* Un-listen to problems
|
|
12
|
-
*/
|
|
13
|
-
offProblem: (listener: ProblemListener) => void;
|
|
14
|
-
}
|
|
15
|
-
declare const instance: ProblemEvents;
|
|
16
|
-
export default instance;
|
package/cjs/util/events.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class ProblemEvents {
|
|
4
|
-
listeners = [];
|
|
5
|
-
emit = (list) => {
|
|
6
|
-
for (const listener of this.listeners) {
|
|
7
|
-
listener(list);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Listen to problems
|
|
12
|
-
*/
|
|
13
|
-
onProblem = (listener) => {
|
|
14
|
-
this.listeners.push(listener);
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Un-listen to problems
|
|
18
|
-
*/
|
|
19
|
-
offProblem = (listener) => {
|
|
20
|
-
const idx = this.listeners.findIndex(val => val === listener);
|
|
21
|
-
if (idx < 0 || isNaN(idx))
|
|
22
|
-
return;
|
|
23
|
-
this.listeners.splice(idx, 1);
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
const instance = new ProblemEvents();
|
|
27
|
-
exports.default = instance;
|
package/esm/typings/events.d.ts
DELETED
package/esm/typings/events.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/esm/util/events.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { ProblemListener } from '../typings/events.js';
|
|
2
|
-
import { Problem } from '../problem.js';
|
|
3
|
-
declare class ProblemEvents {
|
|
4
|
-
listeners: ProblemListener[];
|
|
5
|
-
emit: (list: Problem[]) => void;
|
|
6
|
-
/**
|
|
7
|
-
* Listen to problems
|
|
8
|
-
*/
|
|
9
|
-
onProblem: (listener: ProblemListener) => void;
|
|
10
|
-
/**
|
|
11
|
-
* Un-listen to problems
|
|
12
|
-
*/
|
|
13
|
-
offProblem: (listener: ProblemListener) => void;
|
|
14
|
-
}
|
|
15
|
-
declare const instance: ProblemEvents;
|
|
16
|
-
export default instance;
|
package/esm/util/events.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
class ProblemEvents {
|
|
2
|
-
listeners = [];
|
|
3
|
-
emit = (list) => {
|
|
4
|
-
for (const listener of this.listeners) {
|
|
5
|
-
listener(list);
|
|
6
|
-
}
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Listen to problems
|
|
10
|
-
*/
|
|
11
|
-
onProblem = (listener) => {
|
|
12
|
-
this.listeners.push(listener);
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Un-listen to problems
|
|
16
|
-
*/
|
|
17
|
-
offProblem = (listener) => {
|
|
18
|
-
const idx = this.listeners.findIndex(val => val === listener);
|
|
19
|
-
if (idx < 0 || isNaN(idx))
|
|
20
|
-
return;
|
|
21
|
-
this.listeners.splice(idx, 1);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const instance = new ProblemEvents();
|
|
25
|
-
export default instance;
|
package/src/typings/events.ts
DELETED
package/src/util/events.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { ProblemListener } from '../typings/events.js'
|
|
2
|
-
import { Problem } from '../problem.js'
|
|
3
|
-
|
|
4
|
-
class ProblemEvents {
|
|
5
|
-
listeners: ProblemListener[] = []
|
|
6
|
-
|
|
7
|
-
emit = (list: Problem[]) => {
|
|
8
|
-
for (const listener of this.listeners) {
|
|
9
|
-
listener(list)
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Listen to problems
|
|
15
|
-
*/
|
|
16
|
-
onProblem = (listener: ProblemListener) => {
|
|
17
|
-
this.listeners.push(listener)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Un-listen to problems
|
|
22
|
-
*/
|
|
23
|
-
offProblem = (listener: ProblemListener) => {
|
|
24
|
-
const idx = this.listeners.findIndex(val => val === listener)
|
|
25
|
-
|
|
26
|
-
if (idx < 0 || isNaN(idx)) return
|
|
27
|
-
|
|
28
|
-
this.listeners.splice(idx, 1)
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const instance = new ProblemEvents()
|
|
33
|
-
|
|
34
|
-
export default instance
|