chore: switch to es modules

This commit is contained in:
Vjacheslav Trushkin 2024-01-16 21:02:18 +02:00
parent 32582d8dae
commit 6471e051e9
73 changed files with 255 additions and 251 deletions

View File

@ -5,6 +5,7 @@
"license": "MIT",
"private": true,
"version": "3.0.2",
"type": "module",
"bugs": "https://github.com/iconify/api/issues",
"homepage": "https://github.com/iconify/api",
"repository": {

View File

@ -1,6 +1,6 @@
import type { AppConfig } from '../types/config/app';
import type { SplitIconSetConfig } from '../types/config/split';
import type { MemoryStorageConfig } from '../types/storage';
import type { AppConfig } from '../types/config/app.js';
import type { SplitIconSetConfig } from '../types/config/split.js';
import type { MemoryStorageConfig } from '../types/storage.js';
/**
* Main configuration

View File

@ -1,10 +1,10 @@
import { DirectoryDownloader } from '../downloaders/directory';
import { createJSONDirectoryImporter } from '../importers/full/directory-json';
import { directoryExists } from '../misc/files';
import type { Importer } from '../types/importers';
import type { ImportedData } from '../types/importers/common';
import { fullPackageImporter } from './importers/full-package';
import { splitPackagesImporter } from './importers/split-packages';
import { DirectoryDownloader } from '../downloaders/directory.js';
import { createJSONDirectoryImporter } from '../importers/full/directory-json.js';
import { directoryExists } from '../misc/files.js';
import type { Importer } from '../types/importers.js';
import type { ImportedData } from '../types/importers/common.js';
import { fullPackageImporter } from './importers/full-package.js';
import { splitPackagesImporter } from './importers/split-packages.js';
/**
* Sources

View File

@ -1,7 +1,7 @@
import { RemoteDownloader } from '../../downloaders/remote';
import { createIconSetsPackageImporter } from '../../importers/full/json';
import type { RemoteDownloaderOptions } from '../../types/downloaders/remote';
import type { ImportedData } from '../../types/importers/common';
import { RemoteDownloader } from '../../downloaders/remote.js';
import { createIconSetsPackageImporter } from '../../importers/full/json.js';
import type { RemoteDownloaderOptions } from '../../types/downloaders/remote.js';
import type { ImportedData } from '../../types/importers/common.js';
/**
* Importer for all icon sets from `@iconify/json` package

View File

@ -1,7 +1,7 @@
import { RemoteDownloader } from '../../downloaders/remote';
import { createJSONCollectionsListImporter } from '../../importers/collections/collections';
import { createJSONPackageIconSetImporter } from '../../importers/icon-set/json-package';
import type { IconSetImportedData, ImportedData } from '../../types/importers/common';
import { RemoteDownloader } from '../../downloaders/remote.js';
import { createJSONCollectionsListImporter } from '../../importers/collections/collections.js';
import { createJSONPackageIconSetImporter } from '../../importers/icon-set/json-package.js';
import type { IconSetImportedData, ImportedData } from '../../types/importers/common.js';
// Automatically update on startup: boolean
const autoUpdate = true;

View File

@ -1,5 +1,5 @@
import type { IconifyJSON } from '@iconify/types';
import type { IconSetIconsListIcons, IconSetAPIv2IconsList } from '../../../types/icon-set/extra';
import type { IconSetIconsListIcons, IconSetAPIv2IconsList } from '../../../types/icon-set/extra.js';
/**
* Prepare data for icons list API v2 response

View File

@ -1,13 +1,13 @@
import type { IconifyAliases, IconifyJSON, IconifyOptional } from '@iconify/types';
import { defaultIconProps } from '@iconify/utils/lib/icon/defaults';
import { appConfig } from '../../../config/app';
import { appConfig } from '../../../config/app.js';
import type {
IconSetIconNames,
IconSetIconsListIcons,
IconSetIconsListTag,
IconStyle,
} from '../../../types/icon-set/extra';
import { getIconStyle } from './style';
} from '../../../types/icon-set/extra.js';
import { getIconStyle } from './style.js';
const customisableProps = Object.keys(defaultIconProps) as (keyof IconifyOptional)[];

View File

@ -1,4 +1,4 @@
import type { IconStyle } from '../../../types/icon-set/extra';
import type { IconStyle } from '../../../types/icon-set/extra.js';
function getValues(body: string, prop: string): string[] {
const chunks = body.split(prop + '="');

View File

@ -1,5 +1,5 @@
import type { IconifyJSON } from '@iconify/types';
import type { IconSetIconsListIcons } from '../../../types/icon-set/extra';
import type { IconSetIconsListIcons } from '../../../types/icon-set/extra.js';
/**
* Removes bad items

View File

@ -1,7 +1,7 @@
import type { IconifyIcons, IconifyJSON } from '@iconify/types';
import { defaultIconDimensions } from '@iconify/utils/lib/icon/defaults';
import type { SplitIconSetConfig } from '../../../types/config/split';
import type { SplitIconifyJSONMainData } from '../../../types/icon-set/split';
import type { SplitIconSetConfig } from '../../../types/config/split.js';
import type { SplitIconifyJSONMainData } from '../../../types/icon-set/split.js';
const iconDimensionProps = Object.keys(defaultIconDimensions) as (keyof typeof defaultIconDimensions)[];

View File

@ -1,17 +1,16 @@
import type { IconifyIcons, IconifyJSON } from '@iconify/types';
import { appConfig, splitIconSetConfig, storageConfig } from '../../../config/app';
import type { SplitIconSetConfig } from '../../../types/config/split';
import type { StorageIconSetThemes, StoredIconSet, StoredIconSetDone } from '../../../types/icon-set/storage';
import type { SplitRecord } from '../../../types/split';
import type { MemoryStorage, MemoryStorageItem } from '../../../types/storage';
import { createSplitRecordsTree, splitRecords } from '../../storage/split';
import { createStorage, createStoredItem } from '../../storage/create';
import { getIconSetSplitChunksCount, splitIconSetMainData } from './split';
import { removeBadIconSetItems } from '../lists/validate';
import { prepareAPIv2IconsList } from '../lists/icons-v2';
import { generateIconSetIconsTree } from '../lists/icons';
import { themeKeys } from './themes';
import { findIconSetThemes } from './themes';
import { appConfig, splitIconSetConfig, storageConfig } from '../../../config/app.js';
import type { SplitIconSetConfig } from '../../../types/config/split.js';
import type { StorageIconSetThemes, StoredIconSet, StoredIconSetDone } from '../../../types/icon-set/storage.js';
import type { SplitRecord } from '../../../types/split.js';
import type { MemoryStorage, MemoryStorageItem } from '../../../types/storage.js';
import { createSplitRecordsTree, splitRecords } from '../../storage/split.js';
import { createStorage, createStoredItem } from '../../storage/create.js';
import { getIconSetSplitChunksCount, splitIconSetMainData } from './split.js';
import { removeBadIconSetItems } from '../lists/validate.js';
import { prepareAPIv2IconsList } from '../lists/icons-v2.js';
import { generateIconSetIconsTree } from '../lists/icons.js';
import { themeKeys, findIconSetThemes } from './themes.js';
/**
* Storage

View File

@ -1,5 +1,5 @@
import { IconifyJSON } from '@iconify/types';
import { StorageIconSetThemes } from '../../../types/icon-set/storage';
import { StorageIconSetThemes } from '../../../types/icon-set/storage.js';
/**
* Themes to copy

View File

@ -1,9 +1,9 @@
import type { ExtendedIconifyAlias, ExtendedIconifyIcon, IconifyIcons } from '@iconify/types';
import { mergeIconData } from '@iconify/utils/lib/icon/merge';
import type { SplitIconifyJSONMainData } from '../../../types/icon-set/split';
import type { StoredIconSet } from '../../../types/icon-set/storage';
import { searchSplitRecordsTree } from '../../storage/split';
import { getStoredItem } from '../../storage/get';
import type { SplitIconifyJSONMainData } from '../../../types/icon-set/split.js';
import type { StoredIconSet } from '../../../types/icon-set/storage.js';
import { searchSplitRecordsTree } from '../../storage/split.js';
import { getStoredItem } from '../../storage/get.js';
interface PrepareResult {
// Merged properties

View File

@ -1,7 +1,7 @@
import type { IconifyJSON, IconifyAliases, IconifyIcons } from '@iconify/types';
import type { StoredIconSet } from '../../../types/icon-set/storage';
import { searchSplitRecordsTreeForSet } from '../../storage/split';
import { getStoredItem } from '../../storage/get';
import type { StoredIconSet } from '../../../types/icon-set/storage.js';
import { searchSplitRecordsTreeForSet } from '../../storage/split.js';
import { getStoredItem } from '../../storage/get.js';
/**
* Get list of icons that must be retrieved

View File

@ -1,6 +1,6 @@
import type { StoredIconSet } from '../types/icon-set/storage';
import type { IconSetEntry, Importer } from '../types/importers';
import { updateSearchIndex } from './search';
import type { StoredIconSet } from '../types/icon-set/storage.js';
import type { IconSetEntry, Importer } from '../types/importers.js';
import { updateSearchIndex } from './search.js';
/**
* All importers

View File

@ -1,6 +1,6 @@
import { appConfig } from '../config/app';
import type { IconSetEntry } from '../types/importers';
import type { SearchIndexData } from '../types/search';
import { appConfig } from '../config/app.js';
import type { IconSetEntry } from '../types/importers.js';
import type { SearchIndexData } from '../types/search.js';
interface SearchIndex {
data?: SearchIndexData;

View File

@ -1,10 +1,10 @@
import { appConfig } from '../../config/app';
import type { IconSetIconNames } from '../../types/icon-set/extra';
import type { IconSetEntry } from '../../types/importers';
import type { SearchIndexData, SearchKeywordsEntry, SearchParams, SearchResultsData } from '../../types/search';
import { getPartialKeywords } from './partial';
import { filterSearchPrefixes, filterSearchPrefixesList } from './prefixes';
import { splitKeyword } from './split';
import { appConfig } from '../../config/app.js';
import type { IconSetIconNames } from '../../types/icon-set/extra.js';
import type { IconSetEntry } from '../../types/importers.js';
import type { SearchIndexData, SearchKeywordsEntry, SearchParams, SearchResultsData } from '../../types/search.js';
import { getPartialKeywords } from './partial.js';
import { filterSearchPrefixes, filterSearchPrefixesList } from './prefixes.js';
import { splitKeyword } from './split.js';
/**
* Run search

View File

@ -1,5 +1,5 @@
import type { PartialKeywords, SearchIndexData } from '../../types/search';
import { searchIndex } from '../search';
import type { PartialKeywords, SearchIndexData } from '../../types/search.js';
import { searchIndex } from '../search.js';
export const minPartialKeywordLength = 2;

View File

@ -1,6 +1,6 @@
import { appConfig } from '../../config/app';
import type { IconSetEntry } from '../../types/importers';
import type { SearchIndexData, SearchParams } from '../../types/search';
import { appConfig } from '../../config/app.js';
import type { IconSetEntry } from '../../types/importers.js';
import type { SearchIndexData, SearchParams } from '../../types/search.js';
/**
* Filter prefixes by keyword

View File

@ -1,8 +1,8 @@
import { matchIconName } from '@iconify/utils/lib/icon/name';
import { paramToBoolean } from '../../misc/bool';
import type { IconStyle } from '../../types/icon-set/extra';
import type { SearchKeywords, SearchKeywordsEntry } from '../../types/search';
import { minPartialKeywordLength } from './partial';
import { paramToBoolean } from '../../misc/bool.js';
import type { IconStyle } from '../../types/icon-set/extra.js';
import type { SearchKeywords, SearchKeywordsEntry } from '../../types/search.js';
import { minPartialKeywordLength } from './partial.js';
interface SplitOptions {
// Can include prefix

View File

@ -1,4 +1,4 @@
import type { MemoryStorageItem, MemoryStorageCallback } from '../../types/storage';
import type { MemoryStorageItem, MemoryStorageCallback } from '../../types/storage.js';
/**
* Run all callbacks from storage

View File

@ -1,5 +1,5 @@
import type { MemoryStorage, MemoryStorageItem } from '../../types/storage';
import { runStorageCallbacks } from './callbacks';
import type { MemoryStorage, MemoryStorageItem } from '../../types/storage.js';
import { runStorageCallbacks } from './callbacks.js';
/**
* Stop timer

View File

@ -1,7 +1,7 @@
import { appConfig } from '../../config/app';
import type { MemoryStorage, MemoryStorageConfig, MemoryStorageItem } from '../../types/storage';
import { cleanupStoredItem } from './cleanup';
import { writeStoredItem } from './write';
import { appConfig } from '../../config/app.js';
import type { MemoryStorage, MemoryStorageConfig, MemoryStorageItem } from '../../types/storage.js';
import { cleanupStoredItem } from './cleanup.js';
import { writeStoredItem } from './write.js';
/**
* Create storage

View File

@ -1,5 +1,5 @@
import type { MemoryStorageItem, MemoryStorageCallback, MemoryStorage } from '../../types/storage';
import { loadStoredItem } from './load';
import type { MemoryStorageItem, MemoryStorageCallback, MemoryStorage } from '../../types/storage.js';
import { loadStoredItem } from './load.js';
/**
* Get storage data when ready

View File

@ -1,7 +1,7 @@
import { readFile, readFileSync } from 'node:fs';
import type { MemoryStorage, MemoryStorageItem } from '../../types/storage';
import { runStorageCallbacks } from './callbacks';
import { addStorageToCleanup } from './cleanup';
import type { MemoryStorage, MemoryStorageItem } from '../../types/storage.js';
import { runStorageCallbacks } from './callbacks.js';
import { addStorageToCleanup } from './cleanup.js';
/**
* Load data

View File

@ -1,4 +1,4 @@
import type { SplitDataTree, SplitRecord, SplitRecordCallback } from '../../types/split';
import type { SplitDataTree, SplitRecord, SplitRecordCallback } from '../../types/split.js';
/**
* Split records into `count` chunks

View File

@ -1,6 +1,6 @@
import { rm } from 'node:fs/promises';
import { appConfig } from '../../config/app';
import type { MemoryStorage } from '../../types/storage';
import { appConfig } from '../../config/app.js';
import type { MemoryStorage } from '../../types/storage.js';
/**
* Remove old cache

View File

@ -1,7 +1,7 @@
import { writeFile, mkdir } from 'node:fs';
import { dirname } from 'node:path';
import type { MemoryStorage, MemoryStorageItem } from '../../types/storage';
import { addStorageToCleanup } from './cleanup';
import type { MemoryStorage, MemoryStorageItem } from '../../types/storage.js';
import { addStorageToCleanup } from './cleanup.js';
const createdDirs: Set<string> = new Set();

View File

@ -1,4 +1,4 @@
import type { DownloaderStatus, DownloaderType } from '../types/downloaders/base';
import type { DownloaderStatus, DownloaderType } from '../types/downloaders/base.js';
/**
* loadDataFromDirectory()

View File

@ -1,4 +1,4 @@
import { BaseDownloader } from './base';
import { BaseDownloader } from './base.js';
/**
* Custom downloader

View File

@ -1,5 +1,5 @@
import { directoryExists, hashFiles, listFilesInDirectory } from '../misc/files';
import { BaseDownloader } from './base';
import { directoryExists, hashFiles, listFilesInDirectory } from '../misc/files.js';
import { BaseDownloader } from './base.js';
/**
* Directory downloader

View File

@ -1,9 +1,9 @@
import { directoryExists } from '../misc/files';
import type { RemoteDownloaderOptions, RemoteDownloaderVersion } from '../types/downloaders/remote';
import { BaseDownloader } from './base';
import { downloadRemoteArchive } from './remote/download';
import { getRemoteDownloaderCacheKey } from './remote/key';
import { getDownloaderVersion, saveDownloaderVersion } from './remote/versions';
import { directoryExists } from '../misc/files.js';
import type { RemoteDownloaderOptions, RemoteDownloaderVersion } from '../types/downloaders/remote.js';
import { BaseDownloader } from './base.js';
import { downloadRemoteArchive } from './remote/download.js';
import { getRemoteDownloaderCacheKey } from './remote/key.js';
import { getDownloaderVersion, saveDownloaderVersion } from './remote/versions.js';
/**
* Remote downloader

View File

@ -2,7 +2,7 @@ import { execAsync } from '@iconify/tools/lib/misc/exec';
import { getGitHubRepoHash } from '@iconify/tools/lib/download/github/hash';
import { getGitLabRepoHash } from '@iconify/tools/lib/download/gitlab/hash';
import { getNPMVersion, getPackageVersion } from '@iconify/tools/lib/download/npm/version';
import { directoryExists } from '../../misc/files';
import { directoryExists } from '../../misc/files.js';
import type {
GitDownloaderOptions,
GitDownloaderVersion,
@ -12,7 +12,7 @@ import type {
GitLabDownloaderVersion,
NPMDownloaderOptions,
NPMDownloaderVersion,
} from '../../types/downloaders/remote';
} from '../../types/downloaders/remote.js';
/**
* Check git repo for update

View File

@ -2,15 +2,15 @@ import { downloadGitRepo } from '@iconify/tools/lib/download/git';
import { downloadGitHubRepo } from '@iconify/tools/lib/download/github';
import { downloadGitLabRepo } from '@iconify/tools/lib/download/gitlab';
import { downloadNPMPackage } from '@iconify/tools/lib/download/npm';
import { appConfig } from '../../config/app';
import type { RemoteDownloaderOptions, RemoteDownloaderVersion } from '../../types/downloaders/remote';
import { appConfig } from '../../config/app.js';
import type { RemoteDownloaderOptions, RemoteDownloaderVersion } from '../../types/downloaders/remote.js';
import {
isGitHubUpdateAvailable,
isGitLabUpdateAvailable,
isGitUpdateAvailable,
isNPMUpdateAvailable,
} from './check-update';
import { getDownloadDirectory } from './target';
} from './check-update.js';
import { getDownloadDirectory } from './target.js';
/**
* Download files from remote archive

View File

@ -1,5 +1,5 @@
import { hashString } from '../../misc/hash';
import type { RemoteDownloaderOptions } from '../../types/downloaders/remote';
import { hashString } from '../../misc/hash.js';
import type { RemoteDownloaderOptions } from '../../types/downloaders/remote.js';
/**
* Get cache key

View File

@ -1,6 +1,6 @@
import { appConfig } from '../../config/app';
import type { RemoteDownloaderOptions } from '../../types/downloaders/remote';
import { getRemoteDownloaderCacheKey } from './key';
import { appConfig } from '../../config/app.js';
import type { RemoteDownloaderOptions } from '../../types/downloaders/remote.js';
import { getRemoteDownloaderCacheKey } from './key.js';
/**
* Get directory

View File

@ -1,11 +1,11 @@
import { readFile, writeFile, mkdir } from 'node:fs/promises';
import { dirname } from 'node:path';
import { appConfig } from '../../config/app';
import { appConfig } from '../../config/app.js';
import type {
RemoteDownloaderType,
RemoteDownloaderVersion,
RemoteDownloaderVersionMixin,
} from '../../types/downloaders/remote';
} from '../../types/downloaders/remote.js';
// Storage
type StoredVersions = Record<string, RemoteDownloaderVersion>;

View File

@ -1,19 +1,19 @@
import fastify from 'fastify';
import fastifyFormBody from '@fastify/formbody';
import { appConfig, httpHeaders } from '../config/app';
import { runWhenLoaded } from '../data/loading';
import { iconNameRoutePartialRegEx, iconNameRouteRegEx, splitIconName } from '../misc/name';
import { generateAPIv1IconsListResponse } from './responses/collection-v1';
import { generateAPIv2CollectionResponse } from './responses/collection-v2';
import { generateCollectionsListResponse } from './responses/collections';
import { generateIconsDataResponse } from './responses/icons';
import { generateKeywordsResponse } from './responses/keywords';
import { generateLastModifiedResponse } from './responses/modified';
import { generateAPIv2SearchResponse } from './responses/search';
import { generateSVGResponse } from './responses/svg';
import { generateUpdateResponse } from './responses/update';
import { initVersionResponse, versionResponse } from './responses/version';
import { generateIconsStyleResponse } from './responses/css';
import { appConfig, httpHeaders } from '../config/app.js';
import { runWhenLoaded } from '../data/loading.js';
import { iconNameRoutePartialRegEx, iconNameRouteRegEx, splitIconName } from '../misc/name.js';
import { generateAPIv1IconsListResponse } from './responses/collection-v1.js';
import { generateAPIv2CollectionResponse } from './responses/collection-v2.js';
import { generateCollectionsListResponse } from './responses/collections.js';
import { generateIconsDataResponse } from './responses/icons.js';
import { generateKeywordsResponse } from './responses/keywords.js';
import { generateLastModifiedResponse } from './responses/modified.js';
import { generateAPIv2SearchResponse } from './responses/search.js';
import { generateSVGResponse } from './responses/svg.js';
import { generateUpdateResponse } from './responses/update.js';
import { initVersionResponse, versionResponse } from './responses/version.js';
import { generateIconsStyleResponse } from './responses/css.js';
/**
* Start HTTP server

View File

@ -1,14 +1,14 @@
import type { FastifyReply, FastifyRequest } from 'fastify';
import { getPrefixes, iconSets } from '../../data/icon-sets';
import type { IconSetAPIv2IconsList } from '../../types/icon-set/extra';
import type { StoredIconSet } from '../../types/icon-set/storage';
import { getPrefixes, iconSets } from '../../data/icon-sets.js';
import type { IconSetAPIv2IconsList } from '../../types/icon-set/extra.js';
import type { StoredIconSet } from '../../types/icon-set/storage.js';
import type {
APIv1ListIconsBaseResponse,
APIv1ListIconsCategorisedResponse,
APIv1ListIconsResponse,
} from '../../types/server/v1';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json';
import { filterPrefixesByPrefix } from '../helpers/prefixes';
} from '../../types/server/v1.js';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json.js';
import { filterPrefixesByPrefix } from '../helpers/prefixes.js';
/**
* Send API v2 response

View File

@ -1,7 +1,7 @@
import type { FastifyReply, FastifyRequest } from 'fastify';
import { iconSets } from '../../data/icon-sets';
import type { APIv2CollectionResponse } from '../../types/server/v2';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json';
import { iconSets } from '../../data/icon-sets.js';
import type { APIv2CollectionResponse } from '../../types/server/v2.js';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json.js';
/**
* Send API v2 response

View File

@ -1,8 +1,8 @@
import type { FastifyReply, FastifyRequest } from 'fastify';
import { getPrefixes, iconSets } from '../../data/icon-sets';
import type { APIv2CollectionsResponse } from '../../types/server/v2';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json';
import { filterPrefixesByPrefix } from '../helpers/prefixes';
import { getPrefixes, iconSets } from '../../data/icon-sets.js';
import type { APIv2CollectionsResponse } from '../../types/server/v2.js';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json.js';
import { filterPrefixesByPrefix } from '../helpers/prefixes.js';
/**
* Send response

View File

@ -1,10 +1,10 @@
import type { FastifyReply, FastifyRequest } from 'fastify';
import { stringToColor } from '@iconify/utils/lib/colors';
import { getIconsCSS } from '@iconify/utils/lib/css/icons';
import { getStoredIconsData } from '../../data/icon-set/utils/get-icons';
import { iconSets } from '../../data/icon-sets';
import type { IconCSSIconSetOptions } from '@iconify/utils/lib/css/types';
import { paramToBoolean } from '../../misc/bool';
import { getStoredIconsData } from '../../data/icon-set/utils/get-icons.js';
import { iconSets } from '../../data/icon-sets.js';
import { paramToBoolean } from '../../misc/bool.js';
/**
* Check selector for weird stuff

View File

@ -1,7 +1,7 @@
import type { FastifyReply, FastifyRequest } from 'fastify';
import { getStoredIconsData } from '../../data/icon-set/utils/get-icons';
import { iconSets } from '../../data/icon-sets';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json';
import { getStoredIconsData } from '../../data/icon-set/utils/get-icons.js';
import { iconSets } from '../../data/icon-sets.js';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json.js';
/**
* Generate icons data

View File

@ -1,9 +1,9 @@
import { matchIconName } from '@iconify/utils';
import { matchIconName } from '@iconify/utils/lib/icon/name';
import type { FastifyReply, FastifyRequest } from 'fastify';
import { searchIndex } from '../../data/search';
import { getPartialKeywords } from '../../data/search/partial';
import type { APIv3KeywordsQuery, APIv3KeywordsResponse } from '../../types/server/keywords';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json';
import { searchIndex } from '../../data/search.js';
import { getPartialKeywords } from '../../data/search/partial.js';
import type { APIv3KeywordsQuery, APIv3KeywordsResponse } from '../../types/server/keywords.js';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json.js';
/**
* Generate icons data

View File

@ -1,8 +1,8 @@
import type { FastifyReply, FastifyRequest } from 'fastify';
import { getPrefixes, iconSets } from '../../data/icon-sets';
import type { APIv3LastModifiedResponse } from '../../types/server/modified';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json';
import { filterPrefixesByPrefix } from '../helpers/prefixes';
import { getPrefixes, iconSets } from '../../data/icon-sets.js';
import type { APIv3LastModifiedResponse } from '../../types/server/modified.js';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json.js';
import { filterPrefixesByPrefix } from '../helpers/prefixes.js';
/**
* Generate icons data

View File

@ -1,11 +1,11 @@
import type { FastifyReply, FastifyRequest } from 'fastify';
import { iconSets } from '../../data/icon-sets';
import { searchIndex } from '../../data/search';
import { search } from '../../data/search/index';
import { paramToBoolean } from '../../misc/bool';
import type { SearchParams } from '../../types/search';
import type { APIv2SearchParams, APIv2SearchResponse } from '../../types/server/v2';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json';
import { iconSets } from '../../data/icon-sets.js';
import { searchIndex } from '../../data/search.js';
import { search } from '../../data/search/index.js';
import { paramToBoolean } from '../../misc/bool.js';
import type { SearchParams } from '../../types/search.js';
import type { APIv2SearchParams, APIv2SearchResponse } from '../../types/server/v2.js';
import { checkJSONPQuery, sendJSONResponse } from '../helpers/json.js';
const minSearchLimit = 32;
const maxSearchLimit = 999;

View File

@ -1,8 +1,12 @@
import { defaultIconDimensions, flipFromString, iconToHTML, iconToSVG, rotateFromString } from '@iconify/utils';
import { iconToHTML } from '@iconify/utils/lib/svg/html';
import { iconToSVG } from '@iconify/utils/lib/svg/build';
import { flipFromString } from '@iconify/utils/lib/customisations/flip';
import { rotateFromString } from '@iconify/utils/lib/customisations/rotate';
import { defaultIconDimensions } from '@iconify/utils/lib/icon/defaults';
import { defaultIconCustomisations, IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
import type { FastifyReply, FastifyRequest } from 'fastify';
import { getStoredIconData } from '../../data/icon-set/utils/get-icon';
import { iconSets } from '../../data/icon-sets';
import { getStoredIconData } from '../../data/icon-set/utils/get-icon.js';
import { iconSets } from '../../data/icon-sets.js';
/**
* Generate SVG

View File

@ -1,7 +1,7 @@
import type { FastifyReply, FastifyRequest } from 'fastify';
import { appConfig } from '../../config/app';
import { triggerIconSetsUpdate } from '../../data/icon-sets';
import { runWhenLoaded } from '../../data/loading';
import { appConfig } from '../../config/app.js';
import { triggerIconSetsUpdate } from '../../data/icon-sets.js';
import { runWhenLoaded } from '../../data/loading.js';
let pendingUpdate = false;
let lastError = 0;

View File

@ -1,6 +1,6 @@
import { readFile } from 'node:fs/promises';
import type { FastifyReply, FastifyRequest } from 'fastify';
import { appConfig } from '../../config/app';
import { appConfig } from '../../config/app.js';
let version: string | undefined;

View File

@ -1,11 +1,11 @@
import type { BaseDownloader } from '../../downloaders/base';
import { maybeAwait } from '../../misc/async';
import type { BaseDownloader } from '../../downloaders/base.js';
import { maybeAwait } from '../../misc/async.js';
import type {
BaseCollectionsImporter,
CreateIconSetImporter,
CreateIconSetImporterResult,
} from '../../types/importers/collections';
import type { ImportedData } from '../../types/importers/common';
} from '../../types/importers/collections.js';
import type { ImportedData } from '../../types/importers/common.js';
/**
* Base collections list importer

View File

@ -1,10 +1,10 @@
import { readFile } from 'node:fs/promises';
import { matchIconName } from '@iconify/utils/lib/icon/name';
import type { BaseDownloader } from '../../downloaders/base';
import type { BaseCollectionsImporter, CreateIconSetImporter } from '../../types/importers/collections';
import type { ImportedData } from '../../types/importers/common';
import { createBaseCollectionsListImporter } from './base';
import type { IconifyInfo } from '@iconify/types';
import { matchIconName } from '@iconify/utils/lib/icon/name';
import type { BaseDownloader } from '../../downloaders/base.js';
import type { BaseCollectionsImporter, CreateIconSetImporter } from '../../types/importers/collections.js';
import type { ImportedData } from '../../types/importers/common.js';
import { createBaseCollectionsListImporter } from './base.js';
interface JSONCollectionsListImporterOptions {
// File to load

View File

@ -1,7 +1,7 @@
import { CustomDownloader } from '../../downloaders/custom';
import type { BaseCollectionsImporter, CreateIconSetImporter } from '../../types/importers/collections';
import type { ImportedData } from '../../types/importers/common';
import { createBaseCollectionsListImporter } from './base';
import { CustomDownloader } from '../../downloaders/custom.js';
import type { BaseCollectionsImporter, CreateIconSetImporter } from '../../types/importers/collections.js';
import type { ImportedData } from '../../types/importers/common.js';
import { createBaseCollectionsListImporter } from './base.js';
/**
* Create importer for hardcoded list of icon sets

View File

@ -1,8 +1,8 @@
import { readFile } from 'node:fs/promises';
import { quicklyValidateIconSet } from '@iconify/utils/lib/icon-set/validate-basic';
import { asyncStoreLoadedIconSet } from '../../data/icon-set/store/storage';
import type { StoredIconSet } from '../../types/icon-set/storage';
import { prependSlash } from '../../misc/files';
import { asyncStoreLoadedIconSet } from '../../data/icon-set/store/storage.js';
import type { StoredIconSet } from '../../types/icon-set/storage.js';
import { prependSlash } from '../../misc/files.js';
export interface IconSetJSONOptions {
// Ignore bad prefix?

View File

@ -1,8 +1,8 @@
import { readFile } from 'node:fs/promises';
import { quicklyValidateIconSet } from '@iconify/utils/lib/icon-set/validate-basic';
import { asyncStoreLoadedIconSet } from '../../data/icon-set/store/storage';
import type { StoredIconSet } from '../../types/icon-set/storage';
import { appConfig } from '../../config/app';
import { asyncStoreLoadedIconSet } from '../../data/icon-set/store/storage.js';
import type { StoredIconSet } from '../../types/icon-set/storage.js';
import { appConfig } from '../../config/app.js';
export interface IconSetJSONPackageOptions {
// Ignore bad prefix?

View File

@ -1,12 +1,12 @@
import { readdir, stat } from 'node:fs/promises';
import { matchIconName } from '@iconify/utils/lib/icon/name';
import type { BaseDownloader } from '../../downloaders/base';
import { DirectoryDownloader } from '../../downloaders/directory';
import type { StoredIconSet } from '../../types/icon-set/storage';
import type { BaseCollectionsImporter, CreateIconSetImporter } from '../../types/importers/collections';
import type { ImportedData } from '../../types/importers/common';
import { createJSONIconSetImporter } from '../icon-set/json';
import { createBaseCollectionsListImporter } from '../collections/base';
import type { BaseDownloader } from '../../downloaders/base.js';
import { DirectoryDownloader } from '../../downloaders/directory.js';
import type { StoredIconSet } from '../../types/icon-set/storage.js';
import type { BaseCollectionsImporter, CreateIconSetImporter } from '../../types/importers/collections.js';
import type { ImportedData } from '../../types/importers/common.js';
import { createJSONIconSetImporter } from '../icon-set/json.js';
import { createBaseCollectionsListImporter } from '../collections/base.js';
interface JSONDirectoryImporterOptions {
// Icon set filter

View File

@ -1,12 +1,12 @@
import { readFile } from 'node:fs/promises';
import { matchIconName } from '@iconify/utils/lib/icon/name';
import type { BaseDownloader } from '../../downloaders/base';
import { DirectoryDownloader } from '../../downloaders/directory';
import type { StoredIconSet } from '../../types/icon-set/storage';
import type { BaseCollectionsImporter, CreateIconSetImporter } from '../../types/importers/collections';
import type { ImportedData } from '../../types/importers/common';
import { createJSONIconSetImporter } from '../icon-set/json';
import { createBaseCollectionsListImporter } from '../collections/base';
import type { BaseDownloader } from '../../downloaders/base.js';
import { DirectoryDownloader } from '../../downloaders/directory.js';
import type { StoredIconSet } from '../../types/icon-set/storage.js';
import type { BaseCollectionsImporter, CreateIconSetImporter } from '../../types/importers/collections.js';
import type { ImportedData } from '../../types/importers/common.js';
import { createJSONIconSetImporter } from '../icon-set/json.js';
import { createBaseCollectionsListImporter } from '../collections/base.js';
interface IconSetsPackageImporterOptions {
// Icon set filter

View File

@ -1,7 +1,7 @@
import type { BaseDownloader } from '../../downloaders/base';
import type { StoredIconSet } from '../../types/icon-set/storage';
import type { ImportedData } from '../../types/importers/common';
import type { BaseFullImporter } from '../../types/importers/full';
import type { BaseDownloader } from '../../downloaders/base.js';
import type { StoredIconSet } from '../../types/icon-set/storage.js';
import type { ImportedData } from '../../types/importers/common.js';
import type { BaseFullImporter } from '../../types/importers/full.js';
/**
* Base full importer

View File

@ -1,10 +1,10 @@
import { readdir, stat } from 'node:fs/promises';
import { matchIconName } from '@iconify/utils/lib/icon/name';
import type { BaseDownloader } from '../../downloaders/base';
import type { ImportedData } from '../../types/importers/common';
import type { BaseFullImporter } from '../../types/importers/full';
import { createBaseImporter } from './base';
import { IconSetJSONOptions, importIconSetFromJSON } from '../common/icon-set-json';
import type { BaseDownloader } from '../../downloaders/base.js';
import type { ImportedData } from '../../types/importers/common.js';
import type { BaseFullImporter } from '../../types/importers/full.js';
import { createBaseImporter } from './base.js';
import { type IconSetJSONOptions, importIconSetFromJSON } from '../common/icon-set-json.js';
interface JSONDirectoryImporterOptions extends IconSetJSONOptions {
// Icon set filter

View File

@ -1,11 +1,11 @@
import { readFile } from 'node:fs/promises';
import { matchIconName } from '@iconify/utils/lib/icon/name';
import type { BaseDownloader } from '../../downloaders/base';
import type { ImportedData } from '../../types/importers/common';
import type { BaseFullImporter } from '../../types/importers/full';
import { createBaseImporter } from './base';
import { IconSetJSONOptions, importIconSetFromJSON } from '../common/icon-set-json';
import type { IconifyInfo } from '@iconify/types';
import { matchIconName } from '@iconify/utils/lib/icon/name';
import type { BaseDownloader } from '../../downloaders/base.js';
import type { ImportedData } from '../../types/importers/common.js';
import type { BaseFullImporter } from '../../types/importers/full.js';
import { createBaseImporter } from './base.js';
import { IconSetJSONOptions, importIconSetFromJSON } from '../common/icon-set-json.js';
interface IconSetsPackageImporterOptions extends IconSetJSONOptions {
// Icon set filter

View File

@ -1,7 +1,7 @@
import type { BaseDownloader } from '../../downloaders/base';
import type { BaseIconSetImporter } from '../../types/importers/icon-set';
import type { IconSetImportedData } from '../../types/importers/common';
import { IconSetJSONPackageOptions, importIconSetFromJSONPackage } from '../common/json-package';
import type { BaseDownloader } from '../../downloaders/base.js';
import type { BaseIconSetImporter } from '../../types/importers/icon-set.js';
import type { IconSetImportedData } from '../../types/importers/common.js';
import { IconSetJSONPackageOptions, importIconSetFromJSONPackage } from '../common/json-package.js';
interface JSONPackageIconSetImporterOptions extends IconSetJSONPackageOptions {
// Icon set prefix

View File

@ -1,7 +1,7 @@
import type { BaseDownloader } from '../../downloaders/base';
import type { BaseIconSetImporter } from '../../types/importers/icon-set';
import type { IconSetImportedData } from '../../types/importers/common';
import { IconSetJSONOptions, importIconSetFromJSON } from '../common/icon-set-json';
import type { BaseDownloader } from '../../downloaders/base.js';
import type { BaseIconSetImporter } from '../../types/importers/icon-set.js';
import type { IconSetImportedData } from '../../types/importers/common.js';
import { IconSetJSONOptions, importIconSetFromJSON } from '../common/icon-set-json.js';
interface JSONIconSetImporterOptions extends IconSetJSONOptions {
// Icon set prefix

View File

@ -1,11 +1,11 @@
import { config } from 'dotenv';
import { getImporters } from './config/icon-sets';
import { iconSetsStorage } from './data/icon-set/store/storage';
import { setImporters, updateIconSets } from './data/icon-sets';
import { loaded } from './data/loading';
import { cleanupStorageCache } from './data/storage/startup';
import { startHTTPServer } from './http';
import { loadEnvConfig } from './misc/load-config';
import { getImporters } from './config/icon-sets.js';
import { iconSetsStorage } from './data/icon-set/store/storage.js';
import { setImporters, updateIconSets } from './data/icon-sets.js';
import { loaded } from './data/loading.js';
import { cleanupStorageCache } from './data/storage/startup.js';
import { startHTTPServer } from './http/index.js';
import { loadEnvConfig } from './misc/load-config.js';
(async () => {
// Configure environment

View File

@ -1,7 +1,7 @@
import { stat } from 'node:fs/promises';
import { scanDirectory } from '@iconify/tools/lib/misc/scan';
import type { FileEntry } from '../types/files';
import { hashString } from './hash';
import type { FileEntry } from '../types/files.js';
import { hashString } from './hash.js';
/**
* List all files in directory

View File

@ -1,5 +1,5 @@
import { appConfig, splitIconSetConfig, storageConfig } from '../config/app';
import { paramToBoolean } from './bool';
import { appConfig, splitIconSetConfig, storageConfig } from '../config/app.js';
import { paramToBoolean } from './bool.js';
interface ConfigurableItem {
config: unknown;

View File

@ -1,4 +1,4 @@
import type { StoredIconSet } from '../icon-set/storage';
import type { StoredIconSet } from '../icon-set/storage.js';
/**
* Generated data

View File

@ -1,8 +1,8 @@
import type { IconifyIcons, IconifyInfo, IconifyJSON, IconifyMetaData } from '@iconify/types';
import type { SplitDataTree } from '../split';
import type { MemoryStorage, MemoryStorageItem } from '../storage';
import type { IconSetIconsListIcons, IconSetAPIv2IconsList } from './extra';
import type { SplitIconifyJSONMainData } from './split';
import type { IconifyIcons, IconifyInfo, IconifyMetaData } from '@iconify/types';
import type { SplitDataTree } from '../split.js';
import type { MemoryStorage, MemoryStorageItem } from '../storage.js';
import type { IconSetIconsListIcons, IconSetAPIv2IconsList } from './extra.js';
import type { SplitIconifyJSONMainData } from './split.js';
/**
* Themes

View File

@ -1,6 +1,6 @@
import type { BaseDownloader } from '../downloaders/base';
import type { StoredIconSet } from './icon-set/storage';
import type { ImportedData } from './importers/common';
import type { BaseDownloader } from '../downloaders/base.js';
import type { StoredIconSet } from './icon-set/storage.js';
import type { ImportedData } from './importers/common.js';
/**
* Importer

View File

@ -1,7 +1,7 @@
import type { BaseDownloader } from '../../downloaders/base';
import type { MaybeAsync } from '../async';
import type { BaseMainImporter, IconSetImportedData } from './common';
import type { BaseIconSetImporter } from './icon-set';
import type { BaseDownloader } from '../../downloaders/base.js';
import type { MaybeAsync } from '../async.js';
import type { BaseMainImporter, IconSetImportedData } from './common.js';
import type { BaseIconSetImporter } from './icon-set.js';
/**
* Loader for child element

View File

@ -1,5 +1,5 @@
import type { DownloaderType } from '../downloaders/base';
import type { StoredIconSet } from '../icon-set/storage';
import type { DownloaderType } from '../downloaders/base.js';
import type { StoredIconSet } from '../icon-set/storage.js';
/**
* Base icon set importer interface

View File

@ -1,4 +1,4 @@
import type { BaseMainImporter, IconSetImportedData } from './common';
import type { BaseMainImporter, IconSetImportedData } from './common.js';
/**
* Base full importer

View File

@ -1,4 +1,4 @@
import type { BaseImporter, IconSetImportedData } from './common';
import type { BaseImporter, IconSetImportedData } from './common.js';
/**
* Base icon set importer interface

View File

@ -1,4 +1,4 @@
import type { IconStyle } from './icon-set/extra';
import type { IconStyle } from './icon-set/extra.js';
/**
* List of keywords that can be used to autocomplete keyword

View File

@ -1,7 +1,7 @@
{
"compilerOptions": {
"target": "ESNext",
"module": "CommonJS",
"module": "ESNext",
"strict": true,
"skipLibCheck": true,
"moduleResolution": "node",