Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32161544
D15071.1765043494.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
9 KB
Referenced Files
None
Subscribers
None
D15071.1765043494.diff
View Options
diff --git a/keyserver/src/fetchers/link-fetchers.js b/keyserver/src/fetchers/link-fetchers.js
--- a/keyserver/src/fetchers/link-fetchers.js
+++ b/keyserver/src/fetchers/link-fetchers.js
@@ -51,7 +51,8 @@
threadID,
threadRole,
} = result[0];
- const communityStatus = communityRole > 0 ? 'already_joined' : 'valid';
+ const communityStatus: 'already_joined' | 'valid' =
+ communityRole > 0 ? 'already_joined' : 'valid';
const communityResult = {
status: communityStatus,
community: {
diff --git a/keyserver/src/fetchers/message-fetchers.js b/keyserver/src/fetchers/message-fetchers.js
--- a/keyserver/src/fetchers/message-fetchers.js
+++ b/keyserver/src/fetchers/message-fetchers.js
@@ -538,7 +538,7 @@
const messages = parseMessageSQLResult(result, derivedMessages, viewer);
const rawMessageInfos = [];
- let currentThreadID = null;
+ let currentThreadID: ?string = null;
let numMessagesForCurrentThreadID = 0;
for (const message of messages) {
const { rawMessageInfo } = message;
diff --git a/keyserver/src/fetchers/thread-permission-fetchers.js b/keyserver/src/fetchers/thread-permission-fetchers.js
--- a/keyserver/src/fetchers/thread-permission-fetchers.js
+++ b/keyserver/src/fetchers/thread-permission-fetchers.js
@@ -118,7 +118,7 @@
return positiveRoles.length > 0;
}
-type Check =
+export type Check =
| { +check: 'is_member' }
| { +check: 'permission', +permission: ThreadPermission };
@@ -400,7 +400,7 @@
const fetchMembersPromise = fetchKnownUserInfos(viewer, allCandidates);
const parentPermissionsPromise = (async () => {
- const parentPermissions = {};
+ const parentPermissions: { [string]: ThreadPermissionsBlob } = {};
if (!params.parentThreadID || allCandidates.length === 0) {
return parentPermissions;
}
diff --git a/keyserver/src/push/rescind.js b/keyserver/src/push/rescind.js
--- a/keyserver/src/push/rescind.js
+++ b/keyserver/src/push/rescind.js
@@ -122,7 +122,9 @@
const deliveryPromises: {
[string]: Promise<APNPushResult> | Promise<FCMPushResult>,
} = {};
- const notifInfo = {};
+ const notifInfo: {
+ [string]: { userID: string, threadID: string, messageID: string },
+ } = {};
const rescindedIDs = [];
for (const row of fetchResult) {
diff --git a/keyserver/src/responders/entry-responders.js b/keyserver/src/responders/entry-responders.js
--- a/keyserver/src/responders/entry-responders.js
+++ b/keyserver/src/responders/entry-responders.js
@@ -68,7 +68,7 @@
filters: input.filters,
};
}
- const filters = [];
+ const filters: Array<CalendarFilter> = [];
if (!input.includeDeleted) {
filters.push({ type: calendarThreadFilterTypes.NOT_DELETED });
}
diff --git a/keyserver/src/responders/redux-state-responders.js b/keyserver/src/responders/redux-state-responders.js
--- a/keyserver/src/responders/redux-state-responders.js
+++ b/keyserver/src/responders/redux-state-responders.js
@@ -25,7 +25,10 @@
import type { ServerWebInitialReduxStateResponse } from 'lib/types/redux-types.js';
import { threadPermissions } from 'lib/types/thread-permission-types.js';
import { threadTypes } from 'lib/types/thread-types-enum.js';
-import { type GlobalAccountUserInfo } from 'lib/types/user-types.js';
+import {
+ type GlobalAccountUserInfo,
+ type UserInfos,
+} from 'lib/types/user-types.js';
import { currentDateInTimeZone } from 'lib/utils/date-utils.js';
import { ServerError } from 'lib/utils/errors.js';
import { promiseAll } from 'lib/utils/promises.js';
@@ -221,7 +224,7 @@
}
return await entryStorePromise;
})();
- const userInfosPromise = (async () => {
+ const userInfosPromise = (async (): Promise<UserInfos> => {
const [userInfos, hasNotAcknowledgedPolicies] = await Promise.all([
userInfoPromise,
hasNotAcknowledgedPoliciesPromise,
diff --git a/keyserver/src/updaters/relationship-updaters.js b/keyserver/src/updaters/relationship-updaters.js
--- a/keyserver/src/updaters/relationship-updaters.js
+++ b/keyserver/src/updaters/relationship-updaters.js
@@ -397,7 +397,7 @@
viewer: Viewer,
request: RelationshipRequest,
userIDs: $ReadOnlyArray<string>,
-) {
+): Promise<{ +[string]: string }> {
// If you add another RelationshipAction to the supported list below, you'll
// probably want to add it to the FRIEND / FARCASTER_MUTUAL special cases in
// useUpdateRelationships as well
diff --git a/keyserver/src/updaters/thread-updaters.js b/keyserver/src/updaters/thread-updaters.js
--- a/keyserver/src/updaters/thread-updaters.js
+++ b/keyserver/src/updaters/thread-updaters.js
@@ -56,6 +56,7 @@
rawThreadInfosFromServerThreadInfos,
determineThreadAncestryForPossibleMemberResolution,
} from '../fetchers/thread-fetchers.js';
+import { type Check } from '../fetchers/thread-permission-fetchers.js';
import {
checkThreadPermission,
viewerHasPositiveRole,
@@ -420,7 +421,7 @@
if (ignorePermissions) {
return;
}
- const checks = [];
+ const checks: Array<Check> = [];
if (sqlUpdate.name !== undefined) {
checks.push({
check: 'permission',
diff --git a/lib/push/utils.js b/lib/push/utils.js
--- a/lib/push/utils.js
+++ b/lib/push/utils.js
@@ -125,7 +125,8 @@
const { type } = messageInfo;
const { getMessageNotifyType } = messageSpecs[type];
- let messageNotifyType = messageNotifyTypes.SET_UNREAD;
+ let messageNotifyType: MessageNotifyType =
+ messageNotifyTypes.SET_UNREAD;
if (messageInfo.creatorID === userID) {
// We don't need to notify the message author about their message
messageNotifyType = messageNotifyTypes.NONE;
diff --git a/lib/shared/dm-ops/process-dm-ops.js b/lib/shared/dm-ops/process-dm-ops.js
--- a/lib/shared/dm-ops/process-dm-ops.js
+++ b/lib/shared/dm-ops/process-dm-ops.js
@@ -461,7 +461,8 @@
invariant(id, 'Thick thread RawMessageInfos should always have ID');
const { getMessageNotifyType } = messageSpecs[type];
- let messageNotifyType = messageNotifyTypes.SET_UNREAD;
+ let messageNotifyType: MessageNotifyType =
+ messageNotifyTypes.SET_UNREAD;
if (getMessageNotifyType) {
messageNotifyType = await getMessageNotifyType(rawMessageInfo, {
notifTargetUserID: viewerID,
diff --git a/lib/shared/thread-utils.js b/lib/shared/thread-utils.js
--- a/lib/shared/thread-utils.js
+++ b/lib/shared/thread-utils.js
@@ -1070,7 +1070,7 @@
const disabledPermissions: ThreadPermissionsInfo =
permissionsDisabledByBlockArray.reduce(
- (permissions: ThreadPermissionsInfo, permission: string) => ({
+ (permissions: ThreadPermissionsInfo, permission: ThreadPermission) => ({
...permissions,
[permission]: { value: false, source: null },
}),
diff --git a/lib/types/message-types.js b/lib/types/message-types.js
--- a/lib/types/message-types.js
+++ b/lib/types/message-types.js
@@ -158,7 +158,7 @@
thickIDRegExp,
} from '../utils/validation-utils.js';
-const composableMessageTypes = new Set([
+const composableMessageTypes = new Set<MessageType>([
messageTypes.TEXT,
messageTypes.IMAGES,
messageTypes.MULTIMEDIA,
@@ -200,7 +200,7 @@
return messageData.localID;
}
-const mediaMessageTypes = new Set([
+const mediaMessageTypes = new Set<MessageType>([
messageTypes.IMAGES,
messageTypes.MULTIMEDIA,
]);
diff --git a/lib/utils/validation-utils.test.js b/lib/utils/validation-utils.test.js
--- a/lib/utils/validation-utils.test.js
+++ b/lib/utils/validation-utils.test.js
@@ -15,7 +15,7 @@
describe('Validation utils', () => {
describe('tNumEnum validator', () => {
it('Should discard when accepted set is empty', () => {
- expect(tNumEnum([]).is(1)).toBe(false);
+ expect(tNumEnum(([]: Array<number>)).is(1)).toBe(false);
});
it('Should accept when array contains number', () => {
diff --git a/native/roles/community-roles-screen.react.js b/native/roles/community-roles-screen.react.js
--- a/native/roles/community-roles-screen.react.js
+++ b/native/roles/community-roles-screen.react.js
@@ -11,6 +11,7 @@
useRoleUserSurfacedPermissions,
} from 'lib/shared/thread-utils.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { UserSurfacedPermission } from 'lib/types/thread-permission-types';
import RolePanelEntry from './role-panel-entry.react.js';
import type { RolesNavigationProp } from './roles-navigator.react.js';
@@ -89,7 +90,7 @@
threadInfo,
action: 'create_role',
roleName: 'New role',
- rolePermissions: new Set(),
+ rolePermissions: new Set<UserSurfacedPermission>(),
}),
[threadInfo, props.navigation],
);
diff --git a/web/url-utils.js b/web/url-utils.js
--- a/web/url-utils.js
+++ b/web/url-utils.js
@@ -135,7 +135,8 @@
if (urlInfo.selectedUserList) {
const selectedUsers = _keyBy('id')(navInfo?.selectedUserList ?? []);
- const userInfos = backupInfo.userInfos ?? {};
+ const userInfos: { +[id: string]: AccountUserInfo } =
+ backupInfo.userInfos ?? {};
newNavInfo.selectedUserList = urlInfo.selectedUserList
?.map(id => selectedUsers[id] ?? userInfos[id])
?.filter(Boolean);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Dec 6, 5:51 PM (20 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5839876
Default Alt Text
D15071.1765043494.diff (9 KB)
Attached To
Mode
D15071: [Flow262][skip-ci] Add typehints
Attached
Detach File
Event Timeline
Log In to Comment