diff --git a/package.json b/package.json index 6495034..dd66424 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Iconify API", "author": "Vjacheslav Trushkin", "license": "MIT", - "version": "3.1.0-beta.2", + "version": "3.1.0-beta.4", "publishConfig": { "access": "public", "tag": "next" diff --git a/src/config/importers/full-local-package.ts b/src/config/importers/full-local-package.ts new file mode 100644 index 0000000..bc70840 --- /dev/null +++ b/src/config/importers/full-local-package.ts @@ -0,0 +1,13 @@ +import { dirname } from 'node:path'; +import { Importer } from '../../types/importers.js'; +import { createIconSetsPackageImporter } from '../../importers/full/json.js'; +import { ImportedData } from '../../types/importers/common.js'; +import { DirectoryDownloader } from '../../downloaders/directory.js'; + +/** + * Create importer for package + */ +export function createPackageIconSetImporter(packageName = '@iconify/json'): Importer { + const dir = dirname(import.meta.resolve(`${packageName}/package.json`)); + return createIconSetsPackageImporter(new DirectoryDownloader(dir), {}); +} diff --git a/src/http/responses/icons.ts b/src/http/responses/icons.ts index 077332a..942a613 100644 --- a/src/http/responses/icons.ts +++ b/src/http/responses/icons.ts @@ -7,9 +7,10 @@ import { iconSets } from '../../data/icon-sets.js'; */ export function createIconsDataResponse( prefix: string, - q: Record + q: Record ): number | IconifyJSON | Promise { - const names = q.icons?.split(','); + const iconNames = q.icons; + const names = typeof iconNames === 'string' ? iconNames.split(',') : iconNames; if (!names || !names.length) { // Missing or invalid icons parameter @@ -47,7 +48,10 @@ export function createIconsDataResponse( /** * Awaitable version of createIconsDataResponse() */ -export function createIconsDataResponseAsync(prefix: string, q: Record): Promise { +export function createIconsDataResponseAsync( + prefix: string, + q: Record +): Promise { return new Promise((resolve, reject) => { const result = createIconsDataResponse(prefix, q); if (result instanceof Promise) { diff --git a/src/http/responses/search.ts b/src/http/responses/search.ts index ca9728f..768dab8 100644 --- a/src/http/responses/search.ts +++ b/src/http/responses/search.ts @@ -1,11 +1,9 @@ -import type { FastifyReply, FastifyRequest } from 'fastify'; 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;