UNPKG

file-converter-nodejs

Version:

A powerful Node.js package for converting files between various formats, splitting and merging files, and automating complex file operations. Backed by LibreOffice and Python, this tool makes file processing seamless for developers.

64 lines (63 loc) 1.98 kB
export interface ConversionArgs { filter?: string; infilter?: string; } export type ProcessorTypes = 'pdf-split' | 'pptx-split' | 'merge-docx' | 'merge-pptx' | 'merge-pdf' | 'convert-each' | 'clean-up'; export type ProcessorsOutput = string[] | string | null; type ProcessorTypeToParams = { 'pptx-split': { input: null; args: null; }; 'pdf-split': { input: null; args: null; }; 'merge-docx': { input: string[]; args: null; }; 'merge-pdf': { input: string[]; args: null; }; 'merge-pptx': { input: string[]; args: null; }; 'convert-each': { input: string[]; args: ConversionArgs; }; 'clean-up': { input: string[]; args: null; }; }; export type ProcessorsParams<ProcessorType extends ProcessorTypes> = ProcessorTypeToParams[ProcessorType]; export type ProcessorParamsInput<ProcessorType extends ProcessorTypes> = ProcessorsParams<ProcessorType>['input']; export type Processor<ProcessorType extends ProcessorTypes> = { type: ProcessorType; } & ProcessorsParams<ProcessorType>['args']; export interface ProcessorArgs { processors: Processor<ProcessorTypes>[]; } export type ConversionSettings = ConversionArgs | ProcessorArgs; export type ConversionMap = { pdf: 'pptx' | 'png' | 'jpg' | 'html' | 'docx'; pptx: 'pdf' | 'html' | 'png' | 'jpg'; png: 'pdf' | 'jpg' | 'svg'; jpg: 'pdf' | 'png' | 'svg'; svg: 'pdf' | 'png' | 'jpg'; xlsx: 'pdf' | 'csv' | 'html'; csv: 'xlsx' | 'pdf' | 'html'; }; export type Format = keyof ConversionMap; export type ConversionConfig = { [from in Format]: { [to in ConversionMap[from]]: ConversionSettings; }; }; export declare function isMultiProcessorArgs(settings: ConversionSettings): settings is ProcessorArgs; export declare function isConversionArgs(settings: ConversionSettings): settings is ConversionArgs; export {};