From cd7833ce2400c9bb9e4b49c51c326783bfb03b75 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 31 Dec 2021 02:39:24 +0100 Subject: chore: Add import extensions preparing for ts 4.6 nodenext --- packages/main/src/compositionRoot.ts | 10 ++++----- .../main/src/controllers/__tests__/config.spec.ts | 7 +++--- .../src/controllers/__tests__/nativeTheme.spec.ts | 4 ++-- packages/main/src/controllers/config.ts | 7 +++--- packages/main/src/controllers/nativeTheme.ts | 5 +++-- packages/main/src/index.ts | 6 +++--- .../main/src/services/ConfigPersistenceService.ts | 4 ++-- .../services/impl/ConfigPersistenceServiceImpl.ts | 7 +++--- packages/main/src/stores/MainStore.ts | 4 ++-- packages/main/src/stores/SharedStore.ts | 2 +- packages/main/src/utils/disposer.ts | 23 ++++++++++++++++++++ packages/main/src/utils/index.ts | 25 ---------------------- .../__tests__/SophieRendererImpl.spec.ts | 2 +- packages/preload/src/index.ts | 2 +- packages/renderer/src/components/App.tsx | 4 ++-- .../src/components/BrowserViewPlaceholder.tsx | 2 +- packages/renderer/src/components/Sidebar.tsx | 2 +- packages/renderer/src/components/StoreProvider.tsx | 2 +- packages/renderer/src/components/ThemeProvider.tsx | 2 +- .../src/components/ToggleDarkModeButton.tsx | 2 +- packages/renderer/src/index.tsx | 10 ++++----- packages/renderer/src/stores/RendererStore.ts | 2 +- packages/service-shared/src/index.ts | 6 +++--- .../shared/src/contextBridge/SophieRenderer.ts | 2 +- packages/shared/src/index.ts | 14 ++++++------ packages/shared/src/stores/Config.ts | 2 +- packages/shared/src/stores/SharedStore.ts | 2 +- 27 files changed, 81 insertions(+), 79 deletions(-) create mode 100644 packages/main/src/utils/disposer.ts delete mode 100644 packages/main/src/utils/index.ts diff --git a/packages/main/src/compositionRoot.ts b/packages/main/src/compositionRoot.ts index d420bd6..bf0f92e 100644 --- a/packages/main/src/compositionRoot.ts +++ b/packages/main/src/compositionRoot.ts @@ -20,11 +20,11 @@ import { app } from 'electron'; -import { initConfig } from './controllers/config'; -import { initNativeTheme } from './controllers/nativeTheme'; -import { ConfigPersistenceServiceImpl } from './services/impl/ConfigPersistenceServiceImpl'; -import { MainStore } from './stores/MainStore'; -import { Disposer } from './utils'; +import { initConfig } from './controllers/config.js'; +import { initNativeTheme } from './controllers/nativeTheme.js'; +import { ConfigPersistenceServiceImpl } from './services/impl/ConfigPersistenceServiceImpl.js'; +import { MainStore } from './stores/MainStore.js'; +import { Disposer } from './utils/disposer.js'; export async function init(store: MainStore): Promise { const configPersistenceService = new ConfigPersistenceServiceImpl(app.getPath('userData')); diff --git a/packages/main/src/controllers/__tests__/config.spec.ts b/packages/main/src/controllers/__tests__/config.spec.ts index 9471ca9..eea7f1e 100644 --- a/packages/main/src/controllers/__tests__/config.spec.ts +++ b/packages/main/src/controllers/__tests__/config.spec.ts @@ -23,9 +23,10 @@ import { mocked } from 'jest-mock'; import ms from 'ms'; import { initConfig } from '../config'; -import type { ConfigPersistenceService } from '../../services/ConfigPersistenceService'; -import { Config, config as configModel } from '../../stores/Config'; -import { Disposer, silenceLogger } from '../../utils'; +import type { ConfigPersistenceService } from '../../services/ConfigPersistenceService.js'; +import { Config, config as configModel } from '../../stores/Config.js'; +import { Disposer } from '../../utils/disposer.js'; +import { silenceLogger } from '../../utils/logging.js'; let config: Config; let persistenceService: ConfigPersistenceService = { diff --git a/packages/main/src/controllers/__tests__/nativeTheme.spec.ts b/packages/main/src/controllers/__tests__/nativeTheme.spec.ts index cfb557c..cffeace 100644 --- a/packages/main/src/controllers/__tests__/nativeTheme.spec.ts +++ b/packages/main/src/controllers/__tests__/nativeTheme.spec.ts @@ -21,8 +21,8 @@ import { jest } from '@jest/globals'; import { mocked } from 'jest-mock'; -import { createMainStore, MainStore } from '../../stores/MainStore'; -import { Disposer } from '../../utils'; +import { createMainStore, MainStore } from '../../stores/MainStore.js'; +import { Disposer } from '../../utils/disposer.js'; let shouldUseDarkColors = false; diff --git a/packages/main/src/controllers/config.ts b/packages/main/src/controllers/config.ts index d3559c8..ec23e8f 100644 --- a/packages/main/src/controllers/config.ts +++ b/packages/main/src/controllers/config.ts @@ -22,9 +22,10 @@ import debounce from 'lodash-es/debounce'; import ms from 'ms'; import { applySnapshot, getSnapshot, onSnapshot } from 'mobx-state-tree'; -import type { ConfigPersistenceService } from '../services/ConfigPersistenceService'; -import type { Config, ConfigSnapshotOut } from '../stores/Config'; -import { Disposer, getLogger } from '../utils'; +import type { ConfigPersistenceService } from '../services/ConfigPersistenceService.js'; +import type { Config, ConfigSnapshotOut } from '../stores/Config.js'; +import { Disposer } from '../utils/disposer.js'; +import { getLogger } from '../utils/logging.js'; const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s'); diff --git a/packages/main/src/controllers/nativeTheme.ts b/packages/main/src/controllers/nativeTheme.ts index 9edb4e8..c291a16 100644 --- a/packages/main/src/controllers/nativeTheme.ts +++ b/packages/main/src/controllers/nativeTheme.ts @@ -21,8 +21,9 @@ import { nativeTheme } from 'electron'; import { autorun } from 'mobx'; -import type { MainStore } from '../stores/MainStore'; -import { Disposer, getLogger } from '../utils'; +import type { MainStore } from '../stores/MainStore.js'; +import { Disposer } from '../utils/disposer.js'; +import { getLogger } from '../utils/logging.js'; const log = getLogger('nativeTheme'); diff --git a/packages/main/src/index.ts b/packages/main/src/index.ts index c258481..70ee88b 100644 --- a/packages/main/src/index.ts +++ b/packages/main/src/index.ts @@ -41,12 +41,12 @@ import { } from '@sophie/shared'; import { URL } from 'url'; -import { init } from './compositionRoot'; +import { init } from './compositionRoot.js'; import { installDevToolsExtensions, openDevToolsWhenReady, -} from './devTools'; -import { createMainStore } from './stores/MainStore'; +} from './devTools.js'; +import { createMainStore } from './stores/MainStore.js'; const isDevelopment = import.meta.env.MODE === 'development'; diff --git a/packages/main/src/services/ConfigPersistenceService.ts b/packages/main/src/services/ConfigPersistenceService.ts index b3ad162..0033cca 100644 --- a/packages/main/src/services/ConfigPersistenceService.ts +++ b/packages/main/src/services/ConfigPersistenceService.ts @@ -18,8 +18,8 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import type { ConfigSnapshotOut } from '../stores/Config'; -import { Disposer } from '../utils'; +import type { ConfigSnapshotOut } from '../stores/Config.js'; +import { Disposer } from '../utils/disposer.js'; export type ReadConfigResult = { found: true; data: unknown; } | { found: false; }; diff --git a/packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts b/packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts index bffc38c..22b7d65 100644 --- a/packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts +++ b/packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts @@ -24,9 +24,10 @@ import JSON5 from 'json5'; import throttle from 'lodash-es/throttle'; import { join } from 'path'; -import type { ConfigPersistenceService, ReadConfigResult } from '../ConfigPersistenceService'; -import type { ConfigSnapshotOut } from '../../stores/Config'; -import { Disposer, getLogger } from '../../utils'; +import type { ConfigPersistenceService, ReadConfigResult } from '../ConfigPersistenceService.js'; +import type { ConfigSnapshotOut } from '../../stores/Config.js'; +import { Disposer } from '../../utils/disposer.js'; +import { getLogger } from '../../utils/logging.js'; const log = getLogger('configPersistence'); diff --git a/packages/main/src/stores/MainStore.ts b/packages/main/src/stores/MainStore.ts index bab03c2..5a60585 100644 --- a/packages/main/src/stores/MainStore.ts +++ b/packages/main/src/stores/MainStore.ts @@ -21,8 +21,8 @@ import { applySnapshot, Instance, types } from 'mobx-state-tree'; import { BrowserViewBounds } from '@sophie/shared'; -import type { Config } from './Config'; -import { sharedStore } from './SharedStore'; +import type { Config } from './Config.js'; +import { sharedStore } from './SharedStore.js'; export const mainStore = types.model('MainStore', { browserViewBounds: types.optional(types.model('BrowserViewBounds', { diff --git a/packages/main/src/stores/SharedStore.ts b/packages/main/src/stores/SharedStore.ts index e20150d..31b8551 100644 --- a/packages/main/src/stores/SharedStore.ts +++ b/packages/main/src/stores/SharedStore.ts @@ -21,7 +21,7 @@ import { Instance, types } from 'mobx-state-tree'; import { sharedStore as originalSharedStore } from '@sophie/shared'; -import { config } from './Config'; +import { config } from './Config.js'; export type { SharedStoreSnapshotIn, SharedStoreSnapshotOut } from '@sophie/shared'; diff --git a/packages/main/src/utils/disposer.ts b/packages/main/src/utils/disposer.ts new file mode 100644 index 0000000..0d469dd --- /dev/null +++ b/packages/main/src/utils/disposer.ts @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2021-2022 Kristóf Marussy + * + * This file is part of Sophie. + * + * Sophie is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { IDisposer } from 'mobx-state-tree'; + +export type Disposer = IDisposer; diff --git a/packages/main/src/utils/index.ts b/packages/main/src/utils/index.ts deleted file mode 100644 index 2b85989..0000000 --- a/packages/main/src/utils/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2021-2022 Kristóf Marussy - * - * This file is part of Sophie. - * - * Sophie is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import { IDisposer } from 'mobx-state-tree'; - -export type Disposer = IDisposer; - -export { getLogger, silenceLogger } from './logging'; diff --git a/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts b/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts index fdd1cc5..070ebae 100644 --- a/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts +++ b/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts @@ -40,7 +40,7 @@ jest.unstable_mockModule('electron', () => ({ const { ipcRenderer } = await import('electron'); -const { createSophieRenderer } = await import('../SophieRendererImpl'); +const { createSophieRenderer } = await import('../SophieRendererImpl.js'); const event: Electron.IpcRendererEvent = null as unknown as Electron.IpcRendererEvent; diff --git a/packages/preload/src/index.ts b/packages/preload/src/index.ts index de91742..f6c720a 100644 --- a/packages/preload/src/index.ts +++ b/packages/preload/src/index.ts @@ -20,7 +20,7 @@ import { contextBridge } from 'electron'; -import { createSophieRenderer } from './contextBridge/SophieRendererImpl'; +import { createSophieRenderer } from './contextBridge/SophieRendererImpl.js'; const isDevelopment = import.meta.env.MODE === 'development'; diff --git a/packages/renderer/src/components/App.tsx b/packages/renderer/src/components/App.tsx index b627fa7..56041a7 100644 --- a/packages/renderer/src/components/App.tsx +++ b/packages/renderer/src/components/App.tsx @@ -21,8 +21,8 @@ import Box from '@mui/material/Box'; import React from 'react'; -import { BrowserViewPlaceholder } from './BrowserViewPlaceholder'; -import { Sidebar } from './Sidebar'; +import { BrowserViewPlaceholder } from './BrowserViewPlaceholder.jsx'; +import { Sidebar } from './Sidebar.jsx'; export function App(): JSX.Element { return ( diff --git a/packages/renderer/src/components/BrowserViewPlaceholder.tsx b/packages/renderer/src/components/BrowserViewPlaceholder.tsx index 1ea03c8..2c7024e 100644 --- a/packages/renderer/src/components/BrowserViewPlaceholder.tsx +++ b/packages/renderer/src/components/BrowserViewPlaceholder.tsx @@ -23,7 +23,7 @@ import { observer } from 'mobx-react-lite'; import Box from '@mui/material/Box'; import React, { useCallback, useRef } from 'react'; -import { useStore } from './StoreProvider'; +import { useStore } from './StoreProvider.jsx'; export const BrowserViewPlaceholder = observer(function BrowserViewPlaceholder() { const { diff --git a/packages/renderer/src/components/Sidebar.tsx b/packages/renderer/src/components/Sidebar.tsx index 6c79932..a0086d2 100644 --- a/packages/renderer/src/components/Sidebar.tsx +++ b/packages/renderer/src/components/Sidebar.tsx @@ -21,7 +21,7 @@ import Box from '@mui/material/Box'; import React from 'react'; -import { ToggleDarkModeButton } from './ToggleDarkModeButton'; +import { ToggleDarkModeButton } from './ToggleDarkModeButton.jsx'; export function Sidebar(): JSX.Element { return ( diff --git a/packages/renderer/src/components/StoreProvider.tsx b/packages/renderer/src/components/StoreProvider.tsx index da1e699..fbe9b2a 100644 --- a/packages/renderer/src/components/StoreProvider.tsx +++ b/packages/renderer/src/components/StoreProvider.tsx @@ -20,7 +20,7 @@ import React, { createContext, useContext } from 'react'; -import type { RendererStore } from '../stores/RendererStore'; +import type { RendererStore } from '../stores/RendererStore.jsx'; const StoreContext = createContext(null); diff --git a/packages/renderer/src/components/ThemeProvider.tsx b/packages/renderer/src/components/ThemeProvider.tsx index 9215f5c..9313725 100644 --- a/packages/renderer/src/components/ThemeProvider.tsx +++ b/packages/renderer/src/components/ThemeProvider.tsx @@ -25,7 +25,7 @@ import { } from '@mui/material/styles'; import React from 'react'; -import { useStore } from './StoreProvider'; +import { useStore } from './StoreProvider.jsx'; export const ThemeProvider = observer(function ThemeProvider({ children }: { children: JSX.Element | JSX.Element[], diff --git a/packages/renderer/src/components/ToggleDarkModeButton.tsx b/packages/renderer/src/components/ToggleDarkModeButton.tsx index 1b6757e..b48cc32 100644 --- a/packages/renderer/src/components/ToggleDarkModeButton.tsx +++ b/packages/renderer/src/components/ToggleDarkModeButton.tsx @@ -24,7 +24,7 @@ import LightModeIcon from '@mui/icons-material/LightMode'; import IconButton from '@mui/material/IconButton'; import React from 'react'; -import { useStore } from './StoreProvider'; +import { useStore } from './StoreProvider.jsx'; export const ToggleDarkModeButton = observer(function ToggleDarkModeButton() { const { shared: { shouldUseDarkColors }, toggleDarkMode } = useStore(); diff --git a/packages/renderer/src/index.tsx b/packages/renderer/src/index.tsx index 5e943b3..89de00f 100644 --- a/packages/renderer/src/index.tsx +++ b/packages/renderer/src/index.tsx @@ -26,11 +26,11 @@ import CssBaseline from "@mui/material/CssBaseline"; import React from 'react'; import { render } from 'react-dom'; -import { App } from './components/App'; -import { StoreProvider } from './components/StoreProvider'; -import { ThemeProvider } from './components/ThemeProvider'; -import { exposeToReduxDevtools, hotReloadServices } from './devTools'; -import { createAndConnectRendererStore } from './stores/RendererStore'; +import { App } from './components/App.jsx'; +import { StoreProvider } from './components/StoreProvider.jsx'; +import { ThemeProvider } from './components/ThemeProvider.jsx'; +import { exposeToReduxDevtools, hotReloadServices } from './devTools.js'; +import { createAndConnectRendererStore } from './stores/RendererStore.js'; const isDevelopment = import.meta.env.MODE === 'development'; diff --git a/packages/renderer/src/stores/RendererStore.ts b/packages/renderer/src/stores/RendererStore.ts index 12f6786..3dfedca 100644 --- a/packages/renderer/src/stores/RendererStore.ts +++ b/packages/renderer/src/stores/RendererStore.ts @@ -31,7 +31,7 @@ import { ThemeSource, } from '@sophie/shared'; -import { getEnv, RendererEnv } from './RendererEnv'; +import { getEnv, RendererEnv } from './RendererEnv.js'; export const rendererStore = types.model('RendererStore', { shared: types.optional(sharedStore, {}), diff --git a/packages/service-shared/src/index.ts b/packages/service-shared/src/index.ts index 564ebe8..d8b5d0e 100644 --- a/packages/service-shared/src/index.ts +++ b/packages/service-shared/src/index.ts @@ -18,13 +18,13 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -export { ServiceToMainIpcMessage } from './ipc'; +export { ServiceToMainIpcMessage } from './ipc.js'; export type { UnreadCount, WebSource, -} from './schemas'; +} from './schemas.js'; export { unreadCount, webSource, -} from './schemas'; +} from './schemas.js'; diff --git a/packages/shared/src/contextBridge/SophieRenderer.ts b/packages/shared/src/contextBridge/SophieRenderer.ts index fc43b6e..285b373 100644 --- a/packages/shared/src/contextBridge/SophieRenderer.ts +++ b/packages/shared/src/contextBridge/SophieRenderer.ts @@ -20,7 +20,7 @@ import { SharedStoreListener } from '../stores/SharedStore'; -import { Action } from '../schemas'; +import { Action } from '../schemas.js'; export interface SophieRenderer { onSharedStoreChange(listener: SharedStoreListener): Promise; diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 2f7146c..f0ae5dc 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -23,26 +23,26 @@ export type { SophieRenderer } from './contextBridge/SophieRenderer'; export { MainToRendererIpcMessage, RendererToMainIpcMessage, -} from './ipc'; +} from './ipc.js'; export type { Action, BrowserViewBounds, ThemeSource, -} from './schemas'; +} from './schemas.js'; export { action, browserViewBounds, themeSource, -} from './schemas'; +} from './schemas.js'; -export type { Config, ConfigSnapshotIn, ConfigSnapshotOut } from './stores/Config'; -export { config } from './stores/Config'; +export type { Config, ConfigSnapshotIn, ConfigSnapshotOut } from './stores/Config.js'; +export { config } from './stores/Config.js'; export type { SharedStore, SharedStoreListener, SharedStoreSnapshotIn, SharedStoreSnapshotOut, -} from './stores/SharedStore'; -export { sharedStore } from './stores/SharedStore'; +} from './stores/SharedStore.js'; +export { sharedStore } from './stores/SharedStore.js'; diff --git a/packages/shared/src/stores/Config.ts b/packages/shared/src/stores/Config.ts index 432945c..4b17d3c 100644 --- a/packages/shared/src/stores/Config.ts +++ b/packages/shared/src/stores/Config.ts @@ -25,7 +25,7 @@ import { SnapshotOut, } from 'mobx-state-tree'; -import { themeSource } from '../schemas'; +import { themeSource } from '../schemas.js'; export const config = types.model('Config', { themeSource: types.optional(types.enumeration(themeSource.options), 'system'), diff --git a/packages/shared/src/stores/SharedStore.ts b/packages/shared/src/stores/SharedStore.ts index c6c3ddc..8aefcdb 100644 --- a/packages/shared/src/stores/SharedStore.ts +++ b/packages/shared/src/stores/SharedStore.ts @@ -26,7 +26,7 @@ import { SnapshotOut, } from 'mobx-state-tree'; -import { config } from './Config'; +import { config } from './Config.js'; export const sharedStore = types.model('SharedStore', { config: types.optional(config, {}), -- cgit v1.2.3-54-g00ecf