diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml
index fe9c9ec..00e3693 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@ -20,7 +20,9 @@ jobs:
node-version: 24
- name: Install dependencies
run: yarn --immutable
- - name: Run checks
+ - name: Run lint
run: yarn lint
+ - name: Run typecheck
+ run: yarn typecheck
- name: Run tests
run: yarn test
diff --git a/package.json b/package.json
index 54ad9b9..7235ee3 100644
--- a/package.json
+++ b/package.json
@@ -91,6 +91,7 @@
"coverage:badge": "node ./scripts/generate-coverage-badge.mjs",
"lint": "eslint --ignore-path .gitignore --ext .ts,.tsx,.yml,.yaml .",
"fix": "yarn lint --fix",
+ "typecheck": "tsc --noEmit",
"test": "vitest run",
"test:coverage": "vitest run --coverage",
"test:watch": "vitest watch",
diff --git a/src/resources/reports.tsx b/src/resources/reports.tsx
index f3cc077..bff19e8 100644
--- a/src/resources/reports.tsx
+++ b/src/resources/reports.tsx
@@ -88,11 +88,13 @@ const ReportShowActions = () => {
);
};
+const ReceivedTsField = (props: any) => ;
+
export const ReportList = (props: ListProps) => (
} sort={{ field: "received_ts", order: "DESC" }}>
-
+
diff --git a/src/synapse/dataProvider.test.ts b/src/synapse/dataProvider.test.ts
index c61f768..45a9b5f 100644
--- a/src/synapse/dataProvider.test.ts
+++ b/src/synapse/dataProvider.test.ts
@@ -376,37 +376,37 @@ describe("dataProvider", () => {
it("deletes various resources using their custom configurations", async () => {
fetchMock.mockResponse(JSON.stringify({}));
- await dataProvider.delete("rooms", { id: "room1", previousData: {} });
+ await dataProvider.delete("rooms", { id: "room1", previousData: { id: "room1" } });
expect(fetchMock).toHaveBeenCalledWith(
"http://localhost/_synapse/admin/v2/rooms/room1",
expect.objectContaining({ method: "DELETE", body: '{"block":false}' })
);
- await dataProvider.delete("users_media", { id: "media1", previousData: {} });
+ await dataProvider.delete("users_media", { id: "media1", previousData: { id: "media1" } });
expect(fetchMock).toHaveBeenCalledWith(
"http://localhost/_synapse/admin/v1/media/matrix.example.com/media1",
expect.objectContaining({ method: "DELETE" })
);
- await dataProvider.delete("protect_media", { id: "media1", previousData: {} });
+ await dataProvider.delete("protect_media", { id: "media1", previousData: { id: "media1" } });
expect(fetchMock).toHaveBeenCalledWith(
"http://localhost/_synapse/admin/v1/media/unprotect/media1",
expect.objectContaining({ method: "POST" })
);
- await dataProvider.delete("quarantine_media", { id: "media1", previousData: {} });
+ await dataProvider.delete("quarantine_media", { id: "media1", previousData: { id: "media1" } });
expect(fetchMock).toHaveBeenCalledWith(
"http://localhost/_synapse/admin/v1/media/unquarantine/matrix.example.com/media1",
expect.objectContaining({ method: "POST" })
);
- await dataProvider.delete("forward_extremities", { id: "room1", previousData: {} });
+ await dataProvider.delete("forward_extremities", { id: "room1", previousData: { id: "room1" } });
expect(fetchMock).toHaveBeenCalledWith(
"http://localhost/_synapse/admin/v1/rooms/room1/forward_extremities",
expect.objectContaining({ method: "DELETE" })
);
- await dataProvider.delete("destinations", { id: "dest1", previousData: {} });
+ await dataProvider.delete("destinations", { id: "dest1", previousData: { id: "dest1" } });
expect(fetchMock).toHaveBeenCalledWith(
"http://localhost/_synapse/admin/v1/federation/destinations/dest1/reset_connection",
expect.objectContaining({ method: "POST" })
@@ -415,11 +415,11 @@ describe("dataProvider", () => {
it("deletes single resources using custom methods and fallback body logic", async () => {
fetchMock.mockResponseOnce(JSON.stringify({}));
- await deleteResource("devices", { id: "D1", previousData: { user_id: "@u:example.com" } });
+ await deleteResource("devices", { id: "D1", previousData: { id: "D1", user_id: "@u:example.com" } });
expect(fetchMock.mock.calls[0]?.[1]?.body).toBeNull();
fetchMock.mockResponseOnce(JSON.stringify({ id: "deleted" }));
- await deleteResource("users", { id: "@user:matrix.example.com", previousData: {} });
+ await deleteResource("users", { id: "@user:matrix.example.com", previousData: { id: "@user:matrix.example.com" } });
expect(fetchMock.mock.calls[1]?.[1]?.method).toBe("POST");
expect(fetchMock.mock.calls[1]?.[1]?.body).toBe('{"erase":true}');
});
diff --git a/tsconfig.json b/tsconfig.json
index 2b59fee..f8676cf 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -57,7 +57,7 @@
/* Experimental Options */
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
- "skipLibCheck": false
+ "skipLibCheck": true
},
"include": ["src"],
"references": [{ "path": "./tsconfig.vite.json" }]