/** * API definitions for FileParser plugins. */ import {GristTables} from './GristTable'; export interface EditOptionsAPI { getParseOptions(parseOptions?: ParseOptions): Promise; } export interface ParseFileAPI { parseFile(file: FileSource, parseOptions?: ParseOptions): Promise; } /** * ParseOptions contains parse options depending on plugin, * number of rows, which is special option that can be used for any plugin * and schema for generating parse options UI */ export interface ParseOptions { NUM_ROWS?: number; SCHEMA?: ParseOptionSchema[]; } /** * ParseOptionSchema contains information for generaing parse options UI */ export interface ParseOptionSchema { name: string; label: string; type: string; visible: boolean; } export interface FileSource { /** * The path is often a temporary file, so its name is meaningless. Access to the file depends on * the type of plugin. For instance, for `safePython` plugins file is directly available at * `/importDir/path`. */ path: string; /** * Plugins that want to know the original filename should use origName. Depending on the source * of the data, it may or may not be meaningful. */ origName: string; } export interface ParseFileResult extends GristTables { parseOptions: ParseOptions; }