Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fnando/cnpj

🇧🇷 Validate, generate and format CNPJ numbers
https://github.com/fnando/cnpj

cnpj javascript npm

Last synced: 5 days ago
JSON representation

🇧🇷 Validate, generate and format CNPJ numbers

Awesome Lists containing this project

README

        

# CNPJ

[![Build Status](https://travis-ci.org/fnando/cnpj.svg?branch=master)](https://travis-ci.org/fnando/cnpj)
[![NPM package version](https://img.shields.io/npm/v/@fnando/cnpj.svg)](https://www.npmjs.com/package/@fnando/cnpj)
![License: MIT](https://img.shields.io/npm/l/@fnando/cnpj.svg)
![Minified size](http://img.badgesize.io/fnando/cnpj/master/web/cnpj.min.js.svg?label=min+size)
![Minified+Gzip size](http://img.badgesize.io/fnando/cnpj/master/web/cnpj.min.js.svg?compression=gzip&label=min%2Bgzip+size)

This package does some [CNPJ](http://en.wikipedia.org/wiki/CNPJ) magic. It
allows you to create, validate and format CNPJ documents.

**HINT:** Check out the CPF counter part available at
.

## Installation

This lib is available as a NPM package. To install it, use the following
command:

```
npm install @fnando/cnpj --save
```

If you're using Yarn (and you should):

```
yarn add @fnando/cnpj
```

## Usage

```js
// Node.js-specific
const cnpj = require("@fnando/cnpj/commonjs");

// @import
import * as cnpj from "@fnando/cnpj"; // import the whole library
import { isValid as isValidCnpj } from "@fnando/cnpj"; // import just one function

// import via ; the lib will available as window.CNPJ
// <script src="cnpj.js">

cnpj.isValid("41.381.074/6738-65");
//=> true

cnpj.isValid("41381074673865");
//=> true

cnpj.strip("41.381.074/6738-65");
//=> 41381074673865

cnpj.format("41381074673865");
//=> 41.381.074/6738-65

cnpj.generate(true); // generate formatted number
//=> 54.385.406/3140-07

cnpj.generate(); // generate unformatted number
//=> 07033324230766
```

On the web, without transformation, just use `web/cnpj.min.js`.

### Strict Validation

By default, validations will strip any characters you provide. This means that
the following is valid, because only numbers will be considered:

```js
cnpj.isValid("41#381#074-----6738\n\n65");
//=> true

cnpj.strip("41#381#074-----6738\n\n65");
//=> 41381074673865
```

If you want to strict validate strings, use the following signature:

```js
cnpj.isValid(number, strict);
```

The same example would now return `false`:

```js
cnpj.isValid("41#381#074-----6738\n\n65", true);
//=> false
```