### Required

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/PreviewModal.ts#L19-L19)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L22-L22)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L24-L24)[\[4\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L27-L27)[\[5\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L39-L39)[\[6\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L41-L41)[\[7\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L50-L50)[\[8\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L55-L55)[\[9\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L57-L57)[\[10\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L60-L60)[\[11\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L66-L66)[\[12\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L67-L67)[\[13\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L79-L79)[\[14\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L80-L80)[\[15\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L185-L185)[\[16\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L186-L186)[\[17\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L188-L188)[\[18\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L210-L210)[\[19\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L221-L221)[\[20\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L225-L225)[\[21\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L36-L36)[\[22\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L137-L137)[\[23\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L146-L146)[\[24\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L150-L150)[\[25\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L153-L153)[\[26\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L156-L156)[\[27\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L160-L160)[\[28\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L215-L215)[\[29\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L278-L278)[\[30\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/main.ts#L22-L22)[\[31\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/main.ts#L29-L29)[\[32\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/main.ts#L33-L33)
Use sentence case for UI text.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L22-L22)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L24-L24)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L50-L50)
Use `new Setting(containerEl).setName(...).setHeading()` instead of creating HTML heading elements directly.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L111-L120)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L142-L152)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SettingsTab.ts#L172-L181)
Promise returned in function argument where a void return was expected.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L24-L53)
Promise-returning method provided where a void return was expected by extended/implemented type 'Modal'.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L87-L87)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L88-L88)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L254-L254)[\[4\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L255-L257)[\[5\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L258-L258)[\[6\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L272-L274)[\[7\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L364-L366)[\[8\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L367-L369)[\[9\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L248-L250)[\[10\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L357-L357)[\[11\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L358-L358)[\[12\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/CardExtractor.ts#L67-L67)
This assertion is unnecessary since it does not change the type of the expression.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L372-L372)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L196-L196)
Empty block statement.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/main.ts#L24-L24)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/main.ts#L35-L35)
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/main.ts#L45-L45)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L170-L170)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L311-L311)
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/main.ts#L51-L51)
Async method 'openSyncDialog' has no 'await' expression.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L7-L7)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L421-L421)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L438-L438)[\[4\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L438-L438)[\[5\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L474-L474)[\[6\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/CardExtractor.ts#L44-L44)
Unexpected any. Specify a different type.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L375-L375)
Unnecessary escape character: \s.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L427-L427)
Unexpected use of 'fetch'. Use the built-in `requestUrl` function instead of `fetch` for network requests in Obsidian.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/CardExtractor.ts#L20-L20)
Async method 'extractCardsFromCurrentNote' has no 'await' expression.



---

### Optional

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L3-L3)
'CardAction' is defined but never used.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L52-L52)
'resultContainer' is assigned a value but never used.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L61-L61)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L22-L22)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L196-L196)
'error' is defined but never used.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L152-L152)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L233-L233)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L372-L372)[\[4\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L331-L331)[\[5\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L339-L339)[\[6\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L359-L359)[\[7\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L405-L405)
'e' is defined but never used.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L278-L278)
'title' is assigned a value but never used.

[\[1\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/dialogs/SyncModal.ts#L330-L330)[\[2\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L81-L81)[\[3\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L291-L291)[\[4\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L363-L363)[\[5\]](https://github.com/teamsuperpanda/pandabridge/blob/a4c3ea328e2c37b696fde8a329ee5ebb780ee65f/src/sync/AnkiConnector.ts#L413-L413)
'err' is defined but never used.

