@opra/core 0.0.7 → 0.0.9
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/cjs/exception/api-exception.js +30 -33
- package/cjs/exception/errors/bad-request.error.js +6 -3
- package/cjs/exception/errors/failed-dependency.error.js +6 -3
- package/cjs/exception/errors/forbidden.error.js +6 -3
- package/cjs/exception/errors/internal-server.error.js +9 -4
- package/cjs/exception/errors/method-not-allowed.error.js +6 -3
- package/cjs/exception/errors/not-found.error.js +6 -3
- package/cjs/exception/errors/unauthorized.error.js +6 -3
- package/cjs/exception/errors/unprocessable-entity.error.js +6 -3
- package/cjs/exception/wrap-error.js +1 -1
- package/cjs/implementation/adapter/adapter.js +29 -26
- package/cjs/implementation/adapter/express-adapter.js +40 -9
- package/cjs/implementation/adapter/http-adapter.js +27 -34
- package/cjs/implementation/{execution-context.js → query-context.js} +18 -22
- package/cjs/implementation/resource/entity-resource-handler.js +16 -12
- package/cjs/implementation/resource/resource-handler.js +1 -1
- package/cjs/implementation/schema-generator.js +38 -51
- package/cjs/index.js +3 -4
- package/cjs/interfaces/{http-context.interface.js → execution-context.interface.js} +0 -0
- package/cjs/interfaces/{execution-query.interface.js → query.interface.js} +16 -16
- package/cjs/utils/internal-data-types.js +54 -17
- package/esm/exception/api-exception.d.ts +3 -2
- package/esm/exception/api-exception.js +30 -33
- package/esm/exception/errors/bad-request.error.d.ts +2 -1
- package/esm/exception/errors/bad-request.error.js +6 -3
- package/esm/exception/errors/failed-dependency.error.d.ts +2 -1
- package/esm/exception/errors/failed-dependency.error.js +6 -3
- package/esm/exception/errors/forbidden.error.d.ts +2 -1
- package/esm/exception/errors/forbidden.error.js +6 -3
- package/esm/exception/errors/internal-server.error.d.ts +2 -1
- package/esm/exception/errors/internal-server.error.js +8 -4
- package/esm/exception/errors/method-not-allowed.error.d.ts +2 -1
- package/esm/exception/errors/method-not-allowed.error.js +6 -3
- package/esm/exception/errors/not-found.error.d.ts +2 -1
- package/esm/exception/errors/not-found.error.js +6 -3
- package/esm/exception/errors/unauthorized.error.d.ts +2 -1
- package/esm/exception/errors/unauthorized.error.js +6 -3
- package/esm/exception/errors/unprocessable-entity.error.d.ts +2 -1
- package/esm/exception/errors/unprocessable-entity.error.js +6 -3
- package/esm/exception/wrap-error.js +1 -1
- package/esm/implementation/adapter/adapter.d.ts +22 -14
- package/esm/implementation/adapter/adapter.js +29 -26
- package/esm/implementation/adapter/express-adapter.d.ts +2 -2
- package/esm/implementation/adapter/express-adapter.js +40 -9
- package/esm/implementation/adapter/http-adapter.d.ts +11 -12
- package/esm/implementation/adapter/http-adapter.js +27 -34
- package/esm/implementation/query-context.d.ts +32 -0
- package/esm/implementation/{execution-context.js → query-context.js} +15 -18
- package/esm/implementation/resource/container-resource-handler.d.ts +2 -2
- package/esm/implementation/resource/entity-resource-handler.d.ts +3 -3
- package/esm/implementation/resource/entity-resource-handler.js +16 -12
- package/esm/implementation/resource/resource-handler.d.ts +3 -3
- package/esm/implementation/resource/resource-handler.js +1 -1
- package/esm/implementation/schema-generator.js +38 -51
- package/esm/index.d.ts +3 -4
- package/esm/index.js +3 -4
- package/esm/interfaces/execution-context.interface.d.ts +39 -0
- package/esm/interfaces/{http-context.interface.js → execution-context.interface.js} +0 -0
- package/esm/interfaces/{execution-query.interface.d.ts → query.interface.d.ts} +31 -25
- package/esm/interfaces/{execution-query.interface.js → query.interface.js} +15 -15
- package/esm/services/entity-resource-controller.d.ts +11 -11
- package/esm/utils/internal-data-types.d.ts +2 -1
- package/esm/utils/internal-data-types.js +53 -16
- package/package.json +6 -5
- package/cjs/interfaces/user-context.interface.js +0 -2
- package/esm/implementation/execution-context.d.ts +0 -42
- package/esm/interfaces/http-context.interface.d.ts +0 -23
- package/esm/interfaces/user-context.interface.d.ts +0 -3
- package/esm/interfaces/user-context.interface.js +0 -1
|
@@ -1,41 +1,78 @@
|
|
|
1
|
+
export const primitiveDataTypeNames = ['boolean', 'number', 'string', 'null'];
|
|
1
2
|
export const builtinClassMap = new Map();
|
|
2
|
-
builtinClassMap.set(Boolean, 'boolean');
|
|
3
|
-
builtinClassMap.set(Number, 'number');
|
|
4
|
-
builtinClassMap.set(String, 'string');
|
|
5
|
-
builtinClassMap.set(Buffer, 'buffer');
|
|
6
|
-
export const primitiveDataTypeNames = ['boolean', 'number', 'integer', 'string'];
|
|
7
3
|
export const internalDataTypes = new Map();
|
|
8
4
|
const internalDataTypeArray = [
|
|
9
5
|
{
|
|
10
6
|
kind: 'SimpleType',
|
|
11
7
|
name: 'boolean',
|
|
12
8
|
type: 'boolean',
|
|
13
|
-
description: 'Simple true/false value'
|
|
9
|
+
description: 'Simple true/false value',
|
|
10
|
+
ctor: Boolean
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
kind: 'SimpleType',
|
|
14
|
+
name: 'string',
|
|
15
|
+
type: 'string',
|
|
16
|
+
description: 'A sequence of characters',
|
|
17
|
+
ctor: String
|
|
14
18
|
},
|
|
15
19
|
{
|
|
16
20
|
kind: 'SimpleType',
|
|
17
21
|
name: 'number',
|
|
18
22
|
type: 'number',
|
|
19
|
-
description: 'Both Integer as well as Floating-Point numbers'
|
|
23
|
+
description: 'Both Integer as well as Floating-Point numbers',
|
|
24
|
+
ctor: Number
|
|
20
25
|
},
|
|
21
26
|
{
|
|
22
27
|
kind: 'SimpleType',
|
|
23
|
-
name: '
|
|
24
|
-
type: '
|
|
25
|
-
|
|
28
|
+
name: 'integer',
|
|
29
|
+
type: 'number',
|
|
30
|
+
base: 'number',
|
|
31
|
+
description: 'Integer number',
|
|
32
|
+
ctor: Number
|
|
26
33
|
},
|
|
27
34
|
{
|
|
28
35
|
kind: 'ComplexType',
|
|
29
36
|
name: 'object',
|
|
30
37
|
description: 'Object type with additional properties',
|
|
31
|
-
additionalProperties: true
|
|
38
|
+
additionalProperties: true,
|
|
39
|
+
ctor: Object
|
|
32
40
|
},
|
|
33
41
|
{
|
|
34
42
|
kind: 'SimpleType',
|
|
35
|
-
name: '
|
|
36
|
-
type: '
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
name: 'date',
|
|
44
|
+
type: 'string',
|
|
45
|
+
description: 'Date',
|
|
46
|
+
format: 'date',
|
|
47
|
+
ctor: Date
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
kind: 'SimpleType',
|
|
51
|
+
name: 'date-time',
|
|
52
|
+
type: 'string',
|
|
53
|
+
description: 'Date time value',
|
|
54
|
+
format: 'date-time',
|
|
55
|
+
ctor: Date
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
kind: 'SimpleType',
|
|
59
|
+
name: 'time',
|
|
60
|
+
type: 'string',
|
|
61
|
+
description: 'Time value',
|
|
62
|
+
format: 'time',
|
|
63
|
+
ctor: String
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
kind: 'SimpleType',
|
|
67
|
+
name: 'buffer',
|
|
68
|
+
type: 'string',
|
|
69
|
+
description: 'Buffer value',
|
|
70
|
+
format: 'base64',
|
|
71
|
+
ctor: Buffer
|
|
39
72
|
}
|
|
40
73
|
];
|
|
41
|
-
internalDataTypeArray.forEach(sch =>
|
|
74
|
+
internalDataTypeArray.forEach(sch => {
|
|
75
|
+
internalDataTypes.set(sch.name, sch);
|
|
76
|
+
if (sch.ctor && !builtinClassMap.has(sch.ctor))
|
|
77
|
+
builtinClassMap.set(sch.ctor, sch);
|
|
78
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "Opra schema package",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,14 +25,15 @@
|
|
|
25
25
|
"clean:cover": "rimraf ../../coverage/core"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@opra/i18n": "^0.0.
|
|
29
|
-
"@opra/optionals": "^0.0.
|
|
30
|
-
"@opra/schema": "^0.0.
|
|
31
|
-
"@opra/url": "^0.0.
|
|
28
|
+
"@opra/i18n": "^0.0.9",
|
|
29
|
+
"@opra/optionals": "^0.0.9",
|
|
30
|
+
"@opra/schema": "^0.0.9",
|
|
31
|
+
"@opra/url": "^0.0.9",
|
|
32
32
|
"lodash": "^4.17.21",
|
|
33
33
|
"putil-isplainobject": "^1.1.4",
|
|
34
34
|
"putil-varhelpers": "^1.6.4",
|
|
35
35
|
"rule-judgment": "^1.1.5",
|
|
36
|
+
"strict-typed-events": "^2.2.0",
|
|
36
37
|
"ts-gems": "^2.2.0"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { SearchParams } from '@opra/url';
|
|
2
|
-
import { HttpStatus } from '../enums/index.js';
|
|
3
|
-
import { ApiException } from '../exception/index.js';
|
|
4
|
-
import { ExecutionQuery } from '../interfaces/execution-query.interface.js';
|
|
5
|
-
import { IHttpAdapterContext } from '../interfaces/http-context.interface.js';
|
|
6
|
-
import { HeadersObject } from '../utils/headers.js';
|
|
7
|
-
import { OpraService } from './opra-service.js';
|
|
8
|
-
export declare type ContextType = 'http' | 'ws' | 'rpc';
|
|
9
|
-
export declare type ExecutionContextArgs = Pick<ExecutionContext, 'type' | 'service' | 'request' | 'response' | 'adapterContext' | 'userContext' | 'continueOnError'>;
|
|
10
|
-
export declare class ExecutionContext {
|
|
11
|
-
readonly type: ContextType;
|
|
12
|
-
readonly service: OpraService;
|
|
13
|
-
readonly request: ExecutionRequest;
|
|
14
|
-
readonly response: ExecutionResponse;
|
|
15
|
-
readonly adapterContext: any;
|
|
16
|
-
userContext?: any;
|
|
17
|
-
continueOnError?: boolean;
|
|
18
|
-
constructor(args: ExecutionContextArgs);
|
|
19
|
-
switchToHttp(): IHttpAdapterContext;
|
|
20
|
-
}
|
|
21
|
-
export declare type ExecutionRequestArgs = Pick<ExecutionRequest, 'query' | 'parentValue'> & {
|
|
22
|
-
params?: SearchParams;
|
|
23
|
-
headers?: HeadersObject;
|
|
24
|
-
resultPath?: string;
|
|
25
|
-
};
|
|
26
|
-
export declare class ExecutionRequest {
|
|
27
|
-
readonly query: ExecutionQuery;
|
|
28
|
-
readonly params: SearchParams;
|
|
29
|
-
readonly headers: HeadersObject;
|
|
30
|
-
readonly parentValue?: any;
|
|
31
|
-
readonly resultPath: string;
|
|
32
|
-
constructor(args: ExecutionRequestArgs);
|
|
33
|
-
}
|
|
34
|
-
export declare type ExecutionResponseArgs = Pick<ExecutionResponse, 'status' | 'value' | 'total'>;
|
|
35
|
-
export declare class ExecutionResponse {
|
|
36
|
-
headers: HeadersObject;
|
|
37
|
-
errors: ApiException[];
|
|
38
|
-
status?: HttpStatus;
|
|
39
|
-
value?: any;
|
|
40
|
-
total?: number;
|
|
41
|
-
constructor(args?: ExecutionResponseArgs);
|
|
42
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface IHttpAdapterContext {
|
|
2
|
-
getRequest(): IHttpRequest;
|
|
3
|
-
getResponse(): IHttpResponse;
|
|
4
|
-
}
|
|
5
|
-
export interface IHttpRequest {
|
|
6
|
-
getInstance(): any;
|
|
7
|
-
getUrl(): string;
|
|
8
|
-
getMethod(): string;
|
|
9
|
-
getHeaderNames(): string[];
|
|
10
|
-
getHeader(name: string): string | undefined;
|
|
11
|
-
getHeaders(): Record<string, any>;
|
|
12
|
-
getBody(): any;
|
|
13
|
-
}
|
|
14
|
-
export interface IHttpResponse {
|
|
15
|
-
getInstance(): any;
|
|
16
|
-
getStatus(): number | undefined;
|
|
17
|
-
setStatus(value: number): this;
|
|
18
|
-
getHeaderNames(name: string): string[];
|
|
19
|
-
getHeader(name: string): string | undefined;
|
|
20
|
-
setHeader(name: string, value: string): this;
|
|
21
|
-
send(body: any): this;
|
|
22
|
-
end(): this;
|
|
23
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|