UNPKG

@nx/devkit

Version:

The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by

63 lines (62 loc) 1.44 kB
export declare enum ChangeType { Delete = "Delete", Insert = "Insert" } export interface StringDeletion { type: ChangeType.Delete; /** * Place in the original text to start deleting characters */ start: number; /** * Number of characters to delete */ length: number; } export interface StringInsertion { type: ChangeType.Insert; /** * Text to insert into the original text */ text: string; /** * Place in the original text to insert new text */ index: number; } /** * A change to be made to a string */ export type StringChange = StringInsertion | StringDeletion; /** * Applies a list of changes to a string's original value. * * This is useful when working with ASTs. * * For Example, to rename a property in a method's options: * * ```typescript * const code = `bootstrap({ * target: document.querySelector('#app') * })`; * * const indexOfPropertyName = 13; // Usually determined by analyzing an AST. * const updatedCode = applyChangesToString(code, [ * { * type: ChangeType.Insert, * index: indexOfPropertyName, * text: 'element' * }, * { * type: ChangeType.Delete, * start: indexOfPropertyName, * length: 6 * }, * ]); * * bootstrap({ * element: document.querySelector('#app') * }); * ``` */ export declare function applyChangesToString(text: string, changes: StringChange[]): string;