Signal-Desktop/ts/windows/configure.ts

45 lines
1.5 KiB
TypeScript
Raw Normal View History

// Copyright 2018-2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import url from 'url';
import { ipcRenderer } from 'electron';
2021-09-18 00:30:08 +00:00
import { setupI18n } from '../util/setupI18n';
import {
getEnvironment,
parseEnvironment,
setEnvironment,
} from '../environment';
import { strictAssert } from '../util/assert';
2021-09-17 22:24:21 +00:00
import { createSetting } from '../util/preload';
import { initialize as initializeLogging } from '../logging/set_up_renderer_logging';
2021-09-29 18:37:30 +00:00
import { waitForSettingsChange } from './waitForSettingsChange';
const config = url.parse(window.location.toString(), true).query;
const { locale } = config;
strictAssert(locale, 'locale could not be parsed from config');
strictAssert(typeof locale === 'string', 'locale is not a string');
const localeMessages = ipcRenderer.sendSync('locale-data');
setEnvironment(parseEnvironment(config.environment));
2021-09-17 22:24:21 +00:00
strictAssert(Boolean(window.SignalContext), 'context must be defined');
initializeLogging();
export const SignalWindow = {
2021-09-17 22:24:21 +00:00
Settings: {
themeSetting: createSetting('themeSetting', { setter: false }),
2021-09-29 18:37:30 +00:00
waitForChange: waitForSettingsChange,
2021-09-17 22:24:21 +00:00
},
config,
2021-09-17 22:24:21 +00:00
context: window.SignalContext,
getAppInstance: (): string | undefined =>
config.appInstance ? String(config.appInstance) : undefined,
getEnvironment,
getNodeVersion: (): string => String(config.node_version),
getVersion: (): string => String(config.version),
2021-09-18 00:30:08 +00:00
i18n: setupI18n(locale, localeMessages),
log: window.SignalWindow.log,
};