Skip to content

Commit 935aaec

Browse files
feat: remove Brave bangs
1 parent e2647a4 commit 935aaec

File tree

6 files changed

+23
-113
lines changed

6 files changed

+23
-113
lines changed

src/backends/brave.ts

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/helpers/bang.ts

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import Brave from '../backends/brave';
21
import DuckDuckGo from '../backends/ddg';
32
import type {BangConfig, CustomBang} from '../models/backend';
43
import ConfigBangs from '../models/config-bangs';
@@ -7,16 +6,8 @@ import {isUrl} from '../utils/url';
76
import {engineName} from './search';
87
import time from '@/utils/time';
98

10-
export type Backend = DuckDuckGo | Brave;
11-
export type BackendId = 'brave' | 'ddg';
12-
let backend: DuckDuckGo | Brave;
13-
14-
export const backendId = new ConfigValue(
15-
'backend',
16-
'ddg',
17-
value => value === 'brave' || value === 'ddg',
18-
loadBackend,
19-
);
9+
export type Backend = DuckDuckGo;
10+
let backend: DuckDuckGo;
2011

2112
export function getBackendInstance(): Backend {
2213
return backend;
@@ -69,13 +60,12 @@ export const bangConfig: BangConfig = {
6960
),
7061
};
7162

72-
export async function loadBackend(id: string): Promise<void> {
63+
export async function loadBackend(): Promise<void> {
7364
if (backend) {
7465
backend.unhook();
7566
}
7667

77-
backend =
78-
id === 'brave' ? new Brave(bangConfig) : new DuckDuckGo(bangConfig);
68+
backend = new DuckDuckGo(bangConfig);
7969
await backend.fetch(1000);
8070
backend.hook();
8171
}

src/helpers/import-export.ts

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {backendId, bangConfig} from './bang';
1+
import {bangConfig} from './bang';
22
import {type BangConfig, type CustomBang} from '@/models/backend';
33

44
export type ConfigData = Record<
@@ -9,32 +9,26 @@ export type ConfigData = Record<
99
};
1010

1111
export async function getConfig(): Promise<ConfigData> {
12-
const result: ConfigData = {
13-
...Object.fromEntries(
14-
await Promise.all(
15-
Object.entries(bangConfig).map(async ([key, config]) => [
16-
key,
17-
await config.getValue(),
18-
]),
19-
),
12+
const result: ConfigData = Object.fromEntries(
13+
await Promise.all(
14+
Object.entries(bangConfig).map(async ([key, config]) => [
15+
key,
16+
await config.getValue(),
17+
]),
2018
),
21-
backendId: await backendId.getValue(),
22-
};
19+
);
2320
return result;
2421
}
2522

2623
export async function getDefaultConfig(): Promise<ConfigData> {
27-
const result: ConfigData = {
28-
...Object.fromEntries(
29-
await Promise.all(
30-
Object.entries(bangConfig).map(async ([key, config]) => [
31-
key,
32-
await config.getDefaultValue(),
33-
]),
34-
),
24+
const result: ConfigData = Object.fromEntries(
25+
await Promise.all(
26+
Object.entries(bangConfig).map(async ([key, config]) => [
27+
key,
28+
await config.getDefaultValue(),
29+
]),
3530
),
36-
backendId: await backendId.getDefaultValue(),
37-
};
31+
);
3832
return result;
3933
}
4034

@@ -65,19 +59,6 @@ export async function validateConfig(
6559
);
6660
}
6761

68-
if (key === 'backendId') {
69-
if (await backendId.validate(value as string)) {
70-
return;
71-
}
72-
73-
return (
74-
'Invalid value for key ' +
75-
JSON.stringify(key) +
76-
': ' +
77-
JSON.stringify(value)
78-
);
79-
}
80-
8162
return 'Invalid key ' + JSON.stringify(key);
8263
}),
8364
)
@@ -98,10 +79,7 @@ export async function updateConfig(
9879
return (
9980
await Promise.all(
10081
Object.entries(config).map(async ([key, value]) =>
101-
(await (key === 'backendId'
102-
? backendId
103-
: bangConfig[key as keyof BangConfig]
104-
).updateValue(
82+
(await bangConfig[key as keyof BangConfig].updateValue(
10583
// @ts-expect-error Seems like TypeScript won't allow this easily.
10684
value,
10785
validate,

src/pages/background.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import {loadBackend, backendId} from '../helpers/bang';
1+
import {loadBackend} from '../helpers/bang';
22

33
(async (): Promise<void> => {
4-
loadBackend(await backendId.getValue());
4+
loadBackend();
55
})();

src/pages/options/settings.tsx

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,12 @@ import Button from '@/components/button';
55
import Page from '@/components/page';
66
import Select from '@/components/select';
77
import Input from '@/components/input';
8-
import {backendId, bangConfig, bangConfig as config} from '@/helpers/bang';
8+
import {bangConfig, bangConfig as config} from '@/helpers/bang';
99
import {listEngines} from '@/helpers/search';
1010
import {usePromise} from '@/hooks/use-promise';
1111
import {useConfig} from '@/hooks/use-config';
1212
import time from '@/utils/time';
1313

14-
const databases = [
15-
{value: 'ddg', label: 'DuckDuckGo'},
16-
{value: 'brave', label: 'Brave'},
17-
];
18-
1914
export default function SettingsPage(): JSX.Element {
2015
const [callbacks, setCallbacks] = useState<Map<symbol, () => void>>(
2116
new Map(),
@@ -27,7 +22,6 @@ export default function SettingsPage(): JSX.Element {
2722
bangConfig.engineName,
2823
setCallbacks,
2924
);
30-
const [backend, setBackendState] = useConfig(backendId, setCallbacks);
3125
const [luckyBangUrl, setLuckyBangUrlState] = useConfig(
3226
config.luckyBangUrl,
3327
setCallbacks,
@@ -83,7 +77,6 @@ export default function SettingsPage(): JSX.Element {
8377
<div className={styles.settingsContainer}>
8478
{enginesList &&
8579
currentEngine &&
86-
backend &&
8780
luckyBangUrl &&
8881
siteFormat &&
8982
bangPrefix &&
@@ -105,20 +98,6 @@ export default function SettingsPage(): JSX.Element {
10598
callback={setCurrentEngineState}
10699
defaultItem={currentEngine}
107100
/>
108-
<Select
109-
items={databases}
110-
label="Bang database to use"
111-
getItemLabel={(item): string => item.label}
112-
getItemValue={(item): string =>
113-
item?.value ?? 'Invalid'
114-
}
115-
callback={(item): void => {
116-
setBackendState(item.value);
117-
}}
118-
defaultItem={databases.find(
119-
item => item.value === backend,
120-
)}
121-
/>
122101
<Input
123102
label="(Super) lucky bang URL"
124103
notes={[

tests/backends.test.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import superLuckyBangs from './backend/super-lucky-bangs';
1111
import superMixedSiteBangs from './backend/super-mixed-site-bangs';
1212
import {type Backend, bangConfig} from '@/helpers/bang';
1313
import DuckDuckGo from '@/backends/ddg';
14-
import Brave from '@/backends/brave';
1514

1615
vi.mock(
1716
'../src/models/config-bangs.ts',
@@ -74,11 +73,3 @@ describe('DuckDuckGo bangs', () => {
7473
testCommon(runTester);
7574
relativeBangs(runTester);
7675
});
77-
78-
describe('Brave bangs', () => {
79-
const backend = new Brave(bangConfig);
80-
const runTester = createTester(backend);
81-
fetchBackend(backend);
82-
registerCleanup();
83-
testCommon(runTester);
84-
});

0 commit comments

Comments
 (0)