numsy

API Documentation

Table of Contents

  1. Numsy Class
  2. Parser Class
  3. PhoneValidator Class
  4. FileProcessor Class
  5. Interfaces
  6. Helper Functions
  7. Error Handling

Numsy Class

Main class that provides a unified API for phone number processing.

Constructor

new Numsy(options?: NumsyOptions)

Parameters:

Methods

validate(phone: string): PhoneValidationResult

Validates a single phone number.

Returns: Object with validation details

isValid(phone: string): boolean

Quick validation check.

sanitize(phone: string): string

Cleans and normalizes phone number.

format(phone: string, withCountryCode?: boolean): string

Formats phone number with optional country code.

validateBatch(phones: string[]): PhoneValidationResult[]

Validates multiple phone numbers at once.

extractMultiple(text: string): MultipleNumbersResult

Extracts all phone numbers from text.

parseFile(filePath: string): Promise

Parses CSV or Excel file.

processFile(filePath: string, outputDir?: string): Promise

Processes file with phone validation and generates output files.

writeCsv(data: ParsedDataRow[], outputPath: string): Promise

Writes data to CSV file.

detectPhoneColumn(data: ParsedDataRow[]): string | null

Detects phone number column from data.


Parser Class

Handles file parsing operations.

Constructor

new Parser(options?: ParserOptions)

Methods

Same file-related methods as Numsy class.


PhoneValidator Class

Handles phone number validation.

Constructor

new PhoneValidator(options?: NumsyOptions)

Methods

Same validation methods as Numsy class.


FileProcessor Class

Handles file processing with validation.

Constructor

new FileProcessor(options?: ProcessingOptions)

Options:


Interfaces

NumsyOptions

interface NumsyOptions {
  enableLogging?: boolean;
  logLevel?: 'log' | 'error' | 'warn' | 'debug' | 'verbose';
  throwOnError?: boolean;
}

PhoneValidationResult

interface PhoneValidationResult {
  original: string;
  sanitized: string;
  isValid: boolean;
  reason?: string;
}

MultipleNumbersResult

interface MultipleNumbersResult {
  originalValue: string;
  extractedNumbers: string[];
  validNumbers: string[];
  invalidNumbers: string[];
}

ProcessingResult

interface ProcessingResult {
  totalRecords: number;
  validRecords: number;
  invalidRecords: number;
  phoneColumn: string;
  zipFilePath: string;
  validFilePath: string;
  invalidFilePath: string;
  analyticsFilePath: string;
  analytics: ProcessingAnalytics;
}

Helper Functions

Pure utility functions exported for direct use:

Phone Functions

Data Functions

Validation Functions


Error Handling

AppError Class

Custom error class for application errors:

class AppError extends Error {
  constructor(
    public message: string,
    public code?: string,
    public details?: any
  )
}

Error Response Interface

interface ErrorResponse {
  success: false;
  error: string;
  code?: string;
  details?: any;
}

Usage

import { Numsy, AppError } from 'numsy';

try {
  const numsy = new Numsy({ throwOnError: true });
  await numsy.processFile('./data.csv');
} catch (error) {
  if (error instanceof AppError) {
    console.error(`Error [${error.code}]: ${error.message}`);
  }
}