@bleedingdev/modern-js-bff-effect 3.9.0-ultramodern.2 → 3.9.0-ultramodern.21
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/README.md +20 -4
- package/dist/cjs/assembly.js +50 -0
- package/dist/cjs/{effect-client/guards.js → data-platform/batch/options.js} +13 -9
- package/dist/cjs/data-platform/batch/queue.js +48 -83
- package/dist/cjs/data-platform/trace.js +2 -2
- package/dist/cjs/effect/context.js +28 -4
- package/dist/cjs/effect/edge-dispatcher.js +12 -12
- package/dist/cjs/effect/edge.js +36 -3
- package/dist/cjs/effect/endpoint-contracts.js +3 -4
- package/dist/cjs/effect/entry-shape.js +40 -12
- package/dist/cjs/effect/generated-entry.js +57 -0
- package/dist/cjs/effect/handler/batch-handler.js +7 -7
- package/dist/cjs/effect/handler/batch.js +8 -10
- package/dist/cjs/effect/handler/definition.js +1 -21
- package/dist/cjs/effect/index.js +8 -8
- package/dist/cjs/effect/module.js +8 -4
- package/dist/cjs/effect/operation-context.js +10 -14
- package/dist/cjs/effect/rpcSerialization.js +0 -2
- package/dist/cjs/effect-client/cross-project.js +89 -0
- package/dist/cjs/effect-client/index.js +5 -3
- package/dist/cjs/microvertical-api.js +120 -0
- package/dist/esm/assembly.mjs +12 -0
- package/dist/esm/data-platform/batch/options.mjs +10 -0
- package/dist/esm/data-platform/batch/queue.mjs +48 -83
- package/dist/esm/data-platform/trace.mjs +1 -1
- package/dist/esm/effect/context.mjs +21 -6
- package/dist/esm/effect/edge-dispatcher.mjs +6 -6
- package/dist/esm/effect/edge.mjs +3 -0
- package/dist/esm/effect/endpoint-contracts.mjs +2 -3
- package/dist/esm/effect/entry-shape-registry.mjs +2 -2
- package/dist/esm/effect/entry-shape.mjs +29 -6
- package/dist/esm/effect/generated-entry.mjs +19 -0
- package/dist/esm/effect/handler/batch-handler.mjs +8 -8
- package/dist/esm/effect/handler/batch.mjs +9 -8
- package/dist/esm/effect/handler/definition.mjs +1 -21
- package/dist/esm/effect/index.mjs +1 -1
- package/dist/esm/effect/module.mjs +8 -4
- package/dist/esm/effect/operation-context.mjs +3 -4
- package/dist/esm/effect/rpcSerialization.mjs +0 -2
- package/dist/esm/effect-client/cross-project.mjs +51 -0
- package/dist/esm/effect-client/index.mjs +4 -2
- package/dist/esm/microvertical-api.mjs +67 -0
- package/dist/esm-node/assembly.mjs +13 -0
- package/dist/esm-node/data-platform/batch/options.mjs +11 -0
- package/dist/esm-node/data-platform/batch/queue.mjs +48 -83
- package/dist/esm-node/data-platform/trace.mjs +1 -1
- package/dist/esm-node/effect/context.mjs +21 -6
- package/dist/esm-node/effect/edge-dispatcher.mjs +6 -6
- package/dist/esm-node/effect/edge.mjs +3 -0
- package/dist/esm-node/effect/endpoint-contracts.mjs +2 -3
- package/dist/esm-node/effect/entry-shape.mjs +29 -6
- package/dist/esm-node/effect/generated-entry.mjs +20 -0
- package/dist/esm-node/effect/handler/batch-handler.mjs +8 -8
- package/dist/esm-node/effect/handler/batch.mjs +9 -8
- package/dist/esm-node/effect/handler/definition.mjs +1 -21
- package/dist/esm-node/effect/index.mjs +1 -1
- package/dist/esm-node/effect/module.mjs +8 -4
- package/dist/esm-node/effect/operation-context.mjs +3 -4
- package/dist/esm-node/effect/rpcSerialization.mjs +0 -2
- package/dist/esm-node/effect-client/cross-project.mjs +52 -0
- package/dist/esm-node/effect-client/index.mjs +4 -2
- package/dist/esm-node/microvertical-api.mjs +68 -0
- package/dist/types/assembly.d.ts +10 -0
- package/dist/types/data-platform/batch/options.d.ts +7 -0
- package/dist/types/data-platform/batch/queue.d.ts +0 -1
- package/dist/types/effect/context.d.ts +15 -2
- package/dist/types/effect/edge-dispatcher.d.ts +3 -3
- package/dist/types/effect/edge.d.ts +3 -0
- package/dist/types/effect/endpoint-contracts.d.ts +2 -20
- package/dist/types/effect/entry-shape.d.ts +16 -2
- package/dist/types/effect/generated-entry.d.ts +7 -0
- package/dist/types/effect/handler/batch.d.ts +7 -2
- package/dist/types/effect/handler/types.d.ts +2 -17
- package/dist/types/effect/handler.d.ts +1 -1
- package/dist/types/effect/module.d.ts +2 -1
- package/dist/types/effect/operation-context.d.ts +1 -2
- package/dist/types/effect-client/cross-project.d.ts +10 -0
- package/dist/types/effect-client/index.d.ts +7 -4
- package/dist/types/microvertical-api.d.ts +65 -0
- package/package.json +47 -42
- package/src/assembly.ts +43 -0
- package/src/data-platform/batch/options.ts +20 -0
- package/src/data-platform/batch/queue.ts +63 -92
- package/src/data-platform/trace.ts +1 -1
- package/src/effect/context.ts +64 -12
- package/src/effect/edge-dispatcher.ts +14 -11
- package/src/effect/edge.ts +6 -0
- package/src/effect/endpoint-contracts.ts +3 -24
- package/src/effect/entry-shape.ts +105 -10
- package/src/effect/generated-entry.ts +36 -0
- package/src/effect/handler/batch-handler.ts +27 -28
- package/src/effect/handler/batch.ts +9 -13
- package/src/effect/handler/definition.ts +0 -45
- package/src/effect/handler/http.ts +2 -2
- package/src/effect/handler/types.ts +3 -32
- package/src/effect/handler.ts +0 -1
- package/src/effect/index.ts +1 -1
- package/src/effect/module.ts +11 -4
- package/src/effect/operation-context.ts +2 -6
- package/src/effect/rpcSerialization.ts +0 -2
- package/src/effect-client/cross-project.ts +104 -0
- package/src/effect-client/index.ts +17 -7
- package/src/microvertical-api.ts +102 -0
- package/dist/cjs/effect/edge-context.js +0 -61
- package/dist/cjs/effect-client/batch.js +0 -73
- package/dist/cjs/effect-client/envelope.js +0 -145
- package/dist/cjs/effect-client/request-context.js +0 -64
- package/dist/cjs/effect-client/request.js +0 -66
- package/dist/cjs/effect-client/runtime.js +0 -100
- package/dist/cjs/effect-client/types.js +0 -18
- package/dist/esm/effect/edge-context.mjs +0 -14
- package/dist/esm/effect-client/batch.mjs +0 -35
- package/dist/esm/effect-client/envelope.mjs +0 -104
- package/dist/esm/effect-client/guards.mjs +0 -3
- package/dist/esm/effect-client/request-context.mjs +0 -23
- package/dist/esm/effect-client/request.mjs +0 -28
- package/dist/esm/effect-client/runtime.mjs +0 -62
- package/dist/esm/effect-client/types.mjs +0 -0
- package/dist/esm-node/effect/edge-context.mjs +0 -15
- package/dist/esm-node/effect-client/batch.mjs +0 -36
- package/dist/esm-node/effect-client/envelope.mjs +0 -105
- package/dist/esm-node/effect-client/guards.mjs +0 -4
- package/dist/esm-node/effect-client/request-context.mjs +0 -24
- package/dist/esm-node/effect-client/request.mjs +0 -29
- package/dist/esm-node/effect-client/runtime.mjs +0 -63
- package/dist/esm-node/effect-client/types.mjs +0 -1
- package/dist/types/effect/edge-context.d.ts +0 -5
- package/dist/types/effect-client/batch.d.ts +0 -2
- package/dist/types/effect-client/envelope.d.ts +0 -15
- package/dist/types/effect-client/guards.d.ts +0 -2
- package/dist/types/effect-client/request-context.d.ts +0 -3
- package/dist/types/effect-client/request.d.ts +0 -1
- package/dist/types/effect-client/runtime.d.ts +0 -5
- package/dist/types/effect-client/types.d.ts +0 -68
- package/src/effect/edge-context.ts +0 -51
- package/src/effect-client/batch.ts +0 -50
- package/src/effect-client/envelope.ts +0 -238
- package/src/effect-client/guards.ts +0 -6
- package/src/effect-client/request-context.ts +0 -54
- package/src/effect-client/request.ts +0 -51
- package/src/effect-client/runtime.ts +0 -122
- package/src/effect-client/types.ts +0 -84
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
// @effect-diagnostics processEnv:off strictBooleanExpressions:off
|
|
2
|
-
import { configureGeneratedEffectClientRuntime } from './batch';
|
|
3
|
-
import { prepareEffectRequest } from './envelope';
|
|
4
|
-
import { createEffectRequestContext as createEffectRequestContextWithHeaders } from './request-context';
|
|
5
|
-
import type {
|
|
6
|
-
EffectClient,
|
|
7
|
-
EffectClientOperation,
|
|
8
|
-
EffectOperationDescriptor,
|
|
9
|
-
EffectOperationManifest,
|
|
10
|
-
EffectRequestContext,
|
|
11
|
-
EffectRequestContextInput,
|
|
12
|
-
EffectRequestRuntime,
|
|
13
|
-
GeneratedEffectClientConfig,
|
|
14
|
-
GeneratedEffectClientModule,
|
|
15
|
-
GeneratedEffectEndpoint,
|
|
16
|
-
} from './types';
|
|
17
|
-
|
|
18
|
-
export type {
|
|
19
|
-
EffectClient,
|
|
20
|
-
EffectClientGroup,
|
|
21
|
-
EffectClientOperation,
|
|
22
|
-
EffectOperationDescriptor,
|
|
23
|
-
EffectOperationManifest,
|
|
24
|
-
EffectRequestContext,
|
|
25
|
-
EffectRequestContextInput,
|
|
26
|
-
EffectRequestRuntime,
|
|
27
|
-
GeneratedEffectBatchConfig,
|
|
28
|
-
GeneratedEffectClientConfig,
|
|
29
|
-
GeneratedEffectClientModule,
|
|
30
|
-
GeneratedEffectEndpoint,
|
|
31
|
-
} from './types';
|
|
32
|
-
|
|
33
|
-
export const createGeneratedEffectClient = (
|
|
34
|
-
manifest: { endpoints: GeneratedEffectEndpoint[] },
|
|
35
|
-
config: GeneratedEffectClientConfig,
|
|
36
|
-
requestRuntime: EffectRequestRuntime,
|
|
37
|
-
): GeneratedEffectClientModule => {
|
|
38
|
-
const createRequest = requestRuntime.createRequest;
|
|
39
|
-
const configureRequest =
|
|
40
|
-
typeof requestRuntime.configure === 'function'
|
|
41
|
-
? requestRuntime.configure
|
|
42
|
-
: undefined;
|
|
43
|
-
const createRequestContextHeaders =
|
|
44
|
-
typeof requestRuntime.createRequestContextHeaders === 'function'
|
|
45
|
-
? requestRuntime.createRequestContextHeaders
|
|
46
|
-
: undefined;
|
|
47
|
-
|
|
48
|
-
const httpMethodDecider = config.httpMethodDecider || 'functionName';
|
|
49
|
-
const port =
|
|
50
|
-
config.useEnvPort &&
|
|
51
|
-
typeof process !== 'undefined' &&
|
|
52
|
-
process.env &&
|
|
53
|
-
process.env.PORT
|
|
54
|
-
? process.env.PORT
|
|
55
|
-
: config.port;
|
|
56
|
-
|
|
57
|
-
configureGeneratedEffectClientRuntime(config, configureRequest);
|
|
58
|
-
|
|
59
|
-
const createEffectRequestContext = (
|
|
60
|
-
requestContext: EffectRequestContextInput,
|
|
61
|
-
): EffectRequestContext =>
|
|
62
|
-
createEffectRequestContextWithHeaders(
|
|
63
|
-
createRequestContextHeaders,
|
|
64
|
-
requestContext,
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
const client: EffectClient = {};
|
|
68
|
-
const operationManifest: EffectOperationManifest = {};
|
|
69
|
-
|
|
70
|
-
for (const endpoint of manifest.endpoints) {
|
|
71
|
-
const operationId = `${endpoint.method}:${endpoint.routePath}`;
|
|
72
|
-
const operation: EffectOperationDescriptor = {
|
|
73
|
-
appNamespace: config.appNamespace,
|
|
74
|
-
apiId: endpoint.apiId,
|
|
75
|
-
group: endpoint.group,
|
|
76
|
-
endpoint: endpoint.endpoint,
|
|
77
|
-
operationId,
|
|
78
|
-
routePath: endpoint.routePath,
|
|
79
|
-
method: endpoint.method,
|
|
80
|
-
operationVersion: endpoint.operationVersion,
|
|
81
|
-
schemaHash: endpoint.schemaHash,
|
|
82
|
-
version: endpoint.operationVersion,
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const sender = createRequest({
|
|
86
|
-
path: endpoint.routePath,
|
|
87
|
-
method: endpoint.method,
|
|
88
|
-
port,
|
|
89
|
-
operationContext: {
|
|
90
|
-
operationId,
|
|
91
|
-
routePath: endpoint.routePath,
|
|
92
|
-
method: endpoint.method,
|
|
93
|
-
schemaHash: endpoint.schemaHash,
|
|
94
|
-
operationVersion: endpoint.operationVersion,
|
|
95
|
-
},
|
|
96
|
-
httpMethodDecider,
|
|
97
|
-
...(config.requestId ? { requestId: config.requestId } : {}),
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
const call: EffectClientOperation = (request: unknown = {}) =>
|
|
101
|
-
sender(
|
|
102
|
-
prepareEffectRequest({
|
|
103
|
-
endpoint,
|
|
104
|
-
operation,
|
|
105
|
-
request,
|
|
106
|
-
config,
|
|
107
|
-
createEffectRequestContext,
|
|
108
|
-
}),
|
|
109
|
-
);
|
|
110
|
-
|
|
111
|
-
client[endpoint.group] ??= {};
|
|
112
|
-
client[endpoint.group]![endpoint.endpoint] = call;
|
|
113
|
-
operationManifest[endpoint.group] ??= {};
|
|
114
|
-
operationManifest[endpoint.group]![endpoint.endpoint] = operation;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return {
|
|
118
|
-
client,
|
|
119
|
-
operationManifest,
|
|
120
|
-
createEffectRequestContext,
|
|
121
|
-
};
|
|
122
|
-
};
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
// @effect-diagnostics processEnv:off strictBooleanExpressions:off
|
|
2
|
-
export type GeneratedEffectEndpoint = {
|
|
3
|
-
apiId: string;
|
|
4
|
-
group: string;
|
|
5
|
-
endpoint: string;
|
|
6
|
-
method: string;
|
|
7
|
-
routePath: string;
|
|
8
|
-
/** Per-endpoint operation contract hash (bff-core hash). */
|
|
9
|
-
schemaHash: string;
|
|
10
|
-
operationVersion: number;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export type GeneratedEffectBatchConfig = {
|
|
14
|
-
enabled: boolean;
|
|
15
|
-
endpoint: string;
|
|
16
|
-
flushIntervalMs: number;
|
|
17
|
-
maxBatchSize: number;
|
|
18
|
-
maxBatchBytes: number;
|
|
19
|
-
requestTimeoutMs: number;
|
|
20
|
-
allowedMethods: string[];
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export type GeneratedEffectClientConfig = {
|
|
24
|
-
appNamespace: string;
|
|
25
|
-
/** Cross-project producer id; absent for same-project clients. */
|
|
26
|
-
requestId?: string;
|
|
27
|
-
port: number;
|
|
28
|
-
/** Resolve the port from process.env.PORT first (server bundles). */
|
|
29
|
-
useEnvPort?: boolean;
|
|
30
|
-
defaultOrigin: string;
|
|
31
|
-
httpMethodDecider?: string;
|
|
32
|
-
batch: GeneratedEffectBatchConfig;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export type EffectOperationDescriptor = {
|
|
36
|
-
appNamespace: string;
|
|
37
|
-
apiId: string;
|
|
38
|
-
group: string;
|
|
39
|
-
endpoint: string;
|
|
40
|
-
operationId: string;
|
|
41
|
-
routePath: string;
|
|
42
|
-
method: string;
|
|
43
|
-
operationVersion: number;
|
|
44
|
-
schemaHash: string;
|
|
45
|
-
version: number;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export type EffectClientOperation = (request?: unknown) => Promise<unknown>;
|
|
49
|
-
export type EffectClientGroup = Record<string, EffectClientOperation>;
|
|
50
|
-
export type EffectClient = Record<string, EffectClientGroup>;
|
|
51
|
-
export type EffectOperationManifest = Record<
|
|
52
|
-
string,
|
|
53
|
-
Record<string, EffectOperationDescriptor>
|
|
54
|
-
>;
|
|
55
|
-
|
|
56
|
-
export type EffectRequestContextInput = Record<string, unknown>;
|
|
57
|
-
|
|
58
|
-
export type EffectRequestContext = {
|
|
59
|
-
headers: Record<string, string>;
|
|
60
|
-
} & Record<string, unknown>;
|
|
61
|
-
|
|
62
|
-
/** Structural slice of `@modern-js/create-request` the runtime relies on. */
|
|
63
|
-
export type EffectRequestRuntime = {
|
|
64
|
-
createRequest: (options: {
|
|
65
|
-
path: string;
|
|
66
|
-
method: string;
|
|
67
|
-
port: number | string;
|
|
68
|
-
operationContext: Record<string, unknown>;
|
|
69
|
-
httpMethodDecider: string;
|
|
70
|
-
requestId?: string;
|
|
71
|
-
}) => (...args: unknown[]) => Promise<unknown>;
|
|
72
|
-
configure?: (options: Record<string, unknown>) => void;
|
|
73
|
-
createRequestContextHeaders?: (
|
|
74
|
-
input: EffectRequestContextInput,
|
|
75
|
-
) => Record<string, string>;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export type GeneratedEffectClientModule = {
|
|
79
|
-
client: EffectClient;
|
|
80
|
-
operationManifest: EffectOperationManifest;
|
|
81
|
-
createEffectRequestContext: (
|
|
82
|
-
requestContext: EffectRequestContextInput,
|
|
83
|
-
) => EffectRequestContext;
|
|
84
|
-
};
|