@devvit/public-api 0.12.0-next-2025-04-30-2e2a14dbe.0 → 0.12.0-next-2025-08-12-20-06-14-50f19bb3e.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/apis/AssetsClient/AssetsClient.d.ts +2 -2
- package/apis/AssetsClient/AssetsClient.d.ts.map +1 -1
- package/apis/AssetsClient/AssetsClient.js +5 -7
- package/apis/key-value-storage/KeyValueStorage.d.ts +1 -1
- package/apis/key-value-storage/KeyValueStorage.d.ts.map +1 -1
- package/apis/makeAPIClients.d.ts.map +1 -1
- package/apis/makeAPIClients.js +3 -0
- package/apis/media/MediaClient.js +1 -1
- package/apis/realtime/RealtimeClient.d.ts +1 -1
- package/apis/realtime/RealtimeClient.d.ts.map +1 -1
- package/apis/reddit/RedditAPIClient.d.ts +41 -41
- package/apis/reddit/RedditAPIClient.d.ts.map +1 -1
- package/apis/reddit/RedditAPIClient.js +150 -151
- package/apis/reddit/models/Comment.d.ts +4 -1
- package/apis/reddit/models/Comment.d.ts.map +1 -1
- package/apis/reddit/models/Comment.js +4 -1
- package/apis/reddit/models/Flair.d.ts +1 -1
- package/apis/reddit/models/Flair.d.ts.map +1 -1
- package/apis/reddit/models/Flair.js +2 -2
- package/apis/reddit/models/Listing.d.ts +1 -1
- package/apis/reddit/models/Listing.d.ts.map +1 -1
- package/apis/reddit/models/ModAction.d.ts +3 -0
- package/apis/reddit/models/ModAction.d.ts.map +1 -1
- package/apis/reddit/models/ModAction.js +1 -2
- package/apis/reddit/models/ModMail.d.ts +23 -23
- package/apis/reddit/models/ModMail.js +24 -24
- package/apis/reddit/models/ModNote.d.ts +1 -1
- package/apis/reddit/models/ModNote.d.ts.map +1 -1
- package/apis/reddit/models/ModNote.js +1 -1
- package/apis/reddit/models/Post.d.ts +32 -5
- package/apis/reddit/models/Post.d.ts.map +1 -1
- package/apis/reddit/models/Post.js +74 -7
- package/apis/reddit/models/PrivateMessage.d.ts +1 -1
- package/apis/reddit/models/PrivateMessage.d.ts.map +1 -1
- package/apis/reddit/models/PrivateMessage.js +1 -1
- package/apis/reddit/models/Subreddit.d.ts +27 -9
- package/apis/reddit/models/Subreddit.d.ts.map +1 -1
- package/apis/reddit/models/Subreddit.js +12 -18
- package/apis/reddit/models/User.d.ts +23 -2
- package/apis/reddit/models/User.d.ts.map +1 -1
- package/apis/reddit/models/User.js +2 -15
- package/apis/reddit/models/Vault.d.ts +4 -1
- package/apis/reddit/models/Vault.d.ts.map +1 -1
- package/apis/reddit/models/Vault.js +3 -8
- package/apis/reddit/models/index.d.ts +1 -1
- package/apis/reddit/models/index.d.ts.map +1 -1
- package/apis/reddit/models/index.js +1 -0
- package/apis/reddit/tests/utils/createTestRedditApiClient.d.ts +8 -0
- package/apis/reddit/tests/utils/createTestRedditApiClient.d.ts.map +1 -0
- package/apis/reddit/tests/utils/createTestRedditApiClient.js +16 -0
- package/apis/redis/RedisClient.d.ts +0 -1
- package/apis/redis/RedisClient.d.ts.map +1 -1
- package/apis/redis/RedisClient.js +6 -0
- package/apis/redis/RedisClient.tests.js +3 -0
- package/apis/scheduler/SchedulerClient.js +1 -1
- package/apis/ui/UIClient.d.ts +3 -1
- package/apis/ui/UIClient.d.ts.map +1 -1
- package/apis/ui/UIClient.js +13 -12
- package/devvit/Devvit.d.ts +2 -2
- package/devvit/Devvit.d.ts.map +1 -1
- package/devvit/Devvit.js +65 -18
- package/devvit/internals/app-settings.d.ts.map +1 -1
- package/devvit/internals/app-settings.js +1 -4
- package/devvit/internals/blocks/BlocksReconciler.d.ts +105 -0
- package/devvit/internals/blocks/BlocksReconciler.d.ts.map +1 -1
- package/devvit/internals/blocks/BlocksReconciler.js +15 -13
- package/devvit/internals/blocks/handler/BlocksHandler.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/BlocksHandler.js +2 -1
- package/devvit/internals/blocks/handler/ContextBuilder.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/ContextBuilder.js +3 -0
- package/devvit/internals/blocks/handler/UIClient.d.ts +7 -5
- package/devvit/internals/blocks/handler/UIClient.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/UIClient.js +14 -13
- package/devvit/internals/blocks/handler/cache.d.ts +1 -1
- package/devvit/internals/blocks/handler/cache.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/test-helpers.d.ts +1 -1
- package/devvit/internals/blocks/handler/test-helpers.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/types.d.ts +1 -1
- package/devvit/internals/blocks/handler/types.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/useAsync.d.ts +1 -1
- package/devvit/internals/blocks/handler/useAsync.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/useChannel.d.ts +1 -1
- package/devvit/internals/blocks/handler/useChannel.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/useForm.d.ts +1 -1
- package/devvit/internals/blocks/handler/useForm.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/useState.d.ts +1 -1
- package/devvit/internals/blocks/handler/useState.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/useWebView.d.ts +1 -1
- package/devvit/internals/blocks/handler/useWebView.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/useWebView.js +23 -4
- package/devvit/internals/blocks/useChannel.d.ts.map +1 -1
- package/devvit/internals/cache.d.ts +1 -1
- package/devvit/internals/cache.d.ts.map +1 -1
- package/devvit/internals/context.d.ts +1 -1
- package/devvit/internals/context.d.ts.map +1 -1
- package/devvit/internals/context.js +10 -1
- package/devvit/internals/csrf.d.ts.map +1 -1
- package/devvit/internals/csrf.js +4 -5
- package/devvit/internals/helpers/color.d.ts +1 -1
- package/devvit/internals/helpers/color.d.ts.map +1 -1
- package/devvit/internals/helpers/devvitInternalMessage.d.ts.map +1 -1
- package/devvit/internals/helpers/devvitInternalMessage.js +1 -1
- package/devvit/internals/helpers/extendDevvitPrototype.d.ts +1 -6
- package/devvit/internals/helpers/extendDevvitPrototype.d.ts.map +1 -1
- package/devvit/internals/helpers/extendDevvitPrototype.js +1 -9
- package/devvit/internals/installation-settings.d.ts.map +1 -1
- package/devvit/internals/installation-settings.js +1 -4
- package/devvit/internals/menu-items.d.ts +1 -0
- package/devvit/internals/menu-items.d.ts.map +1 -1
- package/devvit/internals/menu-items.js +9 -3
- package/devvit/internals/semanticColors.d.ts +4 -0
- package/devvit/internals/semanticColors.d.ts.map +1 -1
- package/devvit/internals/semanticColors.js +4 -0
- package/devvit/internals/ui-event-handler.js +3 -3
- package/devvit/internals/upgrade-app-shim.d.ts +1 -5
- package/devvit/internals/upgrade-app-shim.d.ts.map +1 -1
- package/devvit/internals/upgrade-app-shim.js +0 -8
- package/index.d.ts +2 -2
- package/index.d.ts.map +1 -1
- package/index.js +1 -2
- package/meta.min.json +401 -342
- package/package.json +23 -20
- package/public-api.min.js +6 -6
- package/public-api.min.js.map +4 -4
- package/types/configuration.d.ts +12 -3
- package/types/configuration.d.ts.map +1 -1
- package/types/context.d.ts +10 -2
- package/types/context.d.ts.map +1 -1
- package/types/data.d.ts +1 -1
- package/types/data.d.ts.map +1 -1
- package/types/form.d.ts +6 -89
- package/types/form.d.ts.map +1 -1
- package/types/form.js +2 -5
- package/types/hooks.d.ts +1 -1
- package/types/hooks.d.ts.map +1 -1
- package/types/icons.d.ts +1 -1
- package/types/icons.d.ts.map +1 -1
- package/types/icons.js +1 -1
- package/types/json.d.ts +43 -0
- package/types/json.d.ts.map +1 -0
- package/types/json.js +1 -0
- package/types/kvStore.d.ts +1 -1
- package/types/kvStore.d.ts.map +1 -1
- package/types/media.d.ts +1 -1
- package/types/menu-item.d.ts +3 -14
- package/types/menu-item.d.ts.map +1 -1
- package/types/realtime.d.ts +1 -1
- package/types/realtime.d.ts.map +1 -1
- package/types/redis.d.ts +0 -1
- package/types/redis.d.ts.map +1 -1
- package/types/scheduler.d.ts +2 -2
- package/types/scheduler.d.ts.map +1 -1
- package/types/tid.d.ts +47 -0
- package/types/tid.d.ts.map +1 -0
- package/types/tid.js +114 -0
- package/types/ui-client.d.ts +12 -6
- package/types/ui-client.d.ts.map +1 -1
- package/types/web-view-ui-client.d.ts +1 -1
- package/types/web-view-ui-client.d.ts.map +1 -1
- package/version.json +6 -8
- package/apis/reddit/index.d.ts +0 -1104
- package/apis/reddit/index.d.ts.map +0 -1
- package/apis/reddit/index.js +0 -1442
- package/apis/reddit/tests/utils/createTestRedditApiContext.d.ts +0 -7
- package/apis/reddit/tests/utils/createTestRedditApiContext.d.ts.map +0 -1
- package/apis/reddit/tests/utils/createTestRedditApiContext.js +0 -23
- package/devvit/internals/async-metadata.d.ts +0 -2
- package/devvit/internals/async-metadata.d.ts.map +0 -1
- package/devvit/internals/async-metadata.js +0 -65
- package/meta.json +0 -10428
- package/public-api.d.ts +0 -60472
- package/public-api.iife.js +0 -102332
- package/tsdoc-metadata.json +0 -11
|
@@ -12,8 +12,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
12
12
|
var _User_id, _User_username, _User_createdAt, _User_linkKarma, _User_commentKarma, _User_nsfw, _User_isAdmin, _User_modPermissionsBySubreddit, _User_url, _User_permalink, _User_hasVerifiedEmail, _User_metadata;
|
|
13
13
|
import { Header } from '@devvit/shared-types/Header.js';
|
|
14
14
|
import { assertNonNull } from '@devvit/shared-types/NonNull.js';
|
|
15
|
-
import { asT2ID, isT2ID } from '@devvit/shared-types/tid.js';
|
|
16
15
|
import { Devvit } from '../../../devvit/Devvit.js';
|
|
16
|
+
import { asT2ID, isT2ID } from '../../../types/tid.js';
|
|
17
17
|
import { GraphQL } from '../graphql/GraphQL.js';
|
|
18
18
|
import { makeGettersEnumerable } from '../helpers/makeGettersEnumerable.js';
|
|
19
19
|
import { formatModeratorPermissions, validModPermissions } from '../helpers/permissions.js';
|
|
@@ -240,7 +240,7 @@ export class User {
|
|
|
240
240
|
* ```ts
|
|
241
241
|
* const username = "badapple"
|
|
242
242
|
* const subredditName = "mysubreddit"
|
|
243
|
-
* const user = await getUserByUsername(username);
|
|
243
|
+
* const user = await reddit.getUserByUsername(username);
|
|
244
244
|
* const userFlair = await user.getUserFlairBySubreddit(subredditName);
|
|
245
245
|
* ```
|
|
246
246
|
*/
|
|
@@ -473,16 +473,3 @@ export async function getCurrentUsernameFromMetadata(metadata) {
|
|
|
473
473
|
}
|
|
474
474
|
return getUsernameById(userId, metadata);
|
|
475
475
|
}
|
|
476
|
-
/** @internal */
|
|
477
|
-
export async function getCurrentUserFromMetadata(metadata) {
|
|
478
|
-
assertNonNull(metadata);
|
|
479
|
-
const username = metadata?.[Header.Username]?.values[0];
|
|
480
|
-
if (username) {
|
|
481
|
-
return User.getByUsername(username, metadata);
|
|
482
|
-
}
|
|
483
|
-
const userId = metadata?.[Header.User]?.values[0];
|
|
484
|
-
if (!userId && isT2ID(userId)) {
|
|
485
|
-
return User.getById(userId, metadata);
|
|
486
|
-
}
|
|
487
|
-
return undefined;
|
|
488
|
-
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Metadata } from '@devvit/protos';
|
|
2
|
+
import type { T2ID } from '../../../types/tid.js';
|
|
2
3
|
/**
|
|
3
4
|
* A type representing a Vault (crypto wallet).
|
|
4
5
|
*/
|
|
@@ -27,4 +28,6 @@ export type Vault = {
|
|
|
27
28
|
*/
|
|
28
29
|
isActive: boolean;
|
|
29
30
|
};
|
|
31
|
+
export declare function getVaultByAddress(address: string, metadata: Metadata | undefined): Promise<Vault>;
|
|
32
|
+
export declare function getVaultByUserId(userId: T2ID, metadata: Metadata | undefined): Promise<Vault>;
|
|
30
33
|
//# sourceMappingURL=Vault.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vault.d.ts","sourceRoot":"","sources":["../../../../src/apis/reddit/models/Vault.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Vault.d.ts","sourceRoot":"","sources":["../../../../src/apis/reddit/models/Vault.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAIlD;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,EAAE,IAAI,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,OAAO,CAAC,KAAK,CAAC,CAUhB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,OAAO,CAAC,KAAK,CAAC,CAUhB"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import { asT2ID } from '
|
|
1
|
+
import { asT2ID } from '../../../types/tid.js';
|
|
2
2
|
import { GraphQL } from '../graphql/GraphQL.js';
|
|
3
|
-
/**
|
|
4
|
-
* @internal
|
|
5
|
-
*/
|
|
6
3
|
export async function getVaultByAddress(address, metadata) {
|
|
7
4
|
return getVaultByParams('GetVaultContactByAddress', '3e2f7966a5c120e64fd2795d06a46595c52d988185be98d3ed71c3f81ae80d2e', {
|
|
8
5
|
provider: 'ethereum', // Only one supported at the moment
|
|
9
6
|
address,
|
|
10
7
|
}, metadata);
|
|
11
8
|
}
|
|
12
|
-
/**
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
9
|
export async function getVaultByUserId(userId, metadata) {
|
|
16
10
|
return getVaultByParams('GetVaultContactByUserId', 'a854ddc19d0e22c4f36ed917fdbd568f299f3571427e393aee5e2972080fffe9', {
|
|
17
11
|
provider: 'ethereum', // Only one supported at the moment
|
|
@@ -21,11 +15,12 @@ export async function getVaultByUserId(userId, metadata) {
|
|
|
21
15
|
async function getVaultByParams(operationName, queryHash, params, metadata) {
|
|
22
16
|
const response = await GraphQL.query(operationName, queryHash, params, metadata);
|
|
23
17
|
const contact = response?.data?.vault?.contact;
|
|
24
|
-
|
|
18
|
+
const vault = {
|
|
25
19
|
provider: contact?.provider,
|
|
26
20
|
userId: asT2ID(contact?.userId),
|
|
27
21
|
address: contact?.address,
|
|
28
22
|
createdAt: contact?.createdAt,
|
|
29
23
|
isActive: contact?.isActive,
|
|
30
24
|
};
|
|
25
|
+
return vault;
|
|
31
26
|
}
|
|
@@ -8,7 +8,7 @@ export * from './Post.js';
|
|
|
8
8
|
export * from './PrivateMessage.js';
|
|
9
9
|
export * from './Subreddit.js';
|
|
10
10
|
export * from './User.js';
|
|
11
|
-
export
|
|
11
|
+
export * from './Vault.js';
|
|
12
12
|
export * from './Widget.js';
|
|
13
13
|
export * from './WikiPage.js';
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/apis/reddit/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/apis/reddit/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Metadata } from '@devvit/protos';
|
|
2
|
+
import type { Configuration } from '../../../../types/configuration.js';
|
|
3
|
+
import { RedditAPIClient } from '../../RedditAPIClient.js';
|
|
4
|
+
export declare function createTestRedditApiClient(config?: Configuration): {
|
|
5
|
+
metadata: Metadata;
|
|
6
|
+
reddit: RedditAPIClient;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=createTestRedditApiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTestRedditApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/apis/reddit/tests/utils/createTestRedditApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG;IACjE,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;CACzB,CAiBA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Header } from '@devvit/shared-types/Header.js';
|
|
2
|
+
import { Devvit } from '../../../../devvit/Devvit.js';
|
|
3
|
+
import { RedditAPIClient } from '../../RedditAPIClient.js';
|
|
4
|
+
export function createTestRedditApiClient(config) {
|
|
5
|
+
const metadata = {
|
|
6
|
+
[Header.AppUser]: {
|
|
7
|
+
values: ['t2_appuser'],
|
|
8
|
+
},
|
|
9
|
+
[Header.Subreddit]: { values: ['t5_0'] },
|
|
10
|
+
};
|
|
11
|
+
const reddit = new RedditAPIClient(metadata);
|
|
12
|
+
Devvit.configure(config || {
|
|
13
|
+
redditAPI: true,
|
|
14
|
+
});
|
|
15
|
+
return { metadata, reddit };
|
|
16
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import type { HScanResponse, Metadata, RedisAPI, TransactionId, ZMember, ZScanResponse } from '@devvit/protos';
|
|
3
2
|
import { RedisKeyScope } from '@devvit/protos';
|
|
4
3
|
import type { BitfieldCommand, RedisClient as RedisClientLike, SetOptions, TxClientLike, ZRangeOptions } from '../../types/redis.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedisClient.d.ts","sourceRoot":"","sources":["../../../src/apis/redis/RedisClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RedisClient.d.ts","sourceRoot":"","sources":["../../../src/apis/redis/RedisClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
12
12
|
var _TxClient_storage, _TxClient_transactionId, _TxClient_metadata, _RedisClient_metadata, _RedisClient_storage;
|
|
13
13
|
import { BitfieldOverflowBehavior, RedisKeyScope } from '@devvit/protos';
|
|
14
14
|
import { Devvit } from '../../devvit/Devvit.js';
|
|
15
|
+
// TODO: This code is currently cloned to the Devvit Web world in the `@devvit/redis` package. If
|
|
16
|
+
// you change this code, please make sure to update the other package as well. Eventually, this
|
|
17
|
+
// copy of the code will be deleted, when we move to a fully Devvit Web world.
|
|
15
18
|
function isRedisNilError(e) {
|
|
16
19
|
// TODO: Replace with impl in a Gatsby-only world
|
|
17
20
|
//return e && e.details === 'redis: nil';
|
|
@@ -92,6 +95,9 @@ export class TxClient {
|
|
|
92
95
|
else if (result.dbl !== undefined) {
|
|
93
96
|
output.push(result.dbl);
|
|
94
97
|
}
|
|
98
|
+
else if (result.bool !== undefined) {
|
|
99
|
+
output.push(result.bool);
|
|
100
|
+
}
|
|
95
101
|
}
|
|
96
102
|
return output;
|
|
97
103
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { RedisClient } from './RedisClient.js';
|
|
2
|
+
// TODO: This code is currently cloned to the Devvit Web world in the `@devvit/redis` package. If
|
|
3
|
+
// you change this code, please make sure to update the other package as well. Eventually, this
|
|
4
|
+
// copy of the code will be deleted, when we move to a fully Devvit Web world.
|
|
2
5
|
test('bitfield typing is intuitive', () => {
|
|
3
6
|
const client = new RedisClient({});
|
|
4
7
|
client.bitfield('mykey');
|
package/apis/ui/UIClient.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Form } from '@devvit/shared';
|
|
2
2
|
import type { FormKey } from '@devvit/shared-types/useForm.js';
|
|
3
3
|
import type { BlocksReconciler } from '../../devvit/internals/blocks/BlocksReconciler.js';
|
|
4
|
+
import type { JSONObject } from '../../types/json.js';
|
|
4
5
|
import type { Toast } from '../../types/toast.js';
|
|
5
6
|
import type { UIClient as _UIClient } from '../../types/ui-client.js';
|
|
6
7
|
import type { WebViewUIClient } from '../../types/web-view-ui-client.js';
|
|
@@ -10,6 +11,7 @@ export declare class UIClient implements _UIClient {
|
|
|
10
11
|
constructor(reconciler?: BlocksReconciler);
|
|
11
12
|
get webView(): WebViewUIClient;
|
|
12
13
|
showForm(formKey: FormKey, data?: JSONObject | undefined): void;
|
|
14
|
+
showFormInternal(formKey: FormKey, data?: JSONObject | undefined, formInternalOverride?: Form | undefined): void;
|
|
13
15
|
showToast(text: string): void;
|
|
14
16
|
showToast(toast: Toast): void;
|
|
15
17
|
navigateTo(url: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UIClient.d.ts","sourceRoot":"","sources":["../../../src/apis/ui/UIClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"UIClient.d.ts","sourceRoot":"","sources":["../../../src/apis/ui/UIClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAIhF,qBAAa,QAAS,YAAW,SAAS;;gBAK5B,UAAU,CAAC,EAAE,gBAAgB;IAOzC,IAAI,OAAO,IAAI,eAAe,CAE7B;IAED,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAI/D,gBAAgB,CACd,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,EAC7B,oBAAoB,CAAC,EAAE,IAAI,GAAG,SAAS,GACtC,IAAI;IA8CP,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC7B,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAwB7B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAC7B,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IACtC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAC5B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAClC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CAoC7B"}
|
package/apis/ui/UIClient.js
CHANGED
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
12
|
var _UIClient_effects, _UIClient_reconciler, _UIClient_webViewClient, _UIClient_postMessage;
|
|
13
|
-
import { EffectType, Form, ToastAppearance, } from '@devvit/protos';
|
|
13
|
+
import { EffectType, Form as FormProto, ToastAppearance, } from '@devvit/protos';
|
|
14
14
|
import { Devvit } from '../../devvit/Devvit.js';
|
|
15
15
|
import { assertValidFormFields } from './helpers/assertValidFormFields.js';
|
|
16
16
|
import { transformFormFields } from './helpers/transformForm.js';
|
|
@@ -41,6 +41,9 @@ export class UIClient {
|
|
|
41
41
|
return __classPrivateFieldGet(this, _UIClient_webViewClient, "f");
|
|
42
42
|
}
|
|
43
43
|
showForm(formKey, data) {
|
|
44
|
+
return this.showFormInternal(formKey, data);
|
|
45
|
+
}
|
|
46
|
+
showFormInternal(formKey, data, formInternalOverride) {
|
|
44
47
|
let formDefinition = Devvit.formDefinitions.get(formKey);
|
|
45
48
|
if (!formDefinition && __classPrivateFieldGet(this, _UIClient_reconciler, "f")) {
|
|
46
49
|
const hookForm = __classPrivateFieldGet(this, _UIClient_reconciler, "f").forms.get(formKey);
|
|
@@ -54,9 +57,10 @@ export class UIClient {
|
|
|
54
57
|
if (!formDefinition) {
|
|
55
58
|
throw new Error('Form does not exist. Make sure you have added it using Devvit.createForm at the root of your app.');
|
|
56
59
|
}
|
|
57
|
-
const formData =
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
const formData = formInternalOverride ??
|
|
61
|
+
(formDefinition.form instanceof Function
|
|
62
|
+
? formDefinition.form(data ?? {})
|
|
63
|
+
: formDefinition.form);
|
|
60
64
|
const form = {
|
|
61
65
|
fields: [],
|
|
62
66
|
id: formKey,
|
|
@@ -95,18 +99,15 @@ export class UIClient {
|
|
|
95
99
|
});
|
|
96
100
|
}
|
|
97
101
|
navigateTo(thingOrUrl) {
|
|
98
|
-
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
url = new URL(thingOrUrl).toString();
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
url = new URL(thingOrUrl.permalink, 'https://www.reddit.com').toString();
|
|
102
|
+
const inputUrl = typeof thingOrUrl === 'string' ? thingOrUrl : thingOrUrl.url;
|
|
103
|
+
if (!URL.canParse(inputUrl)) {
|
|
104
|
+
throw new TypeError(`Invalid URL: ${inputUrl}`);
|
|
105
105
|
}
|
|
106
|
+
const normalizedUrl = new URL(inputUrl).toString();
|
|
106
107
|
__classPrivateFieldGet(this, _UIClient_effects, "f").push({
|
|
107
108
|
type: EffectType.EFFECT_NAVIGATE_TO_URL,
|
|
108
109
|
navigateToUrl: {
|
|
109
|
-
url,
|
|
110
|
+
url: normalizedUrl,
|
|
110
111
|
},
|
|
111
112
|
});
|
|
112
113
|
}
|
package/devvit/Devvit.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Actor } from '@devvit/shared-types/Actor.js';
|
|
2
|
-
import type { JSONObject, JSONValue } from '@devvit/shared-types/json.js';
|
|
3
2
|
import type { FormKey } from '@devvit/shared-types/useForm.js';
|
|
4
3
|
import type { BaseContext, Configuration, ContextAPIClients, CustomPostType, Form, FormFunction, FormOnSubmitEventHandler, FormToFormValues, IconName, MenuItem, MultiTriggerDefinition, ScheduledJobType, SettingsFormField, TriggerEvent, TriggerEventType, TriggerOnEventHandler } from '../types/index.js';
|
|
4
|
+
import type { JSONObject, JSONValue } from '../types/json.js';
|
|
5
5
|
/**
|
|
6
6
|
* Home for debug flags, settings, and other information. Any type removals
|
|
7
7
|
* may cause type errors but not runtime errors.
|
|
@@ -106,7 +106,7 @@ export declare class Devvit extends Actor {
|
|
|
106
106
|
* Devvit.addSchedulerJob({
|
|
107
107
|
* name: 'checkNewPosts',
|
|
108
108
|
* onRun: async (event, context) => {
|
|
109
|
-
* const newPosts = await getNewPosts({ limit: 5 }).all();
|
|
109
|
+
* const newPosts = await context.reddit.getNewPosts({ limit: 5 }).all();
|
|
110
110
|
* for (const post of newPosts) {
|
|
111
111
|
* if (post.title.includes('bad word')) {
|
|
112
112
|
* await post.remove();
|
package/devvit/Devvit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Devvit.d.ts","sourceRoot":"","sources":["../../src/devvit/Devvit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"Devvit.d.ts","sourceRoot":"","sources":["../../src/devvit/Devvit.ts"],"names":[],"mappings":"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"}
|
package/devvit/Devvit.js
CHANGED
|
@@ -9,9 +9,10 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _a, _Devvit_appSettings,
|
|
12
|
+
var _a, _Devvit_appSettings, _Devvit_config, _Devvit_customPostType, _Devvit_formDefinitions, _Devvit_installationSettings, _Devvit_menuItems, _Devvit_scheduledJobHandlers, _Devvit_triggerOnEventHandlers, _Devvit_webViewAssets, _Devvit_domains, _Devvit_scopes, _Devvit_additionallyProvides, _Devvit_uses, _Devvit_pluginClients, _Devvit_getUserScopesFromConfig;
|
|
13
13
|
import * as protos from '@devvit/protos';
|
|
14
14
|
import { Actor } from '@devvit/shared-types/Actor.js';
|
|
15
|
+
import { assertRequestedFetchDomainsLimit, normalizeDomains, } from '@devvit/shared-types/fetch-domains.js';
|
|
15
16
|
import { assertValidFormFields } from '../apis/ui/helpers/assertValidFormFields.js';
|
|
16
17
|
import { SettingScope } from '../types/index.js';
|
|
17
18
|
import { registerAppSettings } from './internals/app-settings.js';
|
|
@@ -43,7 +44,16 @@ export class Devvit extends Actor {
|
|
|
43
44
|
*/
|
|
44
45
|
static configure(config) {
|
|
45
46
|
__classPrivateFieldSet(this, _a, { ...__classPrivateFieldGet(this, _a, "f", _Devvit_config), ...config }, "f", _Devvit_config);
|
|
46
|
-
|
|
47
|
+
const httpConfig = config.http;
|
|
48
|
+
const hasRequestedDomains = typeof httpConfig === 'object' && 'domains' in httpConfig;
|
|
49
|
+
const pluginSettings = hasRequestedDomains
|
|
50
|
+
? { enabled: true }
|
|
51
|
+
: httpConfig;
|
|
52
|
+
if (pluginIsEnabled(pluginSettings)) {
|
|
53
|
+
if (hasRequestedDomains) {
|
|
54
|
+
assertRequestedFetchDomainsLimit(httpConfig.domains);
|
|
55
|
+
__classPrivateFieldSet(this, _a, normalizeDomains(httpConfig.domains), "f", _Devvit_domains);
|
|
56
|
+
}
|
|
47
57
|
this.use(protos.HTTPDefinition);
|
|
48
58
|
}
|
|
49
59
|
// We're now defaulting this to on.
|
|
@@ -77,8 +87,17 @@ export class Devvit extends Actor {
|
|
|
77
87
|
if (pluginIsEnabled(config.realtime)) {
|
|
78
88
|
this.use(protos.RealtimeDefinition);
|
|
79
89
|
}
|
|
80
|
-
|
|
90
|
+
const userActionsConfig = config.userActions;
|
|
91
|
+
const hasScopes = typeof userActionsConfig === 'object' && 'scopes' in userActionsConfig;
|
|
92
|
+
const pluginEnabled = hasScopes
|
|
93
|
+
? { enabled: true }
|
|
94
|
+
: userActionsConfig;
|
|
95
|
+
if (pluginIsEnabled(pluginEnabled)) {
|
|
81
96
|
this.use(protos.UserActionsDefinition);
|
|
97
|
+
const scopes = __classPrivateFieldGet(this, _a, "m", _Devvit_getUserScopesFromConfig).call(this, config);
|
|
98
|
+
if (scopes.length > 0) {
|
|
99
|
+
__classPrivateFieldSet(this, _a, scopes, "f", _Devvit_scopes);
|
|
100
|
+
}
|
|
82
101
|
}
|
|
83
102
|
}
|
|
84
103
|
/**
|
|
@@ -155,7 +174,7 @@ export class Devvit extends Actor {
|
|
|
155
174
|
* Devvit.addSchedulerJob({
|
|
156
175
|
* name: 'checkNewPosts',
|
|
157
176
|
* onRun: async (event, context) => {
|
|
158
|
-
* const newPosts = await getNewPosts({ limit: 5 }).all();
|
|
177
|
+
* const newPosts = await context.reddit.getNewPosts({ limit: 5 }).all();
|
|
159
178
|
* for (const post of newPosts) {
|
|
160
179
|
* if (post.title.includes('bad word')) {
|
|
161
180
|
* await post.remove();
|
|
@@ -255,6 +274,7 @@ export class Devvit extends Actor {
|
|
|
255
274
|
* ```
|
|
256
275
|
*/
|
|
257
276
|
static addSettings(fields) {
|
|
277
|
+
var _b;
|
|
258
278
|
// if the fields is a single field, convert it to an array
|
|
259
279
|
const fieldsArray = Array.isArray(fields) ? fields : [fields];
|
|
260
280
|
const installSettings = fieldsArray.filter((field) => field.type === 'group' || !field.scope || field.scope === SettingScope.Installation);
|
|
@@ -273,6 +293,14 @@ export class Devvit extends Actor {
|
|
|
273
293
|
if (!__classPrivateFieldGet(this, _a, "f", _Devvit_pluginClients)[protos.SettingsDefinition.fullName]) {
|
|
274
294
|
this.use(protos.SettingsDefinition);
|
|
275
295
|
}
|
|
296
|
+
// Save the settings to the global devvit object so that they can be accessed by the settings
|
|
297
|
+
// plugin.
|
|
298
|
+
// TODO: This should be set in the devvit.json config, saved on the bundle by the CLI,
|
|
299
|
+
// and loaded into the globalThis.devvit.settings object by the bootstrap code.
|
|
300
|
+
globalThis.devvit ?? (globalThis.devvit = {});
|
|
301
|
+
(_b = globalThis.devvit).settings ?? (_b.settings = {});
|
|
302
|
+
globalThis.devvit.settings.app = __classPrivateFieldGet(this, _a, "f", _Devvit_appSettings);
|
|
303
|
+
globalThis.devvit.settings.installation = __classPrivateFieldGet(this, _a, "f", _Devvit_installationSettings);
|
|
276
304
|
}
|
|
277
305
|
static addTrigger(triggerDefinition) {
|
|
278
306
|
if ('events' in triggerDefinition) {
|
|
@@ -305,12 +333,8 @@ export class Devvit extends Actor {
|
|
|
305
333
|
__classPrivateFieldGet(this, _a, "f", _Devvit_additionallyProvides).push(def);
|
|
306
334
|
}
|
|
307
335
|
/** @internal */
|
|
308
|
-
static use(d
|
|
309
|
-
__classPrivateFieldGet(this, _a, "f", _Devvit_uses)[d.fullName] = {
|
|
310
|
-
def: d,
|
|
311
|
-
options: opts ?? {},
|
|
312
|
-
handler: undefined,
|
|
313
|
-
};
|
|
336
|
+
static use(d) {
|
|
337
|
+
__classPrivateFieldGet(this, _a, "f", _Devvit_uses)[d.fullName] = { def: d, handler: undefined };
|
|
314
338
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
315
339
|
const wrapped = {};
|
|
316
340
|
for (const method of Object.values(d.methods)) {
|
|
@@ -400,9 +424,9 @@ export class Devvit extends Actor {
|
|
|
400
424
|
}
|
|
401
425
|
/** @internal */
|
|
402
426
|
static get userActionsPlugin() {
|
|
403
|
-
const userActionsAndRedditApiEnabled =
|
|
427
|
+
const userActionsAndRedditApiEnabled = __classPrivateFieldGet(this, _a, "f", _Devvit_scopes).length > 0 && pluginIsEnabled(__classPrivateFieldGet(this, _a, "f", _Devvit_config).redditAPI);
|
|
404
428
|
if (!userActionsAndRedditApiEnabled) {
|
|
405
|
-
throw new Error('UserActions is not enabled. You can enable it by passing
|
|
429
|
+
throw new Error('UserActions is not enabled. You can enable it by passing scopes in `userActions: { scopes: [...scopes] }` and `redditAPI: true` to `Devvit.configure`');
|
|
406
430
|
}
|
|
407
431
|
return __classPrivateFieldGet(this, _a, "f", _Devvit_pluginClients)[protos.UserActionsDefinition.fullName];
|
|
408
432
|
}
|
|
@@ -434,9 +458,9 @@ export class Devvit extends Actor {
|
|
|
434
458
|
static get triggerOnEventHandlers() {
|
|
435
459
|
return __classPrivateFieldGet(this, _a, "f", _Devvit_triggerOnEventHandlers);
|
|
436
460
|
}
|
|
437
|
-
/** @internal */
|
|
461
|
+
/** Do not cache. @internal */
|
|
438
462
|
static get assets() {
|
|
439
|
-
return
|
|
463
|
+
return globalThis.devvit?.assets ?? {};
|
|
440
464
|
}
|
|
441
465
|
/** @internal */
|
|
442
466
|
static get webViewAssets() {
|
|
@@ -444,12 +468,17 @@ export class Devvit extends Actor {
|
|
|
444
468
|
}
|
|
445
469
|
/** @internal */
|
|
446
470
|
constructor(config) {
|
|
471
|
+
var _b, _c;
|
|
447
472
|
super(config);
|
|
448
|
-
|
|
473
|
+
globalThis.devvit ?? (globalThis.devvit = {});
|
|
474
|
+
(_b = globalThis.devvit).assets ?? (_b.assets = config.assets);
|
|
475
|
+
// __devvit__ is initialized by ESBuildPack for Webbit apps only.
|
|
476
|
+
// @ts-expect-error no type.
|
|
477
|
+
(_c = globalThis.devvit).appConfig ?? (_c.appConfig = globalThis.__devvit__?.config);
|
|
449
478
|
__classPrivateFieldSet(_a, _a, config.webviewAssets ?? {}, "f", _Devvit_webViewAssets);
|
|
450
479
|
for (const fullName in __classPrivateFieldGet(_a, _a, "f", _Devvit_uses)) {
|
|
451
480
|
const use = __classPrivateFieldGet(_a, _a, "f", _Devvit_uses)[fullName];
|
|
452
|
-
use.handler = config.use(use.def
|
|
481
|
+
use.handler = config.use(use.def);
|
|
453
482
|
}
|
|
454
483
|
if (__classPrivateFieldGet(_a, _a, "f", _Devvit_menuItems).length > 0) {
|
|
455
484
|
registerMenuItems(config);
|
|
@@ -480,12 +509,28 @@ export class Devvit extends Actor {
|
|
|
480
509
|
for (const provides of __classPrivateFieldGet(_a, _a, "f", _Devvit_additionallyProvides)) {
|
|
481
510
|
config.provides(provides);
|
|
482
511
|
}
|
|
512
|
+
if (__classPrivateFieldGet(_a, _a, "f", _Devvit_domains).length > 0 || __classPrivateFieldGet(_a, _a, "f", _Devvit_scopes).length > 0) {
|
|
513
|
+
config.addPermissions?.({
|
|
514
|
+
requestedFetchDomains: __classPrivateFieldGet(_a, _a, "f", _Devvit_domains),
|
|
515
|
+
asUserScopes: __classPrivateFieldGet(_a, _a, "f", _Devvit_scopes),
|
|
516
|
+
});
|
|
517
|
+
}
|
|
483
518
|
}
|
|
484
519
|
}
|
|
485
|
-
_a = Devvit
|
|
520
|
+
_a = Devvit, _Devvit_getUserScopesFromConfig = function _Devvit_getUserScopesFromConfig(config) {
|
|
521
|
+
const configUserActions = config.userActions;
|
|
522
|
+
if (!configUserActions)
|
|
523
|
+
return [];
|
|
524
|
+
if (typeof configUserActions === 'object' &&
|
|
525
|
+
'enabled' in configUserActions &&
|
|
526
|
+
configUserActions.enabled)
|
|
527
|
+
return [];
|
|
528
|
+
if (typeof configUserActions === 'object' && 'scopes' in configUserActions)
|
|
529
|
+
return configUserActions.scopes;
|
|
530
|
+
return [];
|
|
531
|
+
};
|
|
486
532
|
Devvit.debug = {};
|
|
487
533
|
_Devvit_appSettings = { value: void 0 };
|
|
488
|
-
_Devvit_assets = { value: {} };
|
|
489
534
|
_Devvit_config = { value: {} };
|
|
490
535
|
_Devvit_customPostType = { value: void 0 };
|
|
491
536
|
_Devvit_formDefinitions = { value: new Map() };
|
|
@@ -494,6 +539,8 @@ _Devvit_menuItems = { value: [] };
|
|
|
494
539
|
_Devvit_scheduledJobHandlers = { value: new Map() };
|
|
495
540
|
_Devvit_triggerOnEventHandlers = { value: new Map() };
|
|
496
541
|
_Devvit_webViewAssets = { value: {} };
|
|
542
|
+
_Devvit_domains = { value: [] };
|
|
543
|
+
_Devvit_scopes = { value: [] };
|
|
497
544
|
_Devvit_additionallyProvides = { value: [] };
|
|
498
545
|
/** @internal */
|
|
499
546
|
_Devvit_uses = { value: {} };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-settings.d.ts","sourceRoot":"","sources":["../../../src/devvit/internals/app-settings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"app-settings.d.ts","sourceRoot":"","sources":["../../../src/devvit/internals/app-settings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAsB7D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIxD"}
|
|
@@ -4,12 +4,9 @@ import { Devvit } from '../Devvit.js';
|
|
|
4
4
|
import { extendDevvitPrototype } from './helpers/extendDevvitPrototype.js';
|
|
5
5
|
import { onValidateFormHelper } from './helpers/settingsUtils.js';
|
|
6
6
|
async function onGetSettingsFields() {
|
|
7
|
-
if (!Devvit.appSettings) {
|
|
8
|
-
throw new Error('App settings were not defined.');
|
|
9
|
-
}
|
|
10
7
|
return GetFieldsResponse.fromJSON({
|
|
11
8
|
fields: {
|
|
12
|
-
fields: transformFormFields(Devvit.appSettings),
|
|
9
|
+
fields: transformFormFields(Devvit.appSettings ?? []),
|
|
13
10
|
},
|
|
14
11
|
});
|
|
15
12
|
}
|