@opra/core 0.14.0 → 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/cjs/adapter/adapter.js +88 -294
- package/cjs/adapter/http/express-adapter.js +27 -0
- package/cjs/adapter/http/http-adapter.js +466 -0
- package/cjs/adapter/http/http-request-context.host.js +28 -0
- package/cjs/adapter/http/http-request.host.js +14 -0
- package/cjs/adapter/http/http-response.host.js +14 -0
- package/cjs/adapter/internal/metadata.resource.js +27 -0
- package/cjs/adapter/request-context.host.js +30 -0
- package/cjs/adapter/request.host.js +19 -0
- package/cjs/adapter/response.host.js +20 -0
- package/cjs/augmentation/resource.augmentation.js +26 -0
- package/cjs/index.js +7 -8
- package/esm/adapter/adapter.d.ts +52 -28
- package/esm/adapter/adapter.js +88 -295
- package/esm/adapter/http/express-adapter.d.ts +11 -0
- package/esm/adapter/http/express-adapter.js +22 -0
- package/esm/adapter/http/http-adapter.d.ts +37 -0
- package/esm/adapter/http/http-adapter.js +462 -0
- package/esm/adapter/http/http-request-context.host.d.ts +16 -0
- package/esm/adapter/http/http-request-context.host.js +24 -0
- package/esm/adapter/http/http-request.host.d.ts +7 -0
- package/esm/adapter/http/http-request.host.js +10 -0
- package/esm/adapter/http/http-response.host.d.ts +7 -0
- package/esm/adapter/http/http-response.host.js +10 -0
- package/esm/{interfaces → adapter/interfaces}/logger.interface.d.ts +1 -0
- package/esm/adapter/interfaces/request-context.interface.d.ts +25 -0
- package/esm/adapter/interfaces/request.interface.d.ts +13 -0
- package/esm/adapter/interfaces/response.interface.d.ts +22 -0
- package/esm/adapter/internal/metadata.resource.d.ts +7 -0
- package/esm/adapter/internal/metadata.resource.js +24 -0
- package/esm/adapter/request-context.host.d.ts +19 -0
- package/esm/adapter/request-context.host.js +26 -0
- package/esm/adapter/request.host.d.ts +26 -0
- package/esm/adapter/request.host.js +15 -0
- package/esm/adapter/response.host.d.ts +20 -0
- package/esm/adapter/response.host.js +16 -0
- package/esm/augmentation/resource.augmentation.d.ts +33 -0
- package/esm/augmentation/resource.augmentation.js +24 -0
- package/esm/index.d.ts +7 -8
- package/esm/index.js +7 -8
- package/i18n/en/error.json +1 -1
- package/package.json +9 -7
- package/cjs/adapter/classes/execution-context.host.js +0 -16
- package/cjs/adapter/classes/express-request-wrapper.host.js +0 -36
- package/cjs/adapter/classes/express-response-wrapper.host.js +0 -55
- package/cjs/adapter/classes/http-execution-context.host.js +0 -28
- package/cjs/adapter/classes/metadata.resource.js +0 -22
- package/cjs/adapter/express-adapter.js +0 -26
- package/cjs/adapter/http-adapter.js +0 -443
- package/cjs/adapter/request-contexts/batch-request-context.js +0 -11
- package/cjs/adapter/request-contexts/request-context.js +0 -25
- package/cjs/adapter/request-contexts/single-request-context.js +0 -14
- package/cjs/interfaces/resource.interface.js +0 -2
- package/cjs/services/data-service.js +0 -9
- package/cjs/services/json-singleton-service.js +0 -96
- package/cjs/utils/create-i18n.js +0 -21
- package/cjs/utils/get-caller-file.util.js +0 -24
- package/esm/adapter/classes/execution-context.host.d.ts +0 -10
- package/esm/adapter/classes/execution-context.host.js +0 -12
- package/esm/adapter/classes/express-request-wrapper.host.d.ts +0 -19
- package/esm/adapter/classes/express-request-wrapper.host.js +0 -32
- package/esm/adapter/classes/express-response-wrapper.host.d.ts +0 -22
- package/esm/adapter/classes/express-response-wrapper.host.js +0 -51
- package/esm/adapter/classes/http-execution-context.host.d.ts +0 -13
- package/esm/adapter/classes/http-execution-context.host.js +0 -24
- package/esm/adapter/classes/metadata.resource.d.ts +0 -8
- package/esm/adapter/classes/metadata.resource.js +0 -19
- package/esm/adapter/express-adapter.d.ts +0 -11
- package/esm/adapter/express-adapter.js +0 -21
- package/esm/adapter/http-adapter.d.ts +0 -37
- package/esm/adapter/http-adapter.js +0 -439
- package/esm/adapter/request-contexts/batch-request-context.d.ts +0 -7
- package/esm/adapter/request-contexts/batch-request-context.js +0 -7
- package/esm/adapter/request-contexts/request-context.d.ts +0 -22
- package/esm/adapter/request-contexts/request-context.js +0 -21
- package/esm/adapter/request-contexts/single-request-context.d.ts +0 -10
- package/esm/adapter/request-contexts/single-request-context.js +0 -10
- package/esm/enums/issue-severity.enum.d.ts +0 -1
- package/esm/interfaces/execution-context.interface.d.ts +0 -47
- package/esm/interfaces/i18n-options.interface.d.ts +0 -28
- package/esm/interfaces/resource.interface.d.ts +0 -23
- package/esm/interfaces/resource.interface.js +0 -1
- package/esm/services/data-service.d.ts +0 -2
- package/esm/services/data-service.js +0 -5
- package/esm/services/json-singleton-service.d.ts +0 -39
- package/esm/services/json-singleton-service.js +0 -91
- package/esm/utils/create-i18n.d.ts +0 -3
- package/esm/utils/create-i18n.js +0 -16
- package/esm/utils/get-caller-file.util.d.ts +0 -1
- package/esm/utils/get-caller-file.util.js +0 -20
- /package/cjs/{interfaces → adapter/interfaces}/logger.interface.js +0 -0
- /package/cjs/{enums/issue-severity.enum.js → adapter/interfaces/request-context.interface.js} +0 -0
- /package/cjs/{interfaces/execution-context.interface.js → adapter/interfaces/request.interface.js} +0 -0
- /package/cjs/{interfaces/i18n-options.interface.js → adapter/interfaces/response.interface.js} +0 -0
- /package/esm/{interfaces → adapter/interfaces}/logger.interface.js +0 -0
- /package/esm/{enums/issue-severity.enum.js → adapter/interfaces/request-context.interface.js} +0 -0
- /package/esm/{interfaces/execution-context.interface.js → adapter/interfaces/request.interface.js} +0 -0
- /package/esm/{interfaces/i18n-options.interface.js → adapter/interfaces/response.interface.js} +0 -0
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { DataType, OpraQuery, OpraSchema } from '@opra/common';
|
|
2
|
-
import { SingleRequestContext } from '../adapter/request-contexts/single-request-context.js';
|
|
3
|
-
import { PartialOutput } from '../types.js';
|
|
4
|
-
export interface JsonSingletonServiceOptions<T> {
|
|
5
|
-
data: T;
|
|
6
|
-
resourceName?: string;
|
|
7
|
-
}
|
|
8
|
-
export declare class JsonSingletonService<T, TOutput = PartialOutput<T>> {
|
|
9
|
-
readonly dataType: DataType;
|
|
10
|
-
protected _data?: T;
|
|
11
|
-
constructor(dataType: DataType, options?: JsonSingletonServiceOptions<T>);
|
|
12
|
-
processRequest(ctx: SingleRequestContext): Promise<any>;
|
|
13
|
-
get(options?: JsonSingletonService.GetOptions): TOutput | undefined;
|
|
14
|
-
protected _prepare(query: OpraQuery): {
|
|
15
|
-
method: OpraSchema.SingletonMethod;
|
|
16
|
-
options: any;
|
|
17
|
-
keyValue?: any;
|
|
18
|
-
values?: any;
|
|
19
|
-
args: any[];
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
export declare namespace JsonSingletonService {
|
|
23
|
-
type CreateOptions = {
|
|
24
|
-
query?: string;
|
|
25
|
-
pick?: string[];
|
|
26
|
-
omit?: string[];
|
|
27
|
-
include?: string[];
|
|
28
|
-
};
|
|
29
|
-
type GetOptions = {
|
|
30
|
-
pick?: string[];
|
|
31
|
-
omit?: string[];
|
|
32
|
-
include?: string[];
|
|
33
|
-
};
|
|
34
|
-
type UpdateOptions = {
|
|
35
|
-
pick?: string[];
|
|
36
|
-
omit?: string[];
|
|
37
|
-
include?: string[];
|
|
38
|
-
};
|
|
39
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import isNil from 'lodash.isnil';
|
|
2
|
-
import omitBy from 'lodash.omitby';
|
|
3
|
-
import { SingletonResourceInfo } from '@opra/common';
|
|
4
|
-
export class JsonSingletonService {
|
|
5
|
-
constructor(dataType, options) {
|
|
6
|
-
this.dataType = dataType;
|
|
7
|
-
this._data = options?.data;
|
|
8
|
-
}
|
|
9
|
-
async processRequest(ctx) {
|
|
10
|
-
const prepared = this._prepare(ctx.query);
|
|
11
|
-
const fn = this[prepared.method];
|
|
12
|
-
if (!fn)
|
|
13
|
-
throw new TypeError(`Unimplemented method (${prepared.method})`);
|
|
14
|
-
// @ts-ignore
|
|
15
|
-
return fn.apply(this, prepared.args);
|
|
16
|
-
}
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
|
-
get(options) {
|
|
19
|
-
return this._data;
|
|
20
|
-
}
|
|
21
|
-
_prepare(query) {
|
|
22
|
-
if (query.resource instanceof SingletonResourceInfo) {
|
|
23
|
-
if (query.dataType !== this.dataType)
|
|
24
|
-
throw new TypeError(`Query data type (${query.dataType.name}) ` +
|
|
25
|
-
`differs from JsonCollectionService data type (${this.dataType.name})`);
|
|
26
|
-
}
|
|
27
|
-
switch (query.method) {
|
|
28
|
-
case 'create': {
|
|
29
|
-
const options = omitBy({
|
|
30
|
-
pick: query.pick,
|
|
31
|
-
omit: query.omit,
|
|
32
|
-
include: query.include
|
|
33
|
-
}, isNil);
|
|
34
|
-
const { data } = query;
|
|
35
|
-
return {
|
|
36
|
-
method: query.method,
|
|
37
|
-
values: data,
|
|
38
|
-
options,
|
|
39
|
-
args: [data, options]
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
case 'get': {
|
|
43
|
-
if (query.kind === 'CollectionGetQuery') {
|
|
44
|
-
const options = omitBy({
|
|
45
|
-
pick: query.pick,
|
|
46
|
-
omit: query.omit,
|
|
47
|
-
include: query.include
|
|
48
|
-
}, isNil);
|
|
49
|
-
const keyValue = query.keyValue;
|
|
50
|
-
return {
|
|
51
|
-
method: query.method,
|
|
52
|
-
keyValue,
|
|
53
|
-
options,
|
|
54
|
-
args: [keyValue, options]
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
if (query.kind === 'FieldGetQuery') {
|
|
58
|
-
// todo
|
|
59
|
-
}
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
case 'update': {
|
|
63
|
-
const options = omitBy({
|
|
64
|
-
pick: query.pick,
|
|
65
|
-
omit: query.omit,
|
|
66
|
-
include: query.include
|
|
67
|
-
}, isNil);
|
|
68
|
-
const { data } = query;
|
|
69
|
-
const keyValue = query.keyValue;
|
|
70
|
-
return {
|
|
71
|
-
method: query.method,
|
|
72
|
-
keyValue: query.keyValue,
|
|
73
|
-
values: data,
|
|
74
|
-
options,
|
|
75
|
-
args: [keyValue, data, options]
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
case 'delete': {
|
|
79
|
-
const options = {};
|
|
80
|
-
const keyValue = query.keyValue;
|
|
81
|
-
return {
|
|
82
|
-
method: query.method,
|
|
83
|
-
keyValue,
|
|
84
|
-
options,
|
|
85
|
-
args: [keyValue, options]
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
throw new Error(`Unimplemented query type "${query.method}"`);
|
|
90
|
-
}
|
|
91
|
-
}
|
package/esm/utils/create-i18n.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import { I18n } from '@opra/common';
|
|
3
|
-
import { getCallerFile } from './get-caller-file.util.js';
|
|
4
|
-
export async function createI18n(options) {
|
|
5
|
-
const opts = {
|
|
6
|
-
...options,
|
|
7
|
-
};
|
|
8
|
-
delete opts.resourceDirs;
|
|
9
|
-
const instance = I18n.createInstance(opts);
|
|
10
|
-
await instance.init();
|
|
11
|
-
await instance.loadResourceDir(path.resolve(getCallerFile(), '../../../i18n'));
|
|
12
|
-
if (options?.resourceDirs)
|
|
13
|
-
for (const dir of options.resourceDirs)
|
|
14
|
-
await instance.loadResourceDir(dir);
|
|
15
|
-
return instance;
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getCallerFile(position?: number): string;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const PATH_PATTERN = /^(?:file:\/\/)?(.+)$/;
|
|
2
|
-
export function getCallerFile(position = 1) {
|
|
3
|
-
if (position >= Error.stackTraceLimit) {
|
|
4
|
-
throw new TypeError('getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `' +
|
|
5
|
-
position + '` and Error.stackTraceLimit was: `' + Error.stackTraceLimit + '`');
|
|
6
|
-
}
|
|
7
|
-
const oldPrepareStackTrace = Error.prepareStackTrace;
|
|
8
|
-
Error.prepareStackTrace = (_, stack) => stack;
|
|
9
|
-
const stack = new Error().stack;
|
|
10
|
-
Error.prepareStackTrace = oldPrepareStackTrace;
|
|
11
|
-
if (stack !== null && typeof stack === 'object') {
|
|
12
|
-
// stack[0] holds this file
|
|
13
|
-
// stack[1] holds where this function was called
|
|
14
|
-
const s = stack[position] ?
|
|
15
|
-
stack[position].getFileName() : undefined;
|
|
16
|
-
const m = s ? PATH_PATTERN.exec(s) : undefined;
|
|
17
|
-
return m ? m[1] : '';
|
|
18
|
-
}
|
|
19
|
-
return '';
|
|
20
|
-
}
|
|
File without changes
|
/package/cjs/{enums/issue-severity.enum.js → adapter/interfaces/request-context.interface.js}
RENAMED
|
File without changes
|
/package/cjs/{interfaces/execution-context.interface.js → adapter/interfaces/request.interface.js}
RENAMED
|
File without changes
|
/package/cjs/{interfaces/i18n-options.interface.js → adapter/interfaces/response.interface.js}
RENAMED
|
File without changes
|
|
File without changes
|
/package/esm/{enums/issue-severity.enum.js → adapter/interfaces/request-context.interface.js}
RENAMED
|
File without changes
|
/package/esm/{interfaces/execution-context.interface.js → adapter/interfaces/request.interface.js}
RENAMED
|
File without changes
|
/package/esm/{interfaces/i18n-options.interface.js → adapter/interfaces/response.interface.js}
RENAMED
|
File without changes
|