npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

document-number-formatter

v1.0.33

Published

Document Number Formatter

Downloads

47

Readme

📃 Document Number Formatter #️⃣ 😃

NPM Version Minified  Size Downloads License Language Repository Build Open Source Love svg1

This package is used to generate the formatted number like 'Bill Number' or other document number similar to 'Bill Number'

Installation and Integration

Install Using npm:

npm i document-number-formatter

Integrate In Node.js program:

var { formatDocumentNumber, fdnForDate, formatDate } = require('document-number-formatter')

Integrate In Vue/React/Angular program:

import { formatDocumentNumber, fdnForDate, formatDate } from 'document-number-formatter'

Suggestion

Use with Invoice Number{:target="_blank"} package for more convenient.

Examples :

✴️ Click here to view notable explanation

// [date:YYYY] format is removed
console.log(formatDocumentNumber('DNF/[YY=apr]-[YY+1=apr]/[val:size:6]', 123))
console.log(formatDocumentNumber('BNO/[val]/[YY]-[YY+1]', 546, 8, 'apr'))
console.log(formatDocumentNumber('DNF/[YYYY=jan]/[MM]/[val]', 789, 5))
console.log(formatDocumentNumber('BNO/[YYYY]/[MMM]/[v]', 432, 5, 4))
console.log(formatDocumentNumber('[YYYY' + (false ? ']-01' : '=dec]-12' ) + '-01'))
console.log(formatDocumentNumber('[D]/[DD]/[dd]/[ddd]/[dddd]/[MMMM]/[W]'))
console.log(fdnForDate('01 Mar 2021', 'DNF/[YY]-[YY+1]/[val]', 123, 4, 'apr'))
console.log(formatDate('YYYY', '4', '28 Mar 2020'))

If todays date is '01 Nov 2020'

Output :

DNF/20-21/000123
BNO/00000546/20-21
DNF/2020/11/00789
BNO/2020/NOV/00432
2019-12-01
1/01/SU/SUN/SUNDAY/NOVEMBER/45
DNF/20-21/0123
2019

Docs for formatDocumentNumber():

String between '[' and ']' brackets will be taken to comput the result.

If todays date is '01 Feb 2020' If you want to print '[' bracket just use it between '[' and ']' brackets like '[[]' If you want to print ']' bracket just use like ']', but it should not have equalent '[' bracket

| Type | Sample Code For | Examples | Output | Desc | | -------- | ------------------------- | --------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Calendar | Year | Eg. 1: [YY] | 20 | 'YY' will convert in to current year | | | | Eg. 2: [YYYY] | 2020 | 'YYYY' will returns full year | | | | Eg. 3: [YY+1] | 21 | One year added to the current Year | | | | Eg. 4: [YY=apr] | 19 | As default January is the year start if you specify year start month like in the example, given month will be taken as start month of the year, if the current month is lessthan the given month it will consider it as previous year, this function will help on producing Financial year (or) Academic year document numbers. | | | | Eg. 5: [YY=4] | 19 | You can specify month in number also. | | | | Eg. 6: [YY+1=jan] | 21 | You can combine '+1' and 'month' in single statement like this. | | | | Eg. 7: [YY],arg4: 'jan' | 21 | You can also specify start month as common by passing month as 4th argument | | | | Eg. 8: [YY],arg4: 1 | 21 | You can also specify start month as common by passing month as 4th argument as interger | | | | Eg. 9: [YY],arg4: '1' | 21 | You can also specify start month as common by passing month as 4th argument as string with interger value | | Calendar | Month | Eg. 1: [M] | 2 | It will returns current month as one digit numerical format | | | | Eg. 2: [MM] | 02 | It will returns current month as 2 digit numerical format | | | | Eg. 3: [MMM] | FEB | It will returns month as 3 character alphabetic format | | | | Eg. 4: [MMMM] | FEBRUARY | It will returns month as full name | | Calendar | Week | Eg. 1: [W] | 5 | It will returns current week number as one digit numerical format | | | | Eg. 2: [WW] | 05 | It will returns current week number as two digit numerical format | | Calendar | Date | Eg. 1: [D] | 1 | It will returns current date in one character | | | | Eg. 2: [DD] | 01 | It will returns current date in two characters | | Calendar | Day | Eg. 1: [dd] | SA | It will returns current week day in 2 character format | | | | Eg. 2: [ddd] or [DDD] | SAT | It will returns current week day in 3 character format | | | | Eg. 3: [dddd] or [DDDD] | SATURDAY | It will returns current week day in full name | | Value | Value | Eg. 1: [val:size:5],arg2: 123 | 00123 | It will leftpad two '0's to the value passed as second argument to maintain value size. | | | | Eg. 2: [val:size:8],arg2: 789 | 00000789 | It will leftpad five '0's if value's size is 3. | | | | Eg. 3: [val] or [v],arg2: 789,arg3: 8 | 00000789 | It will leftpad '0's to the value by the size passed as third argument | | | | | Default value | | Args | arg1: format (mandantory) | Eg. 1: '[YY=apr]' | | first arugment is format | | | arg2: value (optional) | Eg. 1: 123 | '' (Empty String) | second argument is value to format | | | | Eg. 2: '456' | | value can be number or string. This argument is optional if you dont use '[val]' based format in first argument | | | arg3: size (optional) | Eg. 1: 4 | 0 | Size of the value should be in number, if the value length is smaller, '0's will leftpad to the value to match the size. | | | arg4: month (optional) | Eg. 1: 'dec' (or) 'december' | 'jan' | To specify the start month of the year, to format the number. This argument is case insensitive. | | | | Eg. 2: 12 (or) '12' | | You can specify the month start as number |

Docs for fdnForDate():

String between '[' and ']' brackets will be taken to comput the result.

You can pass your own js native date (or) date string as 1st arugment all arugments of formatDocumentNumber() can be used in this function also but it moved one step forward for example 'format'('[YY]') argument is 2nd argument in this function

| Type | Sample Code For | Examples | Output | Desc | | -------- | --------------- | ------------------------------ | ------ | ----------------------------------------------------------------------- | | Calendar | JS Date | Eg. 1: (new Date(), '[YY]') | 20 | If todays date is '01 Feb 2020' | | | | Eg. 2: ('01 Feb 2020', '[WW]') | 05 | or you can pass date as raw date string that can produce native JS date |

Docs for formatDate():

If you want to format only the 'Calendar' based string not the value you can use this function If todays date is '01 Feb 2020'

| Type | Sample Code For | Examples | Output | Deafult Value | Desc | | -------- | ---------------------------- | ------------------------------------ | ------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Args | arg1: format (mandantory) | Eg. 1: 'YY=apr' | 19 | | first arugment is format, you can use any calendar mention in 'Docs for formatDocumentNumber()' but with out '[' and ']' branckets, and you can use one format at a time. | | | arg2: month (optional) | Eg. 1: 'dec', 'december', 12 or '12' | | 'jan' | To specify the start month of the year, to format the number. This argument is case insensitive. | | Calendar | arg3: currentDate (optional) | Eg. 1: new Date() | 20 | new Date() | If todays date is '01 Feb 2020' | | | | Eg. 2: '01 Feb 2020' | 05 | | or you can pass date as raw date string that can produce native JS date |

Example and Explanation 1 :

Example :

var { formatDocumentNumber } = require('document-number-formatter')
console.log(formatDocumentNumber('DNF/[YY=apr]-[YY+1=apr]/[val:size:6]', 123))

If todays date is '28 Feb 2020'

Output :

DNF/19-20/000123

Above format 'DNF/19-20/' will continue from '01 Apr 2019' to '31 Mar 2020' and then it will turn into 'DNF/20-21/' from '01 Apr 2020'.

Explanation :

| Code | Explanation | | ------------ | ------------------------------------------------------------------- | | DNF/ | this is not in between square brackets so it printed as like given. | | [YY=apr] | this is converted into '19' | | - | this character printed as same | | [YY+1=apr] | this is converted into '20' | | / | this character printed as same | | [val:size:6] | this is converted into '000123' with the value of argument |

Example and Explanation 2 :

Example :

var { formatDocumentNumber } = require('document-number-formatter')
console.log(formatDocumentNumber('DNF/[YY]-[YY+1]/[val]', 123, 6, 'apr'))

If todays date is '28 Feb 2020'

Output :

DNF/19-20/000123

Above format 'DNF/19-20/' will continue from '01 Apr 2019' to '31 Mar 2020' and then it will turn into 'DNF/20-21/' from '01 Apr 2020'.

Explanation :

| Code | Explanation | | ------ | -------------------------------------------------------------------------------------- | | DNF/ | this is not in between square brackets so it printed as like given. | | [YY] | this is converted into '19' fourth argument month is 'apr' | | - | this character printed as same | | [YY+1] | this is converted into '20' fourth argument month is 'apr' | | / | this character printed as same | | [val] | this is converted into '000123' with the second argument value and third argument size |