diff --git a/packages/eslint-config-react/typescript.js b/packages/eslint-config-react/typescript.js index 638f0b05e..adc88bffc 100644 --- a/packages/eslint-config-react/typescript.js +++ b/packages/eslint-config-react/typescript.js @@ -18,7 +18,10 @@ module.exports = { }, }, ], - '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/no-unused-vars': 'error', + '@typescript-eslint/consistent-type-imports': 'error', + '@typescript-eslint/consistent-type-exports': 'error', + '@typescript-eslint/consistent-type-definitions': ['error', 'type'], // We favor object defaults instead of default props in TS // https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/default_props/#you-may-not-need-defaultprops // https://twitter.com/dan_abramov/status/1133878326358171650 diff --git a/packages/jest-helpers/src/__tests__/index.test.tsx b/packages/jest-helpers/src/__tests__/index.test.tsx index a474aad7c..10fe2f4c0 100644 --- a/packages/jest-helpers/src/__tests__/index.test.tsx +++ b/packages/jest-helpers/src/__tests__/index.test.tsx @@ -1,7 +1,7 @@ import makeHelpers from '..' -import { RenderWithThemeFn } from '../helpers/renderWithTheme' -import { ShouldMatchEmotionSnapshotFn } from '../helpers/shouldMatchEmotionSnapshot' -import { ShouldMatchEmotionSnapshotWithPortalFn } from '../helpers/shouldMatchEmotionSnapshotWithPortal' +import type { RenderWithThemeFn } from '../helpers/renderWithTheme' +import type { ShouldMatchEmotionSnapshotFn } from '../helpers/shouldMatchEmotionSnapshot' +import type { ShouldMatchEmotionSnapshotWithPortalFn } from '../helpers/shouldMatchEmotionSnapshotWithPortal' describe('@jest-helpers', () => { let renderWithTheme: RenderWithThemeFn diff --git a/packages/jest-helpers/src/helpers/renderWithTheme.tsx b/packages/jest-helpers/src/helpers/renderWithTheme.tsx index 6ba32de87..78da68f22 100644 --- a/packages/jest-helpers/src/helpers/renderWithTheme.tsx +++ b/packages/jest-helpers/src/helpers/renderWithTheme.tsx @@ -1,7 +1,8 @@ import createCache from '@emotion/cache' import { CacheProvider } from '@emotion/react' -import { RenderOptions, render } from '@testing-library/react' -import { FC, ReactNode } from 'react' +import type { RenderOptions } from '@testing-library/react' +import { render } from '@testing-library/react' +import type { FC, ReactNode } from 'react' const emotionCache = createCache({ key: 'cache', diff --git a/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshot.ts b/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshot.ts index b77eaa60b..e56159b7f 100644 --- a/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshot.ts +++ b/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshot.ts @@ -1,8 +1,8 @@ -import { RenderOptions, render } from '@testing-library/react' -import { ReactNode } from 'react' -import { RenderWithThemeFn } from './renderWithTheme' +import type { RenderOptions, render } from '@testing-library/react' +import type { ReactNode } from 'react' +import type { RenderWithThemeFn } from './renderWithTheme' -interface Options { +type Options = { options?: RenderOptions transform?: (node: ReturnType) => Promise | void theme?: Theme diff --git a/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshotWithPortal.ts b/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshotWithPortal.ts index 4fedd1059..74c0535a7 100644 --- a/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshotWithPortal.ts +++ b/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshotWithPortal.ts @@ -1,8 +1,8 @@ -import { RenderOptions, render } from '@testing-library/react' -import { ReactNode } from 'react' -import { RenderWithThemeFn } from './renderWithTheme' +import type { RenderOptions, render } from '@testing-library/react' +import type { ReactNode } from 'react' +import type { RenderWithThemeFn } from './renderWithTheme' -interface Options { +type Options = { options?: RenderOptions transform?: (node: ReturnType) => Promise | void theme?: Theme diff --git a/packages/jest-helpers/src/index.ts b/packages/jest-helpers/src/index.ts index db784578d..fafe3ef61 100644 --- a/packages/jest-helpers/src/index.ts +++ b/packages/jest-helpers/src/index.ts @@ -1,14 +1,12 @@ -import { CreateSerializerOptions, createSerializer } from '@emotion/jest' -import { FC, ReactNode } from 'react' -import makeRenderWithTheme, { - RenderWithThemeFn, -} from './helpers/renderWithTheme' -import makeShouldMatchEmotionSnapshot, { - ShouldMatchEmotionSnapshotFn, -} from './helpers/shouldMatchEmotionSnapshot' -import makeShouldMatchEmotionSnapshotWithPortal, { - ShouldMatchEmotionSnapshotWithPortalFn, -} from './helpers/shouldMatchEmotionSnapshotWithPortal' +import type { CreateSerializerOptions } from '@emotion/jest' +import { createSerializer } from '@emotion/jest' +import type { FC, ReactNode } from 'react' +import type { RenderWithThemeFn } from './helpers/renderWithTheme' +import makeRenderWithTheme from './helpers/renderWithTheme' +import type { ShouldMatchEmotionSnapshotFn } from './helpers/shouldMatchEmotionSnapshot' +import makeShouldMatchEmotionSnapshot from './helpers/shouldMatchEmotionSnapshot' +import type { ShouldMatchEmotionSnapshotWithPortalFn } from './helpers/shouldMatchEmotionSnapshotWithPortal' +import makeShouldMatchEmotionSnapshotWithPortal from './helpers/shouldMatchEmotionSnapshotWithPortal' export { default as makeRenderWithTheme } from './helpers/renderWithTheme' diff --git a/packages/outdated-browser/src/index.ts b/packages/outdated-browser/src/index.ts index aed208c3a..e2b62d4a7 100644 --- a/packages/outdated-browser/src/index.ts +++ b/packages/outdated-browser/src/index.ts @@ -62,6 +62,7 @@ const STORAGE_KEY = '__outdated' const ignore = sessionStorage.getItem(STORAGE_KEY) || 'false' declare global { + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions interface Window { closeOutdated: () => void } diff --git a/packages/use-dataloader/src/DataLoaderProvider.tsx b/packages/use-dataloader/src/DataLoaderProvider.tsx index 500f05f64..78c2e61e6 100644 --- a/packages/use-dataloader/src/DataLoaderProvider.tsx +++ b/packages/use-dataloader/src/DataLoaderProvider.tsx @@ -1,19 +1,12 @@ import PropTypes from 'prop-types' -import { - ReactElement, - ReactNode, - createContext, - useCallback, - useContext, - useMemo, - useRef, -} from 'react' +import type { ReactElement, ReactNode } from 'react' +import { createContext, useCallback, useContext, useMemo, useRef } from 'react' import { DEFAULT_MAX_CONCURRENT_REQUESTS, KEY_IS_NOT_STRING_ERROR, } from './constants' import DataLoader from './dataloader' -import { OnErrorFn, PromiseType } from './types' +import type { OnErrorFn, PromiseType } from './types' type CachedData = Record type Reloads = Record Promise> diff --git a/packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx b/packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx index 46d32bb2d..83088abc5 100644 --- a/packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx +++ b/packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx @@ -1,5 +1,5 @@ import { render, renderHook, screen, waitFor } from '@testing-library/react' -import { ReactNode } from 'react' +import type { ReactNode } from 'react' import DataLoaderProvider, { useDataLoaderContext } from '../DataLoaderProvider' import { KEY_IS_NOT_STRING_ERROR, StatusEnum } from '../constants' diff --git a/packages/use-dataloader/src/__tests__/useDataLoader.test.tsx b/packages/use-dataloader/src/__tests__/useDataLoader.test.tsx index 919eca328..ab2e6b35a 100644 --- a/packages/use-dataloader/src/__tests__/useDataLoader.test.tsx +++ b/packages/use-dataloader/src/__tests__/useDataLoader.test.tsx @@ -1,8 +1,8 @@ /* eslint-disable no-console */ import { renderHook, waitFor } from '@testing-library/react' -import { ReactNode } from 'react' +import type { ReactNode } from 'react' import DataLoaderProvider, { useDataLoaderContext } from '../DataLoaderProvider' -import { KeyType, UseDataLoaderConfig } from '../types' +import type { KeyType, UseDataLoaderConfig } from '../types' import useDataLoader from '../useDataLoader' type UseDataLoaderHookProps = { diff --git a/packages/use-dataloader/src/__tests__/usePaginatedDataLoader.test.tsx b/packages/use-dataloader/src/__tests__/usePaginatedDataLoader.test.tsx index ae125d051..cda064f47 100644 --- a/packages/use-dataloader/src/__tests__/usePaginatedDataLoader.test.tsx +++ b/packages/use-dataloader/src/__tests__/usePaginatedDataLoader.test.tsx @@ -1,8 +1,8 @@ /* eslint-disable no-console */ import { act, renderHook, waitFor } from '@testing-library/react' -import { ReactNode } from 'react' +import type { ReactNode } from 'react' import DataLoaderProvider from '../DataLoaderProvider' -import { UsePaginatedDataLoaderMethodParams } from '../types' +import type { UsePaginatedDataLoaderMethodParams } from '../types' import usePaginatedDataLoader from '../usePaginatedDataLoader' const PROMISE_TIMEOUT = 5 diff --git a/packages/use-dataloader/src/dataloader.ts b/packages/use-dataloader/src/dataloader.ts index d53f6b6ce..776ff9ea8 100644 --- a/packages/use-dataloader/src/dataloader.ts +++ b/packages/use-dataloader/src/dataloader.ts @@ -1,5 +1,5 @@ import { DEFAULT_MAX_CONCURRENT_REQUESTS, StatusEnum } from './constants' -import { PromiseType } from './types' +import type { PromiseType } from './types' export type DataLoaderConstructorArgs = { key: string diff --git a/packages/use-dataloader/src/types.ts b/packages/use-dataloader/src/types.ts index eec8b728c..f4ee321ae 100644 --- a/packages/use-dataloader/src/types.ts +++ b/packages/use-dataloader/src/types.ts @@ -27,7 +27,7 @@ export type NeedPollingType = * @property {number} [dataLifetime=undefined] Time before data from previous success is considered as outdated (in millisecond) * @property {NeedPollingType} [needPolling=true] When pollingInterval is set you can set a set a custom callback to know if polling is enabled */ -export interface UseDataLoaderConfig { +export type UseDataLoaderConfig = { enabled?: boolean initialData?: ResultType keepPreviousData?: boolean @@ -50,7 +50,7 @@ export interface UseDataLoaderConfig { * @property {string} error the error occured during the request * @property {Function} reload reload the data */ -export interface UseDataLoaderResult { +export type UseDataLoaderResult = { data?: ResultType error?: ErrorType isError: boolean diff --git a/packages/use-dataloader/src/useDataLoader.ts b/packages/use-dataloader/src/useDataLoader.ts index 6519e9626..e0d8c7c33 100644 --- a/packages/use-dataloader/src/useDataLoader.ts +++ b/packages/use-dataloader/src/useDataLoader.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useDataLoaderContext } from './DataLoaderProvider' import { StatusEnum } from './constants' import { marshalQueryKey } from './helpers' -import { +import type { KeyType, PromiseType, UseDataLoaderConfig, diff --git a/packages/use-dataloader/src/usePaginatedDataLoader.ts b/packages/use-dataloader/src/usePaginatedDataLoader.ts index ad7e892c4..696ea7cf1 100644 --- a/packages/use-dataloader/src/usePaginatedDataLoader.ts +++ b/packages/use-dataloader/src/usePaginatedDataLoader.ts @@ -1,5 +1,5 @@ import { useCallback, useEffect, useMemo, useState } from 'react' -import { +import type { KeyType, PromiseType, UsePaginatedDataLoaderConfig, diff --git a/packages/use-gtm/src/__tests__/index.tsx b/packages/use-gtm/src/__tests__/index.tsx index daf1b4d0d..095892e8f 100644 --- a/packages/use-gtm/src/__tests__/index.tsx +++ b/packages/use-gtm/src/__tests__/index.tsx @@ -1,8 +1,9 @@ import { fireEvent, renderHook } from '@testing-library/react' import mockdate from 'mockdate' -import { ReactNode } from 'react' -import GTMProvider, { SendGTM, useGTM } from '..' -import { GTMProviderProps } from '../useGTM' +import type { ReactNode } from 'react' +import type { SendGTM } from '..' +import GTMProvider, { useGTM } from '..' +import type { GTMProviderProps } from '../useGTM' const defaultEvents = { sampleEvent: (sendGTM?: SendGTM) => (extraValue: string) => { diff --git a/packages/use-gtm/src/scripts.ts b/packages/use-gtm/src/scripts.ts index ba920d48f..76fb0e178 100644 --- a/packages/use-gtm/src/scripts.ts +++ b/packages/use-gtm/src/scripts.ts @@ -1,4 +1,4 @@ -import { GTMEnvironment } from './types' +import type { GTMEnvironment } from './types' export const DATALAYER_NAME = 'dataLayer' export const LOAD_ERROR_EVENT = 'gtm_loading_error' diff --git a/packages/use-gtm/src/useGTM.tsx b/packages/use-gtm/src/useGTM.tsx index 36cfcbe09..da0f329d2 100644 --- a/packages/use-gtm/src/useGTM.tsx +++ b/packages/use-gtm/src/useGTM.tsx @@ -1,13 +1,15 @@ -import { ReactNode, createContext, useContext, useEffect, useMemo } from 'react' +import type { ReactNode } from 'react' +import { createContext, useContext, useEffect, useMemo } from 'react' import generateScripts, { DATALAYER_NAME, LOAD_ERROR_EVENT } from './scripts' -import { DataLayerEvent, Events, GTMEnvironment, SendGTM } from './types' +import type { DataLayerEvent, Events, GTMEnvironment, SendGTM } from './types' -interface GTMContextInterface { +type GTMContextInterface = { sendGTM: SendGTM | undefined events: { [K in keyof T]: ReturnType } } declare global { + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions interface Window { dataLayer: DataLayerEvent[] | undefined } diff --git a/packages/use-i18n/src/__tests__/formatDate.ts b/packages/use-i18n/src/__tests__/formatDate.ts index f9979c709..4b2988748 100644 --- a/packages/use-i18n/src/__tests__/formatDate.ts +++ b/packages/use-i18n/src/__tests__/formatDate.ts @@ -1,4 +1,5 @@ -import formatDate, { FormatDateOptions, supportedFormats } from '../formatDate' +import type { FormatDateOptions } from '../formatDate' +import formatDate, { supportedFormats } from '../formatDate' const locales = ['en', 'fr', 'de', 'ro', 'es'] diff --git a/packages/use-i18n/src/__tests__/formatUnit.ts b/packages/use-i18n/src/__tests__/formatUnit.ts index b229278ca..80166600a 100644 --- a/packages/use-i18n/src/__tests__/formatUnit.ts +++ b/packages/use-i18n/src/__tests__/formatUnit.ts @@ -1,4 +1,5 @@ -import formatUnit, { FormatUnitOptions, supportedUnits } from '../formatUnit' +import type { FormatUnitOptions } from '../formatUnit' +import formatUnit, { supportedUnits } from '../formatUnit' const locales = ['en', 'fr', 'ro'] diff --git a/packages/use-i18n/src/__tests__/usei18n.tsx b/packages/use-i18n/src/__tests__/usei18n.tsx index 3be17491f..b184da58b 100644 --- a/packages/use-i18n/src/__tests__/usei18n.tsx +++ b/packages/use-i18n/src/__tests__/usei18n.tsx @@ -1,6 +1,6 @@ import { act, renderHook, waitFor } from '@testing-library/react' import mockdate from 'mockdate' -import { ReactNode } from 'react' +import type { ReactNode } from 'react' import I18n, { useI18n, useTranslation } from '..' import en from './locales/en.json' import es from './locales/es.json' diff --git a/packages/use-i18n/src/formatUnit.ts b/packages/use-i18n/src/formatUnit.ts index 8f49dfcc0..1be297a5b 100644 --- a/packages/use-i18n/src/formatUnit.ts +++ b/packages/use-i18n/src/formatUnit.ts @@ -243,7 +243,7 @@ export const supportedUnits: Partial< ), } -export interface FormatUnitOptions { +export type FormatUnitOptions = { unit: SupportedUnits short?: boolean } diff --git a/packages/use-i18n/src/formatters.ts b/packages/use-i18n/src/formatters.ts index f3a6cd506..1c48e8a4b 100644 --- a/packages/use-i18n/src/formatters.ts +++ b/packages/use-i18n/src/formatters.ts @@ -1,5 +1,6 @@ import type { NumberFormatOptions } from '@formatjs/ecma402-abstract' -import memoize, { Cache, strategies } from '@formatjs/fast-memoize' +import type { Cache } from '@formatjs/fast-memoize' +import memoize, { strategies } from '@formatjs/fast-memoize' import IntlTranslationFormat from 'intl-messageformat' // Deeply inspired by https://github.com/formatjs/formatjs/blob/7406e526a9c5666cee22cc2316dad1fa1d88697c/packages/intl-messageformat/src/core.ts @@ -8,7 +9,7 @@ import IntlTranslationFormat from 'intl-messageformat' // Intl.ListFormat in at TC39 stage 4 and is widely adopted in browsers // So we expose homegrown types // https://github.com/tc39/proposal-intl-list-format -export interface IntlListFormatOptions { +export type IntlListFormatOptions = { localeMatcher?: 'best fit' | 'lookup' type?: 'conjunction' | 'disjunction' | 'unit' style?: 'long' | 'short' | 'narrow' @@ -20,7 +21,7 @@ declare abstract class IntlListFormat { format: (items: string[]) => string } -interface BaseFormatters { +type BaseFormatters = { getNumberFormat( locales?: string | string[], opts?: NumberFormatOptions, diff --git a/packages/use-i18n/src/usei18n.tsx b/packages/use-i18n/src/usei18n.tsx index 6c1c84e86..9011c1a25 100644 --- a/packages/use-i18n/src/usei18n.tsx +++ b/packages/use-i18n/src/usei18n.tsx @@ -1,14 +1,10 @@ import type { NumberFormatOptions } from '@formatjs/ecma402-abstract' -import { - Locale as DateFnsLocale, - formatDistanceToNow, - formatDistanceToNowStrict, -} from 'date-fns' +import type { Locale as DateFnsLocale } from 'date-fns' +import { formatDistanceToNow, formatDistanceToNowStrict } from 'date-fns' import type { BaseLocale } from 'international-types' import PropTypes from 'prop-types' +import type { ReactElement, ReactNode } from 'react' import { - ReactElement, - ReactNode, createContext, useCallback, useContext, @@ -17,9 +13,12 @@ import { useState, } from 'react' import ReactDOM from 'react-dom' -import dateFormat, { FormatDateOptions } from './formatDate' -import unitFormat, { FormatUnitOptions } from './formatUnit' -import formatters, { IntlListFormatOptions } from './formatters' +import type { FormatDateOptions } from './formatDate' +import dateFormat from './formatDate' +import type { FormatUnitOptions } from './formatUnit' +import unitFormat from './formatUnit' +import type { IntlListFormatOptions } from './formatters' +import formatters from './formatters' import type { ReactParamsObject, ScopedTranslateFn, TranslateFn } from './types' const LOCALE_ITEM_STORAGE = 'locale' @@ -62,7 +61,7 @@ const getCurrentLocale = ({ ) } -interface Context { +type Context = { currentLocale: string dateFnsLocale?: DateFnsLocale datetime: ( diff --git a/packages/use-media/src/types.ts b/packages/use-media/src/types.ts index d028ef8c5..0c3c69e5e 100644 --- a/packages/use-media/src/types.ts +++ b/packages/use-media/src/types.ts @@ -1,3 +1,3 @@ -import { DependencyList, EffectCallback } from 'react' +import type { DependencyList, EffectCallback } from 'react' export type Effect = (effect: EffectCallback, deps?: DependencyList) => void diff --git a/packages/use-media/src/useMedia.ts b/packages/use-media/src/useMedia.ts index 0c5b75a93..49bd93644 100644 --- a/packages/use-media/src/useMedia.ts +++ b/packages/use-media/src/useMedia.ts @@ -1,5 +1,5 @@ import { useEffect, useLayoutEffect, useState } from 'react' -import { Effect } from './types' +import type { Effect } from './types' function noop() {} diff --git a/packages/use-query-params/src/__tests__/index.tsx b/packages/use-query-params/src/__tests__/index.tsx index b3ea75250..d87f4f00a 100644 --- a/packages/use-query-params/src/__tests__/index.tsx +++ b/packages/use-query-params/src/__tests__/index.tsx @@ -1,6 +1,8 @@ import { act, renderHook } from '@testing-library/react' -import { History, createMemoryHistory } from 'history' -import { ReactNode, useLayoutEffect, useState } from 'react' +import type { History } from 'history' +import { createMemoryHistory } from 'history' +import type { ReactNode } from 'react' +import { useLayoutEffect, useState } from 'react' import { MemoryRouter, Router } from 'react-router-dom' import useQueryParams from '..' diff --git a/packages/use-query-params/src/index.ts b/packages/use-query-params/src/index.ts index e788ac657..158dad95e 100644 --- a/packages/use-query-params/src/index.ts +++ b/packages/use-query-params/src/index.ts @@ -2,7 +2,7 @@ import { parse, stringify } from 'query-string' import { useCallback, useMemo } from 'react' import { useLocation, useNavigate } from 'react-router-dom' -interface Options { +type Options = { /** Set to true to push a new entry onto the history stack */ push: boolean } diff --git a/packages/use-segment/src/__tests__/index.tsx b/packages/use-segment/src/__tests__/index.tsx index 2c15c81ae..3d97e9170 100644 --- a/packages/use-segment/src/__tests__/index.tsx +++ b/packages/use-segment/src/__tests__/index.tsx @@ -1,6 +1,7 @@ -import { AnalyticsBrowser, Context } from '@segment/analytics-next' +import type { Context } from '@segment/analytics-next' +import { AnalyticsBrowser } from '@segment/analytics-next' import { renderHook, waitFor } from '@testing-library/react' -import { ReactNode } from 'react' +import type { ReactNode } from 'react' import waitForExpect from 'wait-for-expect' import SegmentProvider, { useSegment } from '..' import type { Analytics, OnEventError, SegmentProviderProps } from '..' diff --git a/packages/use-segment/src/useSegment.tsx b/packages/use-segment/src/useSegment.tsx index 4ddda26d4..d17edf46e 100644 --- a/packages/use-segment/src/useSegment.tsx +++ b/packages/use-segment/src/useSegment.tsx @@ -4,14 +4,8 @@ import type { AnalyticsBrowserSettings, InitOptions, } from '@segment/analytics-next' -import { - ReactNode, - createContext, - useContext, - useEffect, - useMemo, - useState, -} from 'react' +import type { ReactNode } from 'react' +import { createContext, useContext, useEffect, useMemo, useState } from 'react' export type OnEventError = (error: Error) => Promise | void type EventFunction = (...args: never[]) => Promise @@ -20,7 +14,7 @@ type Events = Record< (analytics?: Analytics, onEventError?: OnEventError) => EventFunction > -interface SegmentContextInterface { +type SegmentContextInterface = { analytics: Analytics | undefined events: { [K in keyof T]: ReturnType } } diff --git a/packages/validate-icu-locales/src/index.ts b/packages/validate-icu-locales/src/index.ts index 6d6df1f24..3455e5a65 100644 --- a/packages/validate-icu-locales/src/index.ts +++ b/packages/validate-icu-locales/src/index.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node import { parse } from '@formatjs/icu-messageformat-parser' -import { ParserError } from '@formatjs/icu-messageformat-parser/error' +import type { ParserError } from '@formatjs/icu-messageformat-parser/error' import { readFile } from 'fs/promises' import { globby } from 'globby' import { importFromString } from 'module-from-string' diff --git a/packages_deprecated/countries/index.d.ts b/packages_deprecated/countries/index.d.ts index 01e528d41..fd7b36618 100644 --- a/packages_deprecated/countries/index.d.ts +++ b/packages_deprecated/countries/index.d.ts @@ -1,4 +1,4 @@ -export interface Country { +export type Country = { name: string dial_code: string code: string @@ -7,7 +7,7 @@ export interface Country { export type Countries = Country[] -export interface SubDivision { +export type SubDivision = { code: string country_code: string name: string @@ -24,5 +24,3 @@ declare module './subdivisions/*.json' { const SubDivisionList: SubDivisions export default SubDivisionList } - -export type AvailableCountries = import('./countries').AvailableCountries