@dev_sagarpandey/data-import-studio-core
v0.1.0
Published
Framework-independent browser data import engine for XLSX/CSV mapping, validation, cleaning, and export.
Downloads
33
Maintainers
Readme
@dev_sagarpandey/data-import-studio-core
Framework-independent TypeScript engine for browser-side Excel/CSV import workflows.
Features
- Read XLSX and CSV files in the browser.
- Extract sheets, headers, and rows.
- Suggest column mappings using labels, aliases, and fuzzy matching.
- Clean rows by trimming strings, normalizing spaces, and removing empty rows.
- Validate required fields, regex rules, enum rules, date formats, and custom rules.
- Preserve phone numbers, IDs, GST numbers, PAN numbers, VINs, and leading zeros.
- Detect duplicates using selected fields.
- Export clean and invalid records to XLSX/CSV.
- Save mapping presets in localStorage.
- Prepare JSON payload batches for bulk API upload.
Usage
import {
demoSchemas,
readImportFile,
suggestMapping,
validateImportRows
} from '@dev_sagarpandey/data-import-studio-core';
const workbook = await readImportFile(file);
const sheet = workbook.sheets[0];
const schema = demoSchemas[0];
const mapping = suggestMapping(sheet.headers, schema);
const result = validateImportRows(sheet.rows, schema, mapping);API Payload Mapping
import { createBulkUploadPlan, type ApiMapping } from '@dev_sagarpandey/data-import-studio-core';
const apiMapping: ApiMapping = {
id: 'crm-api',
name: 'CRM API',
fields: [
{ sourceField: 'name', targetPath: 'profile.fullName', required: true },
{ sourceField: 'phone', targetPath: 'contact.phone', transform: 'string' }
]
};
const plan = createBulkUploadPlan(result, apiMapping, {
endpoint: 'https://api.example.com/import/bulk',
batchSize: 500,
bodyMode: 'object',
recordsPath: 'records'
});