@loaders.gl/loader-utils
Version:
Framework-independent loaders for 3D graphics formats
67 lines • 3.39 kB
TypeScript
/** Options for writers */
export type WriterOptions = {
/** worker source. If is set will be used instead of loading worker from the Internet */
source?: string | null;
/** Any additional JS libraries */
modules?: Record<string, any>;
/** Force to load WASM libraries from local file system in NodeJS or from loaders.gl CDN in a web browser */
useLocalLibraries?: boolean;
/** writer-specific options */
[writerId: string]: any;
};
/**
* A writer definition that can be used with `@loaders.gl/core` functions
*/
export type Writer<DataT = unknown, BatchT = unknown, WriterOptionsT = WriterOptions> = {
/** The result type of this loader */
dataType?: DataT;
/** The batched result type of this loader */
batchType?: BatchT;
/** Human readable name */
name: string;
/** id should be the same as the field used in LoaderOptions */
id: string;
/** module is used to generate worker threads, need to be the module directory name */
module: string;
/** Version should be injected by build tools */
version: string;
/** A boolean, or a URL */
worker?: string | boolean;
/** Which category does this loader belong to */
category?: string;
/** File extensions that are potential matches with this loader. */
extensions: string[];
/** MIMETypes that indicate a match with this loader. @note Some MIMETypes are generic and supported by many loaders */
mimeTypes?: string[];
/** Is the input of this loader binary */
binary?: boolean;
/** Is the input of this loader text */
text?: boolean;
/** Default options for this writer */
options: WriterOptionsT;
deprecatedOptions?: Record<string, string>;
};
/**
* A writer definition that can be used with `@loaders.gl/core` functions
*/
export type WriterWithEncoder<DataT = unknown, BatchT = unknown, WriterOptionsT = WriterOptions> = Writer<DataT, BatchT, WriterOptionsT> & {
/** Encode to binary, asynchronously */
encode(data: DataT, options?: WriterOptionsT): Promise<ArrayBuffer>;
/** Encode to binary, synchronously */
encodeSync?(data: DataT, options?: WriterOptionsT): ArrayBuffer;
/** Encode to binary in batches */
encodeInBatches?(data: AsyncIterable<any>, options?: WriterOptionsT): AsyncIterable<ArrayBuffer>;
/** Encode to text, asynchronously. For text formats. */
encodeText?(table: DataT, options?: WriterOptionsT): Promise<string>;
/** Encode to text, synchronously. For text formats. */
encodeTextSync?(table: DataT, options?: WriterOptionsT): string;
/** Encode to text in batched. For text formats. */
encodeTextInBatches?(data: AsyncIterable<any>, options?: WriterOptionsT): AsyncIterable<ArrayBuffer>;
encodeURLtoURL?: (inputUrl: string, outputUrl: string, options?: WriterOptionsT) => Promise<string>;
};
/** Typescript helper to extract the writer options type from a writer type */
export type WriterOptionsType<T = Writer> = T extends Writer<unknown, unknown, infer OptionsType> ? OptionsType : never;
/** Typescript helper to extract input data type from a writer type */
export type WriterDataType<T = Writer> = T extends Writer<infer DataType, any, any> ? DataType : never;
export type WriterBatchType<T = Writer> = T extends Writer<any, infer BatchType, any> ? BatchType : never;
//# sourceMappingURL=writer-types.d.ts.map