core/loaders/search.loader.ts
core/loaders/search.loader.ts is a file in Bane's Lab Build Scripts. 24 lines of code and 2 definitions.
import type { PositionSources, SearchAsset, SearchPage, SearchPositions } from "@banes-lab/web/types/search.types.js";
import type { DefinitionLocation } from "@banes-lab/web/types/anatomy.types.js";
import type { Evidence } from "@banes-lab/web/types/evidence.types.js";
import type { ModuleImporter } from "#types/loader.types";
import { RUNNER_MODULES } from "#configuration/constants/loader.constants";
export const searchAssetOf = async function searchAssetOf(
runner: ModuleImporter,
route: readonly string[],
): Promise<SearchAsset> {
const [pages, positions, evidence, definitions] = await Promise.all([
runner.import<{ readonly searchPages: () => Promise<readonly SearchPage[]> }>(RUNNER_MODULES.corpus.path),
runner.import<{ readonly positionsOf: (input: PositionSources) => SearchPositions }>(
RUNNER_MODULES.search.path,
),
runner.import<{ readonly EVIDENCE: readonly Evidence[] }>(RUNNER_MODULES.evidenceConstants.path),
runner.import<{ readonly listDefinitions: () => readonly DefinitionLocation[] }>(
RUNNER_MODULES.definitions.path,
),
]);
return {
definitions: definitions.listDefinitions(),
positions: positions.positionsOf({ evidence: evidence.EVIDENCE, pages: await pages.searchPages(), route }),
};
};