@chainlink/external-adapter-framework 0.14.5 → 0.15.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/adapter/basic.js +7 -6
- package/adapter/basic.js.map +1 -1
- package/adapter/types.d.ts +5 -4
- package/background-executor.js +4 -4
- package/background-executor.js.map +1 -1
- package/cache/factory.d.ts +4 -1
- package/cache/factory.js +2 -2
- package/cache/factory.js.map +1 -1
- package/cache/local.d.ts +26 -4
- package/cache/local.js +113 -22
- package/cache/local.js.map +1 -1
- package/config/index.d.ts +30 -28
- package/config/index.js +35 -61
- package/config/index.js.map +1 -1
- package/package.json +4 -4
- package/rate-limiting/index.d.ts +2 -15
- package/rate-limiting/index.js +1 -2
- package/rate-limiting/index.js.map +1 -1
- package/rate-limiting/request/simple-counting.d.ts +1 -1
- package/rate-limiting/request/simple-counting.js +12 -8
- package/rate-limiting/request/simple-counting.js.map +1 -1
- package/rate-limiting/simple-counting.d.ts +20 -0
- package/rate-limiting/simple-counting.js +67 -0
- package/rate-limiting/simple-counting.js.map +1 -0
- package/transports/abstract/subscription.d.ts +1 -3
- package/transports/abstract/subscription.js +0 -1
- package/transports/abstract/subscription.js.map +1 -1
- package/transports/batch-warming.d.ts +20 -8
- package/transports/batch-warming.js +55 -68
- package/transports/batch-warming.js.map +1 -1
- package/transports/http.d.ts +90 -0
- package/transports/http.js +172 -0
- package/transports/http.js.map +1 -0
- package/transports/index.d.ts +2 -3
- package/transports/index.js +1 -2
- package/transports/index.js.map +1 -1
- package/transports/metrics.d.ts +0 -6
- package/transports/metrics.js +1 -18
- package/transports/metrics.js.map +1 -1
- package/transports/sse.d.ts +3 -3
- package/transports/sse.js +6 -3
- package/transports/sse.js.map +1 -1
- package/transports/websocket.d.ts +2 -2
- package/transports/websocket.js +3 -0
- package/transports/websocket.js.map +1 -1
- package/util/index.d.ts +1 -1
- package/util/index.js +1 -1
- package/util/index.js.map +1 -1
- package/util/logger.d.ts +1 -1
- package/util/metrics.d.ts +9 -0
- package/util/metrics.js +53 -0
- package/util/metrics.js.map +1 -0
- package/util/request.d.ts +25 -25
- package/util/requester.d.ts +42 -0
- package/util/requester.js +233 -0
- package/util/requester.js.map +1 -0
- package/util/test-payload-loader.d.ts +1 -1
- package/util/types.d.ts +217 -0
- package/util/types.js +3 -0
- package/util/types.js.map +1 -0
- package/validation/error.d.ts +5 -2
- package/validation/error.js +4 -2
- package/validation/error.js.map +1 -1
- package/validation/index.d.ts +1 -1
- package/validation/index.js.map +1 -1
- package/validation/input-validator.d.ts +3 -0
- package/validation/input-validator.js +31 -1
- package/validation/input-validator.js.map +1 -1
- package/validation/utils.d.ts +1 -0
- package/validation/utils.js +10 -0
- package/validation/utils.js.map +1 -1
package/util/types.d.ts
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { FastifyReply, FastifyRequest, HookHandlerDoneFunction } from 'fastify';
|
|
2
|
+
import { Adapter } from '../adapter';
|
|
3
|
+
import { AdapterError } from '../validation/error';
|
|
4
|
+
declare module 'fastify' {
|
|
5
|
+
interface FastifyRequest {
|
|
6
|
+
requestContext: AdapterRequestContext;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export type Merge<T1, T2> = {
|
|
10
|
+
[K in keyof T1 | keyof T2]: K extends keyof T2 ? T2[K] : K extends keyof T1 ? T1[K] : never;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Structure for the body of all requests that will be sent to the adapter
|
|
14
|
+
*/
|
|
15
|
+
export interface AdapterRequestBody<T = AdapterRequestData> {
|
|
16
|
+
/** Adapter endpoint (not to be confused with REST API endpoint) */
|
|
17
|
+
endpoint?: string;
|
|
18
|
+
/** Main data that will be validated and used on each adapter request */
|
|
19
|
+
data: T;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Object that will be added to the request on a successful validation.
|
|
23
|
+
* Contains all the necessary information the adapter will need across the request execution.
|
|
24
|
+
*/
|
|
25
|
+
export type AdapterRequestContext<T = AdapterRequestData> = {
|
|
26
|
+
/** Name of the endpoint this payload should be directed to */
|
|
27
|
+
endpointName: string;
|
|
28
|
+
/** Precalculated cache key used to get and set corresponding values from the cache and subscription sets */
|
|
29
|
+
cacheKey: string;
|
|
30
|
+
/** Normalized and validated data coming from the request body */
|
|
31
|
+
data: T;
|
|
32
|
+
/** Metadata relevant to this particular request */
|
|
33
|
+
meta?: AdapterRequestMeta;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Helper type to denote an empty body
|
|
37
|
+
*/
|
|
38
|
+
type EmptyBody = Record<string, never>;
|
|
39
|
+
/**
|
|
40
|
+
* Helper type to provide fastify for all adapter handlers
|
|
41
|
+
*/
|
|
42
|
+
export type AdapterRouteGeneric = {
|
|
43
|
+
/** Set to an empty record so the user does not access the raw request data and uses the Validated data from the context instead */
|
|
44
|
+
Body: EmptyBody;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Structure for all requests incoming to this adapter
|
|
48
|
+
*/
|
|
49
|
+
export type AdapterRequest<T extends RequestGenerics = RequestGenerics> = FastifyRequest<AdapterRouteGeneric> & {
|
|
50
|
+
/** Set to an empty record so the user does not access the raw request data and uses the Validated data from the context instead */
|
|
51
|
+
body: EmptyBody;
|
|
52
|
+
/** Container for all validated information that will be used by the framework across this request's lifecycle */
|
|
53
|
+
requestContext: AdapterRequestContext<T['Params']>;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Metadata for a particular request
|
|
57
|
+
*/
|
|
58
|
+
export interface AdapterRequestMeta {
|
|
59
|
+
/** Relevant metrics gathered for this request */
|
|
60
|
+
metrics?: AdapterMetricsMeta;
|
|
61
|
+
/** An error that ocurred somewhere along this requests' lifecycle */
|
|
62
|
+
error?: AdapterError | Error;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Meta info that pertains to exposing metrics
|
|
66
|
+
*/
|
|
67
|
+
export interface AdapterMetricsMeta {
|
|
68
|
+
/** String to uniquely identify a specific price feed */
|
|
69
|
+
feedId?: string;
|
|
70
|
+
/** Boolean to note if this request's response was found in the cache directly */
|
|
71
|
+
cacheHit?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Basic shape for the data within the request body
|
|
75
|
+
*/
|
|
76
|
+
export type AdapterRequestData = Record<string, unknown> & {
|
|
77
|
+
endpoint?: string;
|
|
78
|
+
};
|
|
79
|
+
export type ProviderResultGenerics = {
|
|
80
|
+
Request: RequestGenerics;
|
|
81
|
+
Response: ResponseGenerics;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Helper type to hold the value from responses from a provider, and the adapter params they correspond to.
|
|
85
|
+
*/
|
|
86
|
+
export type ProviderResult<T extends ProviderResultGenerics> = {
|
|
87
|
+
/** The set of parameters that uniquely relate to the response */
|
|
88
|
+
params: T['Request']['Params'];
|
|
89
|
+
/** Value that will be included in the result property of the response */
|
|
90
|
+
response: PartialAdapterResponse<T['Response']>;
|
|
91
|
+
};
|
|
92
|
+
export type TimestampedProviderResult<T extends ProviderResultGenerics> = Pick<ProviderResult<T>, 'params'> & {
|
|
93
|
+
/** Value that will be included in the result property of the response, with timestamps applied */
|
|
94
|
+
response: TimestampedAdapterResponse<T['Response']>;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Here we do actually want an object, since unknown could be a primitive.
|
|
98
|
+
* The rule itself does say "marginally better"
|
|
99
|
+
*/
|
|
100
|
+
export type EmptyObject = Object;
|
|
101
|
+
/**
|
|
102
|
+
* Helper struct type that provides detail about the incoming Adapter Request
|
|
103
|
+
*/
|
|
104
|
+
export type RequestGenerics = {
|
|
105
|
+
/**
|
|
106
|
+
* Type for the parameters sent to the EA in the data property of the body.
|
|
107
|
+
*/
|
|
108
|
+
Params: EmptyObject;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Helper struct type that provides detail about the outgoing Adapter Response
|
|
112
|
+
*/
|
|
113
|
+
export type ResponseGenerics = {
|
|
114
|
+
/**
|
|
115
|
+
* Type for the data property of the response.
|
|
116
|
+
*/
|
|
117
|
+
Data: unknown;
|
|
118
|
+
/**
|
|
119
|
+
* Type for the result property of the response.
|
|
120
|
+
* This is mostly used for OCR, and corresponds to one "word" when talking about it from an on-chain perspective.
|
|
121
|
+
*/
|
|
122
|
+
Result: string | number | null;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Details for timestamps to be included in the response
|
|
126
|
+
*/
|
|
127
|
+
export type ResponseTimestamps = {
|
|
128
|
+
/** Time at which data was received from the provider */
|
|
129
|
+
providerDataReceived: number;
|
|
130
|
+
/** Time indicated by the provider representing the time at which this value was calculated/set/valid */
|
|
131
|
+
providerIndicatedTime: number | undefined;
|
|
132
|
+
} & ({
|
|
133
|
+
/**
|
|
134
|
+
* For sync protocols (request -\> response).
|
|
135
|
+
* Time at which data was requested from the provider.
|
|
136
|
+
*/
|
|
137
|
+
providerDataRequested: number;
|
|
138
|
+
providerDataStreamEstablished?: never;
|
|
139
|
+
} | {
|
|
140
|
+
/**
|
|
141
|
+
* For async protocols (subscription -\> n events received).
|
|
142
|
+
* Time at which a data stream was established for the provider.
|
|
143
|
+
*/
|
|
144
|
+
providerDataStreamEstablished: number;
|
|
145
|
+
providerDataRequested?: never;
|
|
146
|
+
});
|
|
147
|
+
/**
|
|
148
|
+
* Object with timestamps that will be present in both successful and provider error responses
|
|
149
|
+
*/
|
|
150
|
+
type TimestampedResponseObject = {
|
|
151
|
+
/** Timestamps relevant for data provider timings */
|
|
152
|
+
timestamps: ResponseTimestamps;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Response from the EA to send when manually storing an error in the cache
|
|
156
|
+
*/
|
|
157
|
+
type ProviderErrorResponse = {
|
|
158
|
+
/** Status code for the errored response */
|
|
159
|
+
statusCode: number;
|
|
160
|
+
/** Error message that will be sent back from the adapter */
|
|
161
|
+
errorMessage: string;
|
|
162
|
+
} & {
|
|
163
|
+
data?: never;
|
|
164
|
+
result?: never;
|
|
165
|
+
meta?: never;
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Provider error response with timestamps added
|
|
169
|
+
*/
|
|
170
|
+
export type TimestampedProviderErrorResponse = ProviderErrorResponse & TimestampedResponseObject;
|
|
171
|
+
/**
|
|
172
|
+
* The most basic data that needs to be manually set for an adapter response.
|
|
173
|
+
*/
|
|
174
|
+
export type PartialSuccessfulResponse<T extends ResponseGenerics> = {
|
|
175
|
+
/** Response data, holds "result" for Flux Monitor */
|
|
176
|
+
data: T['Data'];
|
|
177
|
+
/** Result value used for OCR */
|
|
178
|
+
result: T['Result'];
|
|
179
|
+
/** Optionally, specify manually some of the timestamps here */
|
|
180
|
+
timestamps?: Pick<ResponseTimestamps, 'providerIndicatedTime'>;
|
|
181
|
+
} & {
|
|
182
|
+
errorMessage?: never;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Partial EA response, with timestamps added
|
|
186
|
+
*/
|
|
187
|
+
type TimestampedSuccessfulResponse<T extends ResponseGenerics> = PartialSuccessfulResponse<T> & TimestampedResponseObject;
|
|
188
|
+
/**
|
|
189
|
+
* Full EA successful response, with metadata and defaults added
|
|
190
|
+
*/
|
|
191
|
+
type SuccessfulResponse<T extends ResponseGenerics> = TimestampedSuccessfulResponse<T> & {
|
|
192
|
+
/** Metadata relevant to this request */
|
|
193
|
+
meta?: AdapterRequestMeta;
|
|
194
|
+
/** HTTP status code, by default will be set to 200 */
|
|
195
|
+
statusCode: number;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Response body from the EA, before timestamps, defaults and metadata are filled in
|
|
199
|
+
*/
|
|
200
|
+
export type PartialAdapterResponse<T extends ResponseGenerics = ResponseGenerics> = PartialSuccessfulResponse<T> | ProviderErrorResponse;
|
|
201
|
+
/**
|
|
202
|
+
* Response body from the EA with timestamps, before defaults and metadata are filled in
|
|
203
|
+
*/
|
|
204
|
+
export type TimestampedAdapterResponse<T extends ResponseGenerics = ResponseGenerics> = TimestampedSuccessfulResponse<T> | TimestampedProviderErrorResponse;
|
|
205
|
+
/**
|
|
206
|
+
* Shape of the response body from the adapter
|
|
207
|
+
*/
|
|
208
|
+
export type AdapterResponse<T extends ResponseGenerics = ResponseGenerics> = SuccessfulResponse<T> | TimestampedProviderErrorResponse;
|
|
209
|
+
export type SingleNumberResultResponse = {
|
|
210
|
+
Result: number;
|
|
211
|
+
Data: {
|
|
212
|
+
result: number;
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
export type Middleware = ((req: AdapterRequest, reply: FastifyReply, done: HookHandlerDoneFunction) => FastifyReply | void) | ((req: AdapterRequest, reply: FastifyReply) => Promise<FastifyReply | void>);
|
|
216
|
+
export type AdapterMiddlewareBuilder = (adapter: Adapter) => Middleware;
|
|
217
|
+
export {};
|
package/util/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/util/types.ts"],"names":[],"mappings":""}
|
package/validation/error.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HttpRequestType } from '../metrics/constants';
|
|
2
|
+
import { ResponseTimestamps } from '../util';
|
|
2
3
|
type ErrorBasic = {
|
|
3
4
|
name: string;
|
|
4
5
|
message: string;
|
|
@@ -37,10 +38,12 @@ export declare class AdapterTimeoutError extends AdapterError {
|
|
|
37
38
|
constructor(input: Partial<AdapterError>);
|
|
38
39
|
}
|
|
39
40
|
export declare class AdapterDataProviderError extends AdapterError {
|
|
40
|
-
|
|
41
|
+
timestamps: ResponseTimestamps;
|
|
42
|
+
constructor(input: Partial<AdapterError>, timestamps: ResponseTimestamps);
|
|
41
43
|
}
|
|
42
44
|
export declare class AdapterConnectionError extends AdapterError {
|
|
43
|
-
|
|
45
|
+
timestamps: ResponseTimestamps;
|
|
46
|
+
constructor(input: Partial<AdapterError>, timestamps: ResponseTimestamps);
|
|
44
47
|
}
|
|
45
48
|
export declare class AdapterCustomError extends AdapterError {
|
|
46
49
|
constructor(input: Partial<AdapterError>);
|
package/validation/error.js
CHANGED
|
@@ -58,14 +58,16 @@ class AdapterTimeoutError extends AdapterError {
|
|
|
58
58
|
}
|
|
59
59
|
exports.AdapterTimeoutError = AdapterTimeoutError;
|
|
60
60
|
class AdapterDataProviderError extends AdapterError {
|
|
61
|
-
constructor(input) {
|
|
61
|
+
constructor(input, timestamps) {
|
|
62
62
|
super({ ...input, metricsLabel: constants_1.HttpRequestType.DP_ERROR });
|
|
63
|
+
this.timestamps = timestamps;
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
exports.AdapterDataProviderError = AdapterDataProviderError;
|
|
66
67
|
class AdapterConnectionError extends AdapterError {
|
|
67
|
-
constructor(input) {
|
|
68
|
+
constructor(input, timestamps) {
|
|
68
69
|
super({ ...input, metricsLabel: constants_1.HttpRequestType.CONNECTION_ERROR });
|
|
70
|
+
this.timestamps = timestamps;
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
exports.AdapterConnectionError = AdapterConnectionError;
|
package/validation/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/validation/error.ts"],"names":[],"mappings":";;;AAAA,oDAAsD;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/validation/error.ts"],"names":[],"mappings":"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"}
|
package/validation/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FastifyReply, FastifyRequest } from 'fastify';
|
|
2
|
-
import { AdapterMiddlewareBuilder } from '../util/
|
|
2
|
+
import { AdapterMiddlewareBuilder } from '../util/types';
|
|
3
3
|
export { InputParameters } from './input-params';
|
|
4
4
|
export declare const validatorMiddleware: AdapterMiddlewareBuilder;
|
|
5
5
|
export declare const errorCatchingMiddleware: (err: Error, req: FastifyRequest, res: FastifyReply) => void;
|
package/validation/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;AAEA,oCAAsE;AACtE,0CAAgD;AAChD,kCAAoC;AAEpC,mCAA8E;AAC9E,8CAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { InputParameters } from './input-params';
|
|
2
2
|
export type NormalizedInput = Record<string, unknown>;
|
|
3
|
+
export type Override = Record<string, string>;
|
|
4
|
+
export type OverridesMap = Record<string, Override>;
|
|
3
5
|
export declare class InputValidator {
|
|
4
6
|
private readonly inputConfig;
|
|
5
7
|
private aliases;
|
|
6
8
|
constructor(inputConfig: InputParameters);
|
|
7
9
|
validateInput(input: Record<string, unknown>): NormalizedInput;
|
|
10
|
+
private validateOverrides;
|
|
8
11
|
private initializeInputs;
|
|
9
12
|
private validateInputParamsSchema;
|
|
10
13
|
private validateRequiredConfig;
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.InputValidator = void 0;
|
|
4
4
|
const error_1 = require("./error");
|
|
5
5
|
const util_1 = require("../util");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const isNotObject = utils_1.validator.object();
|
|
6
8
|
class InputValidator {
|
|
7
9
|
constructor(inputConfig) {
|
|
8
10
|
this.inputConfig = inputConfig;
|
|
@@ -16,6 +18,7 @@ class InputValidator {
|
|
|
16
18
|
}
|
|
17
19
|
validateInput(input) {
|
|
18
20
|
const normalized = this.initializeInputs(input);
|
|
21
|
+
this.validateOverrides(input?.['overrides']);
|
|
19
22
|
for (const configKey in this.inputConfig) {
|
|
20
23
|
this.validateRequiredConfig(configKey, normalized);
|
|
21
24
|
if (!(0, util_1.isEmpty)(normalized[configKey])) {
|
|
@@ -26,6 +29,33 @@ class InputValidator {
|
|
|
26
29
|
}
|
|
27
30
|
return normalized;
|
|
28
31
|
}
|
|
32
|
+
validateOverrides(overrides) {
|
|
33
|
+
if (!overrides) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (isNotObject(overrides)) {
|
|
37
|
+
throw new error_1.AdapterInputError({
|
|
38
|
+
statusCode: 400,
|
|
39
|
+
message: `'overrides' should be an object.`,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
for (const endpointName in overrides) {
|
|
43
|
+
if (isNotObject(overrides[endpointName])) {
|
|
44
|
+
throw new error_1.AdapterInputError({
|
|
45
|
+
statusCode: 400,
|
|
46
|
+
message: `overrides.${endpointName} should be an object.`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
for (const overrideKey in overrides[endpointName]) {
|
|
50
|
+
if (typeof overrides[endpointName][overrideKey] !== 'string') {
|
|
51
|
+
throw new error_1.AdapterInputError({
|
|
52
|
+
statusCode: 400,
|
|
53
|
+
message: `overrides.${endpointName}.${overrideKey} should be string.`,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
29
59
|
initializeInputs(input) {
|
|
30
60
|
const normalized = {};
|
|
31
61
|
for (const paramName in this.inputConfig) {
|
|
@@ -94,7 +124,7 @@ class InputValidator {
|
|
|
94
124
|
}
|
|
95
125
|
if (type === 'object' &&
|
|
96
126
|
normalized[key] &&
|
|
97
|
-
(
|
|
127
|
+
(isNotObject(normalized[key]) ||
|
|
98
128
|
Object.keys(normalized[key]).length === 0)) {
|
|
99
129
|
this.throwInvalid(`${key} parameter must be an object with at least one property`);
|
|
100
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-validator.js","sourceRoot":"","sources":["../../../src/validation/input-validator.ts"],"names":[],"mappings":";;;AACA,mCAA2C;AAC3C,kCAAiC;
|
|
1
|
+
{"version":3,"file":"input-validator.js","sourceRoot":"","sources":["../../../src/validation/input-validator.ts"],"names":[],"mappings":"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"}
|
package/validation/utils.d.ts
CHANGED
|
@@ -10,5 +10,6 @@ export declare const validator: {
|
|
|
10
10
|
port: () => Validator<string | number>;
|
|
11
11
|
url: () => Validator<string>;
|
|
12
12
|
host: () => Validator<string>;
|
|
13
|
+
object: () => (value: Record<string, unknown>) => "Value is not valid object." | undefined;
|
|
13
14
|
compose: (f: Validator<string | number>[]) => Validator<number | string>;
|
|
14
15
|
};
|
package/validation/utils.js
CHANGED
|
@@ -66,6 +66,15 @@ const host = () => {
|
|
|
66
66
|
return;
|
|
67
67
|
};
|
|
68
68
|
};
|
|
69
|
+
const object = () => {
|
|
70
|
+
return (value) => {
|
|
71
|
+
const isObject = typeof value === 'object' && value !== null;
|
|
72
|
+
if (!isObject) {
|
|
73
|
+
return `Value is not valid object.`;
|
|
74
|
+
}
|
|
75
|
+
return;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
69
78
|
const positiveInteger = () => compose([_integer(), positive()]);
|
|
70
79
|
const integer = (params) => {
|
|
71
80
|
const validators = [_integer()];
|
|
@@ -84,6 +93,7 @@ exports.validator = {
|
|
|
84
93
|
port,
|
|
85
94
|
url,
|
|
86
95
|
host,
|
|
96
|
+
object,
|
|
87
97
|
compose,
|
|
88
98
|
};
|
|
89
99
|
//# sourceMappingURL=utils.js.map
|
package/validation/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/validation/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/validation/utils.ts"],"names":[],"mappings":"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"}
|