Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/opifexm/filecomparisonts
A robust command-line utility engineered to detect differences between two configuration files.
https://github.com/opifexm/filecomparisonts
commanderjs eslint js-yaml lodash nodejs tsx typescript vitest
Last synced: about 2 months ago
JSON representation
A robust command-line utility engineered to detect differences between two configuration files.
- Host: GitHub
- URL: https://github.com/opifexm/filecomparisonts
- Owner: opifexM
- Created: 2024-03-03T00:12:40.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-07T22:58:41.000Z (10 months ago)
- Last Synced: 2024-04-24T06:20:45.667Z (9 months ago)
- Topics: commanderjs, eslint, js-yaml, lodash, nodejs, tsx, typescript, vitest
- Language: TypeScript
- Homepage:
- Size: 155 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Node CI](https://github.com/opifexM/FileComparisonTS/actions/workflows/nodejs.yml/badge.svg)](https://github.com/opifexM/FileComparisonTS/actions/workflows/nodejs.yml)
[![Maintainability](https://api.codeclimate.com/v1/badges/276d32d1437742970de0/maintainability)](https://codeclimate.com/github/opifexM/FileComparisonTS/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/276d32d1437742970de0/test_coverage)](https://codeclimate.com/github/opifexM/FileComparisonTS/test_coverage)# File Comparison
File Comparison is a robust command-line utility engineered to detect differences between two configuration files. Developed using JavaScript and Node.js, the application supports both JSON and YAML file formats, making it versatile and applicable to a variety of use cases.
## Description
FileComparison analyzes two configuration files and generates a detailed report outlining the differences.
This utility leverages the power of the Commander npm package to facilitate the handling of command-line inputs.The solution employs a set of purpose-built functions to deliver this functionality:
The output is customizable, allowing users to select from three distinct report formats: `stylish`, `plain`, and `json`.
The `stylish` format is the default, presenting data like a JSON object with nested fields represented through indentation.
The `plain` format delivers the results in straightforward sentences, while the `json` format presents the difference report as a JSON object.## Usage
Use the following command format to execute the utility:
`gendiff [options] `
Options:
- `-V, --version`: Output the version number
- `-f, --format [type]`: Specify the output format (options: "stylish", "plain", "json"; default: "stylish")
- `-h, --help`: Display command helpstylish:
```bash
tsx bin/gendiff.ts -f stylish file1.json file2.json
```plain:
```bash
tsx bin/gendiff.ts -f plain file1.json file2.json
```json:
```bash
tsx bin/gendiff.ts -f json file1.json file2.json
```## Technologies Used
FileComparison is built with a stack of powerful technologies:
- **JavaScript and Node.js**: The backbone of the application, providing the runtime environment.
- **TypeScript**: Enhances code quality and reliability.
- **Node.js**: Provides the runtime environment.
- **Commander.js**: Manages CLI inputs.
- **Lodash**: Facilitates data manipulation.
- **js-yaml**: Allows for YAML parsing.On the development side, the project utilizes:
- **Vitest**: Offers a powerful testing framework.
- **ESLint**: Ensures code consistency.
- **Various ESLint plugins**: Enhance code analysis and quality## License
FileComparison is licensed under the ISC license.