noodl-loader
Version:
Loader for noodl applications
22 lines (21 loc) • 966 B
TypeScript
import Asset from './asset';
import type NoodlLoader from '../loader';
import type { YAMLNode } from '../types';
import * as t from './extractor-types';
export interface CreateExtractorOptions {
}
export interface ExtractOptions<As extends 'array' | 'object'> {
as?: As;
include?: t.ExtractAssetPreset | t.ExtractAssetPreset[] | 'any';
prepare?: (state: Record<string, any>) => Record<string, any> | undefined | void;
use?: t.ExtractFn | {
extract: t.ExtractFn;
once?: boolean;
} | (t.ExtractFn | {
extract: t.ExtractFn;
once?: boolean;
})[];
}
declare function createExtractor(loader: NoodlLoader): <As extends "object" | "array" = "object">(value: YAMLNode, { as, include, prepare, use: useProp }?: ExtractOptions<As>) => Promise<As extends "array" ? Asset<Record<string, any>>[] : Record<string, Asset<Record<string, any>>>>;
export default createExtractor;
export { createExtractor };