@ldss95/helpers
Version:
Multiples funciones para problemas comunes como validacion de cedula dominicana, formatear strings telefonicos o moneda, generar pdf a partid de html. Etc...
104 lines (103 loc) • 3.72 kB
TypeScript
/// <reference types="node" />
import fs from 'fs';
import { PDFOptions } from 'puppeteer';
import handlebars from 'handlebars';
interface PdfToFileParams {
templatePath: string;
context: object;
options?: PDFOptions;
filename: string;
outDir: string;
}
/**
* Verifica la validez de cedulda de identidad y electoral doninicana
* {@link https://www.youtube.com/watch?v=__Ko7VxoCuU&t=179s Video}
* @param dui Numero de cedula *Sin guiones*
*/
declare function duiIsValid(dui: string): boolean;
/**
* Funcciones para transformar entradas agregando formatos.
*/
declare const format: {
/**
* RNC, Registro Nacional de Contribuyente
* @param rnc `string` *sin guiones*
*
* @example
* format.rnc('130800035');
*
* @returns `string` RNC con formato `130-80003-5`
*/
rnc: (rnc: string) => string;
/**
* Cedula de identidad y electoral dominicana
* @param dui numero de cedula *sin guiones*
*
* @example
* format.dui('10225088357');
*
* @returns `string` Cedula con formato `102-2508835-7`
*/
dui: (dui: string) => string;
/**
* Numero de telefono dominicano
* @param phone numero telefonico *sin guiones ni espacios ni parentesis*
*
* @example
* format.phone('8093458812');
*
* @returns `string` Numero Telefonico con formato `(809) 345-8812`
*/
phone: (phone: string) => string;
/**
* Formato Moneda
* @param cash Monto
* @param decimals `0 | 1 | 2` Cantidad de decimales, Por defecto 0
*
* @example
* format.cash(4623, 2); -> '4,623.00'
* format.cash(4623, 1); -> '4,623.0'
* format.cash(4623); -> '4,623'
*
* @returns Monto con format de moneda `9,000.00`
*/
cash: (amount: number, decimals?: 0 | 1 | 2) => string;
/**
* Formatea cadenas de texto segun ejemplo introducido
* @param input texto sin formato
* @param example ejemplo de texto formateado
*
* @example
* format.custom('99511469110', '0000-0000-00-0');
*/
custom: (input: string, example: string) => string;
};
/**
* Generador de pdf asincrono, tomando como entrada una plantilla handlebars y los paramstros para la misma
*/
declare const pdf: {
/**
* Genera pdf y lo devuelve en formato stream
* @return `fs.ReadStream`
* @param templatePath ruta de la platilla handlebars
* @param context parametros para la plantilla handlebars
* @param options opciones de configuracion para el documento pdf {@link https://www.npmjs.com/package/html-pdf#options Ver Documentacion}.
*/
toStream: (templatePath: string, context: object, options?: PDFOptions | undefined) => Promise<fs.ReadStream>;
/**
* Genera pdf y lo devuelve en formato buffer
* @return `fs.ReadStream`
* @param templatePath ruta de la platilla handlebars
* @param context parametros para la plantilla handlebars
* @param options opciones de configuracion para el documento pdf {@link https://www.npmjs.com/package/html-pdf#options Ver Documentacion}.
*/
toBuffer: (templatePath: string, context: object, options?: PDFOptions | undefined) => Promise<Buffer>;
/**
* Genera pdf y lo guarda en la ruta especificada, devuelve la informacion del archivo generado
* @return `FileInfo`
* @param {PdfToFileParams} params objeto con los parametros para generar el pdf
* @param options opciones de configuracion para el documento pdf {@link https://www.npmjs.com/package/html-pdf#options Ver Documentacion}.
*/
toFile: (params: PdfToFileParams) => Promise<void>;
};
export { duiIsValid, format, pdf, handlebars };