Skip to content

@fdograph/rut-utilities - Utility functions to parse, validate and generate a Chilean R.U.T.

License

Notifications You must be signed in to change notification settings

fdograph/rut-utilities

Repository files navigation

🇨🇱 Chilean Rut Utilities 🇨🇱

Coverage - Branches Coverage - Functions Coverage - Lines Coverage - Statements


Table of Contents

💬 Intro

Fully typed set of utility functions to parse, validate and generate a Chilean R.U.T.

Meant for developers who want to interact, manipulate and validate Chilean R.U.T.

🚀 Getting started

Npm & Yarn install:

$ npm install @fdograph/rut-utilities

$ yarn add @fdograph/rut-utilities

🔝 back to top

🔧 Usage

validateRut(rut?: string, noSuspicious = true) => boolean

Returns true if the passed string corresponds to a fully valid R.U.T. This is a valid rut-like string that passes the official mathematical validation algorithm and does not conform to the "suspicious" R.U.T. pattern. Eg: 44.444.444-4, 22.222.222-2, 3.333.333-3, 9999999-9

import { validateRut } from '@fdograph/rut-utilities';

validateRut('18585543-0');
> true

validateRut('18.585.543-0');
> true

validateRut('9.999.999-9');
> false

validateRut('44.444.444-4');
> false

To avoid the "suspicious" R.U.T. validation we can override the noSuspicious argument and pass it as false. This will change the behaviour of this method making it skip the "suspicious" pattern validation.

import { validateRut } from '@fdograph/rut-utilities';

validateRut('18585543-0', false);
> true

validateRut('18.585.543-0', false);
> true

validateRut('9.999.999-9', false);
> true

validateRut('44.444.444-4', false);
> true

validateRutList(ruts: Iterable<string>, noSuspicious = false) => Map<string, boolean>

Returns a results Map in which each entry has a key corresponding to the input and the value corresponding to its validation result.

import { validateRutList } from '@fdograph/rut-utilities';

const validRuts = ['7775735-k', '18585543-0', '18348353-6'];
const result = validateRutList(validRuts);

result.get('7775735-k');
> true

result.get(validRuts[1]);
> true

formatRut(rut?: string, format?: RutFormat = RutFormat.DASH) => string

Formats a rut-like string according to the format parameter or returns the intact string if this doesn't match a rut-like string pattern.

enum RutFormat {
	DOTS,
	DASH,
	DOTS_DASH
}
import { formatRut, RutFormat } from '@fdograph/rut-utilities';

formatRut('44.333.222-1');
> '44333222-1'

formatRut('44333222-1', RutFormat.DOTS_DASH);
> '44.333.222-1'

formatRut('44333222-1', RutFormat.DOTS);
> '44.333.2221'

formatRut('jg7gk-1', RutFormat.DOTS);
> 'jg7gk-1'

deconstructRut(rut: string) => DeconstructedRut

Returns an object containing the RUT's digits and verifier.

You can use Destructuring to access each.

type DeconstructedRut = {
  digits: string;
  verifier: string;
}
import { deconstructRut } from '@fdograph/rut-utilities';

const { digits, verifier } = deconstructRut('7775735-k');

console.log(digits);
> '7775735'

console.log(verifier);
> 'k'

You can see the full set of utility functions in the Tests

📄 License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

🔝 back to top