generate-differences
Version:
Generate differences between original source and formmated source
67 lines (66 loc) • 1.59 kB
TypeScript
import { DiffMatchPathOptions } from "diff-match-patch-es";
//#region src/types.d.ts
type DifferenceDelete = {
deleteText: string;
offset: number;
operation: 'delete';
};
type DifferenceInsert = {
insertText: string;
offset: number;
operation: 'insert';
};
type DifferenceReplace = {
deleteText: string;
insertText: string;
offset: number;
operation: 'replace';
};
/**
* @pg
*/
type Difference = DifferenceDelete | DifferenceInsert | DifferenceReplace;
interface Options extends DiffMatchPathOptions {
/**
* @default 0
*/
offset?: number;
}
//#endregion
//#region src/constants.d.ts
declare const DIFFERENCE: {
readonly DELETE: "delete";
readonly INSERT: "insert";
readonly REPLACE: "replace";
};
//#endregion
//#region src/index.d.ts
/**
* Generate differences between original source and formmated source
*
* @param source - original source
* @param formatted - formatted source
* @param options - diff-match-patch options
* @returns generated differences
*
* @example
*
* ```ts
* import { generateDifferences } from 'generate-differences'
*
* const differences = generateDifferences('abc', 'edf')
*
* console.log({ differences })
* // [
* // {
* // "deleteText": "abc",
* // "insertText": "edf",
* // "offset": 0,
* // "operation": "replace",
* // },
* // ]
* ```
*/
declare function generateDifferences(source: string, formatted: string, options?: Options): Difference[];
//#endregion
export { DIFFERENCE, Difference, DifferenceDelete, DifferenceInsert, DifferenceReplace, Options, generateDifferences };