A comprehensive TypeScript library for data transformation, validation, and schema management. This library provides a flexible and extensible way to transform data between different formats and validate it B527 against schemas.
- Data format transformation (JSON, CSV, TSV, XML, YAML, etc.)
- Schema validation
- Data structure manipulation
- Streaming support for large datasets
- Pipeline-based transformations
- Type-safe API
npm install tsutil
import { createTransformer } from 'tsutil';
const transformer = createTransformer();
// Transform JSON to CSV
const result = await transformer.transform(
{ name: 'John', age: 30 },
'json',
'csv'
);
console.log(result.data);
// name,age
// John,30
import { SchemaValidator } from 'tsutil';
const schema = {
fields: {
name: { type: 'string', required: true },
age: { type: 'number', min: 0, max: 120 }
}
};
const data = { name: 'John', age: 30 };
const validation = SchemaValidator.validate(data, schema);
console.log(validation.valid); // true
import { TransformUtils } from 'tsutil';
const data = [
{ user: { name: 'John', age: 30 } },
{ user: { name: 'Jane', age: 25 } }
];
// Flatten nested objects
const flattened = TransformUtils.flattenObject(data[0]);
console.log(flattened);
// { 'user.name': 'John', 'user.age': 30 }
// Pivot data
const pivoted = TransformUtils.pivotData(
data,
'user.name',
'user.age',
'value'
);
import { StreamingTransformer } from 'tsutil';
const streamTransformer = new StreamingTransformer(transformer);
for await (const result of streamTransformer.transformStream(
dataStream,
'csv',
'json'
)) {
console.log(result.data);
}
import { PipelineTransformer } from 'tsutil';
const pipeline = {
name: 'data-cleanup',
steps: [
{
fromFormat: 'csv',
toFormat: 'json',
validation: [
{ field: 'name', required: true },
{ field: 'age', type: 'number' }
]
},
{
fromFormat: 'json',
toFormat: 'yaml',
transform: (data) => ({
...data,
processed: true
})
}
]
};
const pipelineTransformer = new PipelineTransformer(transformer);
const result = await pipelineTransformer.executePipeline(data, pipeline);
DataTransformer
: Main class for data transformationSchemaValidator
: Schema validation utilitiesTransformUtils
: Data structure manipulation utilitiesStreamingTransformer
: Streaming support for large datasetsPipelineTransformer
: Pipeline-based transformations
JSONHandler
: JSON format handlerCSVHandler
: CSV format handlerTSVHandler
: TSV format handlerXMLHandler
: XML format handlerYAMLHandler
: YAML format handlerPipeHandler
: Pipe-delimited format handlerFixedWidthHandler
: Fixed-width format handler
Contributions are welcome! Please feel free to submit a Pull Request.
MIT