Bump TypeScript to 5.3 with verbatimModuleSyntax
This commit upgrades TypeScript to the latest version 5.3 and introduces `verbatimModuleSyntax` in line with the official Vue guide recommendatinos (vuejs/docs#2592). By enforcing `import type` for type-only imports, this commit improves code clarity and supports tooling optimization, ensuring imports are only bundled when necessary for runtime. Changes: - Bump TypeScript to 5.3.3 across the project. - Adjust import statements to utilize `import type` where applicable, promoting cleaner and more efficient code.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { PlatformTimer } from '@/application/Common/Timing/PlatformTimer';
|
||||
import { Timer } from '@/application/Common/Timing/Timer';
|
||||
import type { Timer } from '@/application/Common/Timing/Timer';
|
||||
|
||||
export type AnimationFunction = (element: Element) => Promise<void>;
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, PropType } from 'vue';
|
||||
import { defineComponent, type PropType } from 'vue';
|
||||
import { NonCollapsing } from '@/presentation/components/Scripts/View/Cards/NonCollapsingDirective';
|
||||
import { IconName } from '@/presentation/components/Shared/Icon/IconName';
|
||||
import type { IconName } from '@/presentation/components/Shared/Icon/IconName';
|
||||
import AppIcon from '@/presentation/components/Shared/Icon/AppIcon.vue';
|
||||
|
||||
export default defineComponent({
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Clipboard } from './Clipboard';
|
||||
import type { Clipboard } from './Clipboard';
|
||||
|
||||
export type NavigatorClipboard = typeof globalThis.navigator.clipboard;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { FunctionKeys } from '@/TypeHelpers';
|
||||
import type { FunctionKeys } from '@/TypeHelpers';
|
||||
import { BrowserClipboard } from './BrowserClipboard';
|
||||
import { Clipboard } from './Clipboard';
|
||||
import type { Clipboard } from './Clipboard';
|
||||
|
||||
export function useClipboard(clipboard: Clipboard = new BrowserClipboard()) {
|
||||
// Bind functions for direct use from destructured assignments such as `const { .. } = ...`.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
|
||||
import { Dialog } from '@/presentation/common/Dialog';
|
||||
import type { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
|
||||
import type { Dialog } from '@/presentation/common/Dialog';
|
||||
import { BrowserDialog } from '@/infrastructure/Dialog/Browser/BrowserDialog';
|
||||
import { decorateWithLogging } from '@/infrastructure/Dialog/LoggingDialogDecorator';
|
||||
import { ClientLoggerFactory } from '../Log/ClientLoggerFactory';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Dialog } from '@/presentation/common/Dialog';
|
||||
import type { Dialog } from '@/presentation/common/Dialog';
|
||||
import { CurrentEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironmentFactory';
|
||||
import { createEnvironmentSpecificLoggedDialog } from './ClientDialogFactory';
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
|
||||
import type { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
|
||||
import { ConsoleLogger } from '@/infrastructure/Log/ConsoleLogger';
|
||||
import { Logger } from '@/application/Common/Log/Logger';
|
||||
import type { Logger } from '@/application/Common/Log/Logger';
|
||||
import { NoopLogger } from '@/infrastructure/Log/NoopLogger';
|
||||
import { WindowInjectedLogger } from '@/infrastructure/Log/WindowInjectedLogger';
|
||||
import { CurrentEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironmentFactory';
|
||||
import { LoggerFactory } from './LoggerFactory';
|
||||
import type { LoggerFactory } from './LoggerFactory';
|
||||
|
||||
export class ClientLoggerFactory implements LoggerFactory {
|
||||
public static readonly Current: LoggerFactory = new ClientLoggerFactory();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Logger } from '@/application/Common/Log/Logger';
|
||||
import type { Logger } from '@/application/Common/Log/Logger';
|
||||
|
||||
export interface LoggerFactory {
|
||||
readonly logger: Logger;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ClientLoggerFactory } from './ClientLoggerFactory';
|
||||
import { LoggerFactory } from './LoggerFactory';
|
||||
import type { LoggerFactory } from './LoggerFactory';
|
||||
|
||||
export function useLogger(factory: LoggerFactory = ClientLoggerFactory.Current) {
|
||||
return {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { IApplication } from '@/domain/IApplication';
|
||||
import type { IApplication } from '@/domain/IApplication';
|
||||
|
||||
export function useApplication(application: IApplication) {
|
||||
return {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { onUnmounted } from 'vue';
|
||||
import { EventSubscriptionCollection } from '@/infrastructure/Events/EventSubscriptionCollection';
|
||||
import { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
|
||||
import type { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
|
||||
|
||||
export function useAutoUnsubscribedEvents(
|
||||
events: IEventSubscriptionCollection = new EventSubscriptionCollection(),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { WindowVariables } from '@/infrastructure/WindowVariables/WindowVariables';
|
||||
import type { WindowVariables } from '@/infrastructure/WindowVariables/WindowVariables';
|
||||
|
||||
export function useCodeRunner(
|
||||
window: WindowVariables = globalThis.window,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { shallowRef, shallowReadonly } from 'vue';
|
||||
import { IApplicationContext, IReadOnlyApplicationContext } from '@/application/Context/IApplicationContext';
|
||||
import { ICategoryCollectionState, IReadOnlyCategoryCollectionState } from '@/application/Context/State/ICategoryCollectionState';
|
||||
import { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
|
||||
import type { IApplicationContext, IReadOnlyApplicationContext } from '@/application/Context/IApplicationContext';
|
||||
import type { ICategoryCollectionState, IReadOnlyCategoryCollectionState } from '@/application/Context/State/ICategoryCollectionState';
|
||||
import type { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
|
||||
|
||||
export function useCollectionState(
|
||||
context: IApplicationContext,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ref } from 'vue';
|
||||
import { IApplicationCode } from '@/application/Context/State/Code/IApplicationCode';
|
||||
import { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
|
||||
import type { IApplicationCode } from '@/application/Context/State/Code/IApplicationCode';
|
||||
import type { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
|
||||
import { useCollectionState } from './UseCollectionState';
|
||||
|
||||
export function useCurrentCode(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
|
||||
import type { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
|
||||
|
||||
export function useRuntimeEnvironment(environment: RuntimeEnvironment) {
|
||||
return environment;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { WindowVariables } from '@/infrastructure/WindowVariables/WindowVariables';
|
||||
import type { WindowVariables } from '@/infrastructure/WindowVariables/WindowVariables';
|
||||
|
||||
export function useScriptDiagnosticsCollector(
|
||||
window: Partial<WindowVariables> = globalThis.window,
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
<script lang="ts">
|
||||
import {
|
||||
defineComponent,
|
||||
PropType,
|
||||
type PropType,
|
||||
inject,
|
||||
} from 'vue';
|
||||
import { useSvgLoader } from './UseSvgLoader';
|
||||
import { IconName } from './IconName';
|
||||
import type { IconName } from './IconName';
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import {
|
||||
WatchSource, shallowReadonly, ref, watch,
|
||||
type WatchSource, shallowReadonly, ref, watch,
|
||||
} from 'vue';
|
||||
import { AsyncLazy } from '@/infrastructure/Threading/AsyncLazy';
|
||||
import { IconName } from './IconName';
|
||||
import type { IconName } from './IconName';
|
||||
|
||||
export function useSvgLoader(
|
||||
iconWatcher: WatchSource<IconName>,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Ref, onBeforeUnmount, watch } from 'vue';
|
||||
import { type Ref, onBeforeUnmount, watch } from 'vue';
|
||||
import { getWindowDomState } from './WindowScrollDomStateAccessor';
|
||||
import { ScrollDomStateAccessor } from './ScrollDomStateAccessor';
|
||||
import type { ScrollDomStateAccessor } from './ScrollDomStateAccessor';
|
||||
|
||||
export function useLockBodyBackgroundScroll(
|
||||
isActive: Ref<boolean>,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ScrollDomStateAccessor } from './ScrollDomStateAccessor';
|
||||
import type { ScrollDomStateAccessor } from './ScrollDomStateAccessor';
|
||||
|
||||
const HtmlElement = document.documentElement;
|
||||
const BodyElement = document.body;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Ref, computed, watch } from 'vue';
|
||||
import { type Ref, computed, watch } from 'vue';
|
||||
|
||||
/**
|
||||
* This function monitors a set of conditions (represented as refs) and
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Ref, watchEffect } from 'vue';
|
||||
import { type Ref, watchEffect } from 'vue';
|
||||
|
||||
/**
|
||||
* Manages focus transitions, ensuring good usability and accessibility.
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import {
|
||||
useFloating, arrow, shift, flip, Placement, offset, Side, Coords, autoUpdate,
|
||||
useFloating, arrow, shift, flip, type Placement, offset, type Side, type Coords, autoUpdate,
|
||||
} from '@floating-ui/vue';
|
||||
import { defineComponent, shallowRef, computed } from 'vue';
|
||||
import { useResizeObserverPolyfill } from '@/presentation/components/Shared/Hooks/UseResizeObserverPolyfill';
|
||||
|
||||
Reference in New Issue
Block a user