47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /***
 | |
|  * Node External Editor
 | |
|  *
 | |
|  * Kevin Gravier <kevin@mrkmg.com>
 | |
|  * MIT 2019
 | |
|  */
 | |
| import { CreateFileError } from "./errors/CreateFileError";
 | |
| import { LaunchEditorError } from "./errors/LaunchEditorError";
 | |
| import { ReadFileError } from "./errors/ReadFileError";
 | |
| import { RemoveFileError } from "./errors/RemoveFileError";
 | |
| export interface IEditorParams {
 | |
|     args: string[];
 | |
|     bin: string;
 | |
| }
 | |
| export interface IFileOptions {
 | |
|     prefix?: string;
 | |
|     postfix?: string;
 | |
|     mode?: number;
 | |
|     template?: string;
 | |
|     dir?: string;
 | |
| }
 | |
| export declare type StringCallback = (err: Error, result: string) => void;
 | |
| export declare type VoidCallback = () => void;
 | |
| export { CreateFileError, LaunchEditorError, ReadFileError, RemoveFileError };
 | |
| export declare function edit(text?: string, fileOptions?: IFileOptions): string;
 | |
| export declare function editAsync(text: string, callback: StringCallback, fileOptions?: IFileOptions): void;
 | |
| export declare class ExternalEditor {
 | |
|     private static splitStringBySpace;
 | |
|     text: string;
 | |
|     tempFile: string;
 | |
|     editor: IEditorParams;
 | |
|     lastExitStatus: number;
 | |
|     private fileOptions;
 | |
|     readonly temp_file: string;
 | |
|     readonly last_exit_status: number;
 | |
|     constructor(text?: string, fileOptions?: IFileOptions);
 | |
|     run(): string;
 | |
|     runAsync(callback: StringCallback): void;
 | |
|     cleanup(): void;
 | |
|     private determineEditor;
 | |
|     private createTemporaryFile;
 | |
|     private readTemporaryFile;
 | |
|     private removeTemporaryFile;
 | |
|     private launchEditor;
 | |
|     private launchEditorAsync;
 | |
| }
 | 
