# data-transform > Data transformation utilities for JSON, CSV, XML, YAML, and Markdown. Parse, convert, query, and transform data between formats with JQ-like filtering support. - Author: Sahiix@1 - Repository: sahiixx/moltworker - Version: 20260201214731 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/sahiixx/moltworker - Web: https://mule.run/skillshub/@@sahiixx/moltworker~data-transform:20260201214731 --- --- name: data-transform description: Data transformation utilities for JSON, CSV, XML, YAML, and Markdown. Parse, convert, query, and transform data between formats with JQ-like filtering support. --- # Data Transform Convert and transform data between formats with powerful querying capabilities. ## Quick Start ### JSON to CSV ```bash node /path/to/skills/data-transform/scripts/convert.js data.json --to csv ``` ### Query JSON with JSONPath ```bash node /path/to/skills/data-transform/scripts/query.js data.json "$.users[*].name" ``` ### Parse CSV ```bash node /path/to/skills/data-transform/scripts/parse.js data.csv --format csv ``` ## Scripts ### convert.js Convert between data formats. **Usage:** ```bash node convert.js --to [OPTIONS] ``` **Formats:** - `json` - JSON - `csv` - Comma-separated values - `tsv` - Tab-separated values - `yaml` - YAML - `xml` - XML - `markdown` - Markdown table - `html` - HTML table **Options:** - `--to ` - Target format (required) - `--from ` - Source format (auto-detected if not specified) - `--output ` - Save to file - `--pretty` - Pretty print output ### query.js Query and filter data using JSONPath or JQ-like syntax. **Usage:** ```bash node query.js [OPTIONS] ``` **Query Syntax:** - `$.field` - Access field - `$.array[0]` - Array index - `$.array[*]` - All array elements - `$.array[?(@.age > 18)]` - Filter - `$..name` - Recursive descent **Options:** - `--format ` - Input format (default: auto) - `--output ` - Output format: json, csv, lines (default: json) ### parse.js Parse data files with format detection. **Usage:** ```bash node parse.js [OPTIONS] ``` **Options:** - `--format ` - Force input format - `--validate` - Validate and report errors - `--schema ` - Validate against JSON schema ### transform.js Apply transformations to data. **Usage:** ```bash node transform.js --map node transform.js --filter node transform.js --sort ``` **Options:** - `--map ` - Transform each item (JS expression) - `--filter ` - Filter items (JS expression) - `--sort ` - Sort by field - `--reverse` - Reverse order - `--unique ` - Remove duplicates - `--group ` - Group by field - `--limit ` - Limit results ### diff.js Compare two data files. **Usage:** ```bash node diff.js [OPTIONS] ``` **Options:** - `--format ` - Output format: unified, json, side-by-side - `--ignore-order` - Ignore array order - `--ignore-case` - Case-insensitive comparison ## Examples ### Convert JSON Array to CSV ```bash echo '[{"name":"John","age":30},{"name":"Jane","age":25}]' | node convert.js - --to csv ``` Output: ``` name,age John,30 Jane,25 ``` ### Query Nested Data ```bash node query.js api-response.json "$.data.users[?(@.active==true)].email" ``` ### Transform Data ```bash node transform.js users.json --filter "x.age >= 18" --sort age --map "{name: x.name, adult: true}" ``` ### CSV to Markdown Table ```bash node convert.js report.csv --to markdown ``` Output: ```markdown | Name | Score | |------|-------| | Alice | 95 | | Bob | 87 | ``` ### Compare JSON Files ```bash node diff.js old-config.json new-config.json --format unified ``` ### Validate JSON Against Schema ```bash node parse.js data.json --validate --schema schema.json ``` ## Supported Formats | Format | Read | Write | Notes | |--------|------|-------|-------| | JSON | ✅ | ✅ | Full support | | CSV | ✅ | ✅ | Auto-detects headers | | TSV | ✅ | ✅ | Tab-delimited | | YAML | ✅ | ✅ | Single document | | XML | ✅ | ✅ | Basic support | | Markdown | ✅ | ✅ | Tables only | | HTML | ❌ | ✅ | Tables only | ## Output Formats ### query.js (JSON mode) ```json { "query": "$.users[*].name", "results": ["John", "Jane", "Bob"], "count": 3 } ``` ### diff.js (JSON mode) ```json { "added": [{"path": "$.newField", "value": "new"}], "removed": [{"path": "$.oldField", "value": "old"}], "changed": [{"path": "$.field", "old": 1, "new": 2}], "unchanged": 10 } ```