@opra/core 0.23.1 → 0.24.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.
Files changed (30) hide show
  1. package/cjs/adapter/{operation-context.js → endpoint-context.js} +5 -5
  2. package/cjs/adapter/http/http-adapter-base.js +2 -4
  3. package/cjs/adapter/http/request-handlers/entity-request-handler.js +82 -68
  4. package/cjs/adapter/http/request-handlers/request-handler-base.js +5 -5
  5. package/cjs/adapter/http/request-handlers/storage-request-handler.js +16 -17
  6. package/cjs/adapter/platform-adapter.host.js +1 -1
  7. package/cjs/augmentation/resource.augmentation.js +6 -6
  8. package/cjs/index.js +1 -1
  9. package/esm/adapter/{operation-context.js → endpoint-context.js} +4 -4
  10. package/esm/adapter/http/http-adapter-base.js +2 -4
  11. package/esm/adapter/http/request-handlers/entity-request-handler.js +82 -68
  12. package/esm/adapter/http/request-handlers/request-handler-base.js +5 -5
  13. package/esm/adapter/http/request-handlers/storage-request-handler.js +16 -17
  14. package/esm/adapter/platform-adapter.host.js +1 -1
  15. package/esm/augmentation/resource.augmentation.js +7 -7
  16. package/esm/index.js +1 -1
  17. package/i18n/en/error.json +3 -2
  18. package/package.json +2 -2
  19. package/types/adapter/{operation-context.d.ts → endpoint-context.d.ts} +3 -3
  20. package/types/adapter/http/request-handlers/entity-request-handler.d.ts +4 -4
  21. package/types/adapter/http/request-handlers/request-handler-base.d.ts +1 -1
  22. package/types/adapter/http/request-handlers/storage-request-handler.d.ts +3 -3
  23. package/types/adapter/platform-adapter.d.ts +2 -2
  24. package/types/adapter/request.d.ts +1 -1
  25. package/types/adapter/response.d.ts +1 -1
  26. package/types/augmentation/collection.augmentation.d.ts +21 -16
  27. package/types/augmentation/resource.augmentation.d.ts +6 -1
  28. package/types/augmentation/singleton.augmentation.d.ts +14 -10
  29. package/types/augmentation/storage.augmentation.d.ts +9 -5
  30. package/types/index.d.ts +1 -1
@@ -1,5 +1,5 @@
1
+ import { EndpointContext } from '../../endpoint-context.js';
1
2
  import type { ExecutionContext } from '../../execution-context';
2
- import { OperationContext } from '../../operation-context.js';
3
3
  import { Request } from '../../request.js';
4
4
  import type { HttpAdapterBase } from '../http-adapter-base.js';
5
5
  import { HttpServerRequest } from '../http-server-request.js';
@@ -18,6 +18,6 @@ export declare class StorageRequestHandler extends RequestHandlerBase {
18
18
  constructor(adapter: HttpAdapterBase, options?: StorageRequestHandler.Options);
19
19
  processRequest(executionContext: ExecutionContext): Promise<void>;
20
20
  parseRequest(executionContext: ExecutionContext, incoming: HttpServerRequest): Promise<Request | undefined>;
21
- executeOperation(context: OperationContext): Promise<void>;
22
- sendResponse(context: OperationContext): Promise<void>;
21
+ callEndpoint(context: EndpointContext): Promise<void>;
22
+ sendResponse(context: EndpointContext): Promise<void>;
23
23
  }
@@ -1,7 +1,7 @@
1
1
  import { FallbackLng, I18n, LanguageResource } from '@opra/common';
2
+ import { EndpointContext } from './endpoint-context.js';
2
3
  import { ILogger } from './interfaces/logger.interface.js';
3
4
  import { RequestHandler } from './interfaces/request-handler.interface.js';
4
- import { OperationContext } from './operation-context.js';
5
5
  export type Protocol = 'http' | 'ws' | 'rpc';
6
6
  export interface PlatformAdapter extends RequestHandler {
7
7
  readonly protocol: Protocol;
@@ -20,7 +20,7 @@ export declare namespace PlatformAdapter {
20
20
  i18n?: I18n | I18nOptions | (() => Promise<I18n>);
21
21
  logger?: ILogger;
22
22
  on?: {
23
- request?: (ctx: OperationContext) => void | Promise<void>;
23
+ request?: (ctx: EndpointContext) => void | Promise<void>;
24
24
  };
25
25
  }
26
26
  interface I18nOptions {
@@ -2,7 +2,7 @@ import { Resource } from '@opra/common';
2
2
  import { HttpServerRequest } from './http/http-server-request.js';
3
3
  export interface Request {
4
4
  resource: Resource;
5
- operation: string;
5
+ endpoint: string;
6
6
  contentId?: string;
7
7
  params?: Record<string, any>;
8
8
  switchToHttp(): HttpServerRequest;
@@ -13,7 +13,7 @@ export interface Response {
13
13
  */
14
14
  continueOnError?: boolean;
15
15
  /**
16
- * Total count of matched entities. (Used in "search" operation with "count" option
16
+ * Total count of matched entities. (Used in "search" endpoint with "count" option
17
17
  */
18
18
  count?: number;
19
19
  switchToHttp(): HttpServerResponse;
@@ -1,11 +1,16 @@
1
1
  import type { PartialOutput } from '@opra/common';
2
- import type { OperationContext } from '../adapter/operation-context.js';
2
+ import type { EndpointContext } from '../adapter/endpoint-context.js';
3
3
  import type { Request as _Request } from '../adapter/request.js';
4
4
  declare module "@opra/common" {
5
5
  namespace Collection {
6
+ namespace Action {
7
+ interface Context extends Resource.Context {
8
+ key?: any;
9
+ }
10
+ }
6
11
  namespace Create {
7
12
  interface Request extends _Request {
8
- operation: 'create';
13
+ endpoint: 'create';
9
14
  data: any;
10
15
  params: {
11
16
  pick?: string[];
@@ -13,33 +18,33 @@ declare module "@opra/common" {
13
18
  include?: string[];
14
19
  };
15
20
  }
16
- interface Context extends OperationContext {
21
+ interface Context extends EndpointContext {
17
22
  request: Request;
18
23
  }
19
24
  }
20
25
  namespace Delete {
21
26
  interface Request extends _Request {
22
- operation: 'delete';
27
+ endpoint: 'delete';
23
28
  key: any;
24
29
  }
25
- interface Context extends OperationContext {
30
+ interface Context extends EndpointContext {
26
31
  request: Request;
27
32
  }
28
33
  }
29
34
  namespace DeleteMany {
30
35
  interface Request extends _Request {
31
- operation: 'deleteMany';
36
+ endpoint: 'deleteMany';
32
37
  params: {
33
38
  filter?: any;
34
39
  };
35
40
  }
36
- interface Context extends OperationContext {
41
+ interface Context extends EndpointContext {
37
42
  request: Request;
38
43
  }
39
44
  }
40
45
  namespace FindMany {
41
46
  interface Request extends _Request {
42
- operation: 'findMany';
47
+ endpoint: 'findMany';
43
48
  params: {
44
49
  filter?: any;
45
50
  pick?: string[];
@@ -52,13 +57,13 @@ declare module "@opra/common" {
52
57
  count?: boolean;
53
58
  };
54
59
  }
55
- interface Context extends OperationContext {
60
+ interface Context extends EndpointContext {
56
61
  request: Request;
57
62
  }
58
63
  }
59
64
  namespace Get {
60
65
  interface Request extends _Request {
61
- operation: 'get';
66
+ endpoint: 'get';
62
67
  key: any;
63
68
  params: {
64
69
  pick?: string[];
@@ -66,13 +71,13 @@ declare module "@opra/common" {
66
71
  include?: string[];
67
72
  };
68
73
  }
69
- interface Context extends OperationContext {
74
+ interface Context extends EndpointContext {
70
75
  request: Request;
71
76
  }
72
77
  }
73
78
  namespace Update {
74
79
  interface Request extends _Request {
75
- operation: 'update';
80
+ endpoint: 'update';
76
81
  key: any;
77
82
  data: any;
78
83
  params: {
@@ -81,24 +86,24 @@ declare module "@opra/common" {
81
86
  include?: string[];
82
87
  };
83
88
  }
84
- interface Context extends OperationContext {
89
+ interface Context extends EndpointContext {
85
90
  request: Request;
86
91
  }
87
92
  }
88
93
  namespace UpdateMany {
89
94
  interface Request extends _Request {
90
- operation: 'updateMany';
95
+ endpoint: 'updateMany';
91
96
  data: any;
92
97
  params: {
93
98
  filter?: any;
94
99
  };
95
100
  }
96
- interface Context extends OperationContext {
101
+ interface Context extends EndpointContext {
97
102
  request: Request;
98
103
  }
99
104
  }
100
105
  }
101
- interface CollectionResource<T> {
106
+ interface ICollection<T> {
102
107
  create?(context: Collection.Create.Context): Promise<PartialOutput<T>>;
103
108
  delete?(context: Collection.Delete.Context): Promise<number> | undefined;
104
109
  deleteMany?(context: Collection.DeleteMany.Context): Promise<number> | undefined;
@@ -1,3 +1,4 @@
1
+ import { EndpointContext } from '../adapter/endpoint-context.js';
1
2
  declare module "@opra/common" {
2
3
  interface CollectionConstructor {
3
4
  OnInit(): any;
@@ -7,6 +8,11 @@ declare module "@opra/common" {
7
8
  OnInit(): any;
8
9
  OnShutdown(): any;
9
10
  }
11
+ namespace Resource {
12
+ interface Context extends EndpointContext {
13
+ params: Record<string, any>;
14
+ }
15
+ }
10
16
  interface Resource {
11
17
  onInit?: (resource: Resource) => void | Promise<void>;
12
18
  onShutdown?: (resource: Resource) => void | Promise<void>;
@@ -30,4 +36,3 @@ declare module "@opra/common" {
30
36
  }
31
37
  }
32
38
  }
33
- export {};
@@ -1,11 +1,15 @@
1
1
  import type { PartialOutput } from '@opra/common';
2
- import type { OperationContext } from '../adapter/operation-context.js';
2
+ import type { EndpointContext } from '../adapter/endpoint-context.js';
3
3
  import type { Request as _Request } from '../adapter/request.js';
4
4
  declare module "@opra/common" {
5
5
  namespace Singleton {
6
+ namespace Action {
7
+ interface Context extends Resource.Context {
8
+ }
9
+ }
6
10
  namespace Create {
7
11
  interface Request extends _Request {
8
- operation: 'create';
12
+ endpoint: 'create';
9
13
  data: any;
10
14
  params: {
11
15
  pick?: string[];
@@ -13,34 +17,34 @@ declare module "@opra/common" {
13
17
  include?: string[];
14
18
  };
15
19
  }
16
- interface Context extends OperationContext {
20
+ interface Context extends EndpointContext {
17
21
  request: Request;
18
22
  }
19
23
  }
20
24
  namespace Delete {
21
25
  interface Request extends _Request {
22
- operation: 'delete';
26
+ endpoint: 'delete';
23
27
  }
24
- interface Context extends OperationContext {
28
+ interface Context extends EndpointContext {
25
29
  request: Request;
26
30
  }
27
31
  }
28
32
  namespace Get {
29
33
  interface Request extends _Request {
30
- operation: 'get';
34
+ endpoint: 'get';
31
35
  params: {
32
36
  pick?: string[];
33
37
  omit?: string[];
34
38
  include?: string[];
35
39
  };
36
40
  }
37
- interface Context extends OperationContext {
41
+ interface Context extends EndpointContext {
38
42
  request: Request;
39
43
  }
40
44
  }
41
45
  namespace Update {
42
46
  interface Request extends _Request {
43
- operation: 'update';
47
+ endpoint: 'update';
44
48
  data: any;
45
49
  params: {
46
50
  pick?: string[];
@@ -48,12 +52,12 @@ declare module "@opra/common" {
48
52
  include?: string[];
49
53
  };
50
54
  }
51
- interface Context extends OperationContext {
55
+ interface Context extends EndpointContext {
52
56
  request: Request;
53
57
  }
54
58
  }
55
59
  }
56
- interface SingletonResource<T> {
60
+ interface ISingleton<T> {
57
61
  create?(context: Singleton.Create.Context): Promise<PartialOutput<T>>;
58
62
  delete?(context: Singleton.Delete.Context): Promise<number> | undefined;
59
63
  get?(context: Singleton.Get.Context): Promise<PartialOutput<T> | undefined>;
@@ -1,22 +1,26 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import type { Readable } from 'stream';
4
+ import type { EndpointContext } from '../adapter/endpoint-context';
4
5
  import type { MultipartIterator } from '../adapter/http/helpers/multipart-helper';
5
- import type { OperationContext } from '../adapter/operation-context.js';
6
6
  import type { Request as _Request } from '../adapter/request.js';
7
7
  declare module "@opra/common" {
8
8
  namespace Storage {
9
+ namespace Action {
10
+ interface Context extends Resource.Context {
11
+ }
12
+ }
9
13
  namespace Delete {
10
14
  interface Request extends _Request {
11
15
  }
12
- interface Context extends OperationContext {
16
+ interface Context extends EndpointContext {
13
17
  request: Request;
14
18
  }
15
19
  }
16
20
  namespace Get {
17
21
  interface Request extends _Request {
18
22
  }
19
- interface Context extends OperationContext {
23
+ interface Context extends EndpointContext {
20
24
  request: Request;
21
25
  }
22
26
  }
@@ -24,12 +28,12 @@ declare module "@opra/common" {
24
28
  interface Request extends _Request {
25
29
  parts: MultipartIterator;
26
30
  }
27
- interface Context extends OperationContext {
31
+ interface Context extends EndpointContext {
28
32
  request: Request;
29
33
  }
30
34
  }
31
35
  }
32
- interface StorageResource {
36
+ interface IStorage {
33
37
  delete?(context: Storage.Delete.Context): Promise<number | undefined>;
34
38
  get?(context: Storage.Get.Context): Promise<Buffer | Readable | undefined>;
35
39
  post?(context: Storage.Post.Context): Promise<void>;
package/types/index.d.ts CHANGED
@@ -5,7 +5,7 @@ import './augmentation/singleton.augmentation.js';
5
5
  import './augmentation/storage.augmentation.js';
6
6
  export * from './types.js';
7
7
  export * from './adapter/execution-context.js';
8
- export * from './adapter/operation-context.js';
8
+ export * from './adapter/endpoint-context.js';
9
9
  export * from './adapter/platform-adapter.js';
10
10
  export * from './adapter/request.js';
11
11
  export * from './adapter/response.js';