Sobre el proyecto
jsdiff es una biblioteca de comparación de texto en JavaScript basada en el algoritmo de diferencias Myers O(ND). Proporciona una API integral para comparar texto en múltiples granularidades:
- **Comparación a nivel de carácter** (`diffChars`): trata cada punto de código Unicode como un token, con comparación opcional sin distinción entre mayúsculas y minúsculas.
- **Comparación a nivel de palabra** (`diffWords`, `diffWordsWithSpace`): trata palabras y puntuación como tokens, con soporte opcional de `Intl.Segmenter` para una mejor segmentación de palabras en idiomas distintos del inglés.
- **Comparación a nivel de línea** (`diffLines`): trata cada línea como un token, con opciones para ignorar espacios en blanco, manejar caracteres CR finales y tratar los saltos de línea como tokens separados.
- **Comparación a nivel de frase** (`diffSentences`): trata frases y espacios en blanco entre frases como tokens.
- **Comparación de CSS** (`diffCss`): compara tokens de CSS.
- **Comparación de JSON** (`diffJson`): serializa objetos a JSON formateado y compara línea por línea, con orden alfabético de propiedades.
- **Comparación de arrays** (`diffArrays`): compara arrays de tokens con igualdad estricta o un comparador personalizado.
La biblioteca también proporciona capacidades de gestión de parches:
- **Creación de parches**: `createPatch` y `createTwoFilesPatch` generan parches en formato diff unificado con líneas de contexto configurables y opciones de encabezado.
- **Parches estructurados**: `structuredPatch` devuelve una estructura de datos con objetos de fragmento adecuados para procesamiento programático.
- **Aplicación de parches**: `applyPatch` y `applyPatches` aplican parches diff unificados con soporte de factor de tolerancia, conversión automática de finales de línea y callbacks personalizados de comparación de líneas.
- **Análisis de parches**: `parsePatch` analiza el formato diff unificado (incluidos encabezados extendidos específicos de Git para renombrados, copias, creaciones, eliminaciones y archivos binarios) en objetos estructurados.
- **Reversión de parches**: `reversePatch` genera un parche inverso.
- **Conversión de formato**: `convertChangesToXML` y `convertChangesToDMP` convierten objetos de cambio a XML o al formato diff-match-patch de Google.
Las opciones universales incluyen modo de callback asíncrono, límites máximos de longitud de edición, soporte de timeout y granularidad de objetos de cambio por token. La biblioteca también admite comportamientos de comparación personalizados mediante la clase `Diff`, lo que permite a los usuarios sobrescribir las funciones de conversión de entrada, tokenización, eliminación de tokens vacíos, verificación de igualdad y unión.
La biblioteca está disponible a través de npm (`npm install diff`) y admite importaciones tanto ESM como CommonJS, así como uso directo en el navegador mediante `dist/diff.js`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.