@opra/core 0.0.8 → 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.
Files changed (69) hide show
  1. package/cjs/exception/api-exception.js +30 -33
  2. package/cjs/exception/errors/bad-request.error.js +6 -3
  3. package/cjs/exception/errors/failed-dependency.error.js +6 -3
  4. package/cjs/exception/errors/forbidden.error.js +6 -3
  5. package/cjs/exception/errors/internal-server.error.js +9 -4
  6. package/cjs/exception/errors/method-not-allowed.error.js +6 -3
  7. package/cjs/exception/errors/not-found.error.js +6 -3
  8. package/cjs/exception/errors/unauthorized.error.js +6 -3
  9. package/cjs/exception/errors/unprocessable-entity.error.js +6 -3
  10. package/cjs/exception/wrap-error.js +1 -1
  11. package/cjs/implementation/adapter/adapter.js +29 -26
  12. package/cjs/implementation/adapter/express-adapter.js +40 -9
  13. package/cjs/implementation/adapter/http-adapter.js +27 -34
  14. package/cjs/implementation/{execution-context.js → query-context.js} +18 -22
  15. package/cjs/implementation/resource/entity-resource-handler.js +16 -12
  16. package/cjs/implementation/resource/resource-handler.js +1 -1
  17. package/cjs/implementation/schema-generator.js +38 -51
  18. package/cjs/index.js +3 -4
  19. package/cjs/interfaces/{http-context.interface.js → execution-context.interface.js} +0 -0
  20. package/cjs/interfaces/{execution-query.interface.js → query.interface.js} +16 -16
  21. package/cjs/utils/internal-data-types.js +54 -17
  22. package/esm/exception/api-exception.d.ts +3 -2
  23. package/esm/exception/api-exception.js +30 -33
  24. package/esm/exception/errors/bad-request.error.d.ts +2 -1
  25. package/esm/exception/errors/bad-request.error.js +6 -3
  26. package/esm/exception/errors/failed-dependency.error.d.ts +2 -1
  27. package/esm/exception/errors/failed-dependency.error.js +6 -3
  28. package/esm/exception/errors/forbidden.error.d.ts +2 -1
  29. package/esm/exception/errors/forbidden.error.js +6 -3
  30. package/esm/exception/errors/internal-server.error.d.ts +2 -1
  31. package/esm/exception/errors/internal-server.error.js +8 -4
  32. package/esm/exception/errors/method-not-allowed.error.d.ts +2 -1
  33. package/esm/exception/errors/method-not-allowed.error.js +6 -3
  34. package/esm/exception/errors/not-found.error.d.ts +2 -1
  35. package/esm/exception/errors/not-found.error.js +6 -3
  36. package/esm/exception/errors/unauthorized.error.d.ts +2 -1
  37. package/esm/exception/errors/unauthorized.error.js +6 -3
  38. package/esm/exception/errors/unprocessable-entity.error.d.ts +2 -1
  39. package/esm/exception/errors/unprocessable-entity.error.js +6 -3
  40. package/esm/exception/wrap-error.js +1 -1
  41. package/esm/implementation/adapter/adapter.d.ts +22 -14
  42. package/esm/implementation/adapter/adapter.js +29 -26
  43. package/esm/implementation/adapter/express-adapter.d.ts +2 -2
  44. package/esm/implementation/adapter/express-adapter.js +40 -9
  45. package/esm/implementation/adapter/http-adapter.d.ts +11 -12
  46. package/esm/implementation/adapter/http-adapter.js +27 -34
  47. package/esm/implementation/query-context.d.ts +32 -0
  48. package/esm/implementation/{execution-context.js → query-context.js} +15 -18
  49. package/esm/implementation/resource/container-resource-handler.d.ts +2 -2
  50. package/esm/implementation/resource/entity-resource-handler.d.ts +3 -3
  51. package/esm/implementation/resource/entity-resource-handler.js +16 -12
  52. package/esm/implementation/resource/resource-handler.d.ts +3 -3
  53. package/esm/implementation/resource/resource-handler.js +1 -1
  54. package/esm/implementation/schema-generator.js +38 -51
  55. package/esm/index.d.ts +3 -4
  56. package/esm/index.js +3 -4
  57. package/esm/interfaces/execution-context.interface.d.ts +39 -0
  58. package/esm/interfaces/{http-context.interface.js → execution-context.interface.js} +0 -0
  59. package/esm/interfaces/{execution-query.interface.d.ts → query.interface.d.ts} +31 -25
  60. package/esm/interfaces/{execution-query.interface.js → query.interface.js} +15 -15
  61. package/esm/services/entity-resource-controller.d.ts +11 -11
  62. package/esm/utils/internal-data-types.d.ts +2 -1
  63. package/esm/utils/internal-data-types.js +53 -16
  64. package/package.json +6 -5
  65. package/cjs/interfaces/user-context.interface.js +0 -2
  66. package/esm/implementation/execution-context.d.ts +0 -42
  67. package/esm/interfaces/http-context.interface.d.ts +0 -23
  68. package/esm/interfaces/user-context.interface.d.ts +0 -3
  69. 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: 'string',
24
- type: 'string',
25
- description: 'A sequence of characters'
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: 'integer',
36
- type: 'number',
37
- base: 'number',
38
- description: 'Integer number'
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 => internalDataTypes.set(sch.name, 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.8",
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.8",
29
- "@opra/optionals": "^0.0.8",
30
- "@opra/schema": "^0.0.8",
31
- "@opra/url": "^0.0.8",
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,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -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,3 +0,0 @@
1
- export interface IUserContext {
2
- onRequestFinish?(failed: boolean): void | Promise<void>;
3
- }
@@ -1 +0,0 @@
1
- export {};