@mpgd/adapter-devvit 0.1.0 → 0.3.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/dist/index.d.ts +8 -0
- package/dist/index.js +21 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type BridgeRequest, type BridgeResponse } from '@mpgd/bridge';
|
|
2
|
+
import { type BridgeRpcClient, type BridgeRpcEndpoint } from '@mpgd/bridge/orpc';
|
|
2
3
|
import type { PlatformGateway } from '@mpgd/platform';
|
|
3
4
|
export declare const defaultDevvitBridgeEndpoint = "/api/mpgd/bridge";
|
|
5
|
+
export declare const defaultDevvitRpcEndpoint = "/api/mpgd/rpc";
|
|
4
6
|
type BridgeErrorResponse = Extract<BridgeResponse, {
|
|
5
7
|
readonly ok: false;
|
|
6
8
|
}>;
|
|
@@ -19,8 +21,14 @@ export interface DevvitPlatformGatewayOptions {
|
|
|
19
21
|
readonly bridge?: DevvitBridge;
|
|
20
22
|
readonly fallbackBridge?: DevvitBridge;
|
|
21
23
|
readonly endpoint?: string;
|
|
24
|
+
readonly rpcEndpoint?: BridgeRpcEndpoint;
|
|
22
25
|
}
|
|
23
26
|
export declare function createDevvitPlatformGateway(input: DevvitPlatformGatewayOptions): PlatformGateway;
|
|
27
|
+
export declare function createDevvitOrpcBridge(input?: {
|
|
28
|
+
readonly endpoint?: BridgeRpcEndpoint | undefined;
|
|
29
|
+
readonly fetch?: typeof fetch | undefined;
|
|
30
|
+
readonly client?: BridgeRpcClient | undefined;
|
|
31
|
+
}): DevvitBridge;
|
|
24
32
|
export declare function createDevvitFetchBridge(input?: {
|
|
25
33
|
readonly endpoint?: string | undefined;
|
|
26
34
|
readonly fetch?: typeof fetch | undefined;
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { assertBridgeResponse, createBridgeError, } from '@mpgd/bridge';
|
|
2
|
+
import { createBridgeOrpcClient, defaultBridgeRpcEndpoint, } from '@mpgd/bridge/orpc';
|
|
2
3
|
export const defaultDevvitBridgeEndpoint = '/api/mpgd/bridge';
|
|
4
|
+
export const defaultDevvitRpcEndpoint = defaultBridgeRpcEndpoint;
|
|
3
5
|
const devvitFallbackStoragePrefix = 'mpgd:devvit:fallback:';
|
|
4
6
|
export class DevvitBridgeError extends Error {
|
|
5
7
|
code;
|
|
@@ -19,7 +21,9 @@ export function createDevvitPlatformGateway(input) {
|
|
|
19
21
|
const bridge = input.bridge ??
|
|
20
22
|
getBridge() ??
|
|
21
23
|
input.fallbackBridge ??
|
|
22
|
-
|
|
24
|
+
(input.endpoint === undefined
|
|
25
|
+
? createDevvitOrpcBridge({ endpoint: input.rpcEndpoint })
|
|
26
|
+
: createDevvitFetchBridge({ endpoint: input.endpoint }));
|
|
23
27
|
const response = await bridge.request({
|
|
24
28
|
id: generateRequestId(),
|
|
25
29
|
method,
|
|
@@ -166,6 +170,22 @@ export function createDevvitPlatformGateway(input) {
|
|
|
166
170
|
: undefined;
|
|
167
171
|
}
|
|
168
172
|
}
|
|
173
|
+
export function createDevvitOrpcBridge(input = {}) {
|
|
174
|
+
const client = input.client ?? createBridgeOrpcClient({
|
|
175
|
+
url: input.endpoint ?? defaultDevvitRpcEndpoint,
|
|
176
|
+
...(input.fetch === undefined ? {} : { fetch: input.fetch }),
|
|
177
|
+
});
|
|
178
|
+
return {
|
|
179
|
+
async request(bridgeRequest) {
|
|
180
|
+
try {
|
|
181
|
+
return await client.request(bridgeRequest);
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
return createBridgeError(bridgeRequest.id, 'DEVVIT_BRIDGE_NETWORK_ERROR', `Devvit oRPC bridge request failed: ${errorMessage(error)}`, true);
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
}
|
|
169
189
|
export function createDevvitFetchBridge(input = {}) {
|
|
170
190
|
const endpoint = input.endpoint ?? defaultDevvitBridgeEndpoint;
|
|
171
191
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mpgd/adapter-devvit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Reddit Devvit Web platform adapter for mpgd games.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"dist"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@mpgd/bridge": "0.
|
|
38
|
-
"@mpgd/platform": "0.
|
|
37
|
+
"@mpgd/bridge": "0.3.0",
|
|
38
|
+
"@mpgd/platform": "0.3.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"ttsc": "0.16.9",
|