Skip to content

Commit 27bb40c

Browse files
committed
Add isSigned32 helper
1 parent 803e849 commit 27bb40c

3 files changed

Lines changed: 12 additions & 5 deletions

File tree

backend/src/common/general.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ export function todo(): never {
1616
throw new Error("Function not implemented");
1717
}
1818

19+
/** @return true is the number is a valid 32-bit signed integer */
20+
export function isSigned32(number: number): boolean {
21+
return number < 2 ** 31 && number >= -(2 ** 31);
22+
}
23+
1924
export type ValuesOf<T> = T[keyof T];
2025
export type Awaitable<T> = T | PromiseLike<T>;
2126
export type Nullable<T> = {

backend/src/plugins/moderation/storage/cases.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { isSigned32 } from "#common/general.ts";
12
import { poolTransaction } from "#common/pg/transaction.ts";
23
import { dbParse } from "#storage/storage.ts";
34
import type { Pool } from "pg";
@@ -35,7 +36,7 @@ export namespace casesTable {
3536
guildID: string,
3637
number: number,
3738
): Promise<CaseInfo | null> {
38-
if (number < 0 || number >= 2 ** 32) {
39+
if (!isSigned32(number)) {
3940
return null;
4041
}
4142

@@ -222,7 +223,7 @@ export namespace casesTable {
222223
guildID: string,
223224
number: number,
224225
): Promise<boolean> {
225-
if (number < 0 || number >= 2 ** 32) {
226+
if (!isSigned32(number)) {
226227
return false;
227228
}
228229

backend/src/plugins/reminders/storage/reminders.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { isSigned32 } from "#common/general.ts";
12
import { poolTransaction } from "#common/pg/transaction.ts";
23
import { dbParse } from "#storage/storage.ts";
34
import { ChannelTypes } from "oceanic.js";
@@ -27,7 +28,7 @@ export namespace remindersTable {
2728
guildID: string,
2829
number: number,
2930
): Promise<Reminder | null> {
30-
if (number < 0 || number >= 2 ** 32) {
31+
if (!isSigned32(number)) {
3132
return null;
3233
}
3334

@@ -163,7 +164,7 @@ export namespace remindersTable {
163164
guildID: string,
164165
number: number,
165166
): Promise<boolean> {
166-
if (number < 0 || number >= 2 ** 32) {
167+
if (!isSigned32(number)) {
167168
return false;
168169
}
169170

@@ -184,7 +185,7 @@ export namespace remindersTable {
184185
number: number,
185186
ownerID: string,
186187
): Promise<boolean> {
187-
if (number < 0 || number >= 2 ** 32) {
188+
if (!isSigned32(number)) {
188189
return false;
189190
}
190191

0 commit comments

Comments
 (0)