libj-guid

1.3.0 • Public • Published

libj-guid

Part of libj tools

GUID generator for browser

Usage (npm)

npm install libj-guid
import { guid } from 'libj-guid'

var guidWithoutHyphen = guid.create();
//aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee


var guidWithHyphen = guid.create(true);
//aaaaaaaabbbbccccddddeeeeeeeeeeee


var emptyGuid = guid.empty();
//00000000-0000-0000-0000-000000000000

var emptyGuidNoHyphen = guid.emptyNoHyphen();
//00000000000000000000000000000000


var id = guid.newId();
//e_aaaaaaaabbbbccccddddeeeeeeeeeeee

Test

  • Run this in a separate command line to start node server
node server.js
  • Run one of the following to re-create bundles
npm run dev
npm run dev:watch

Build

npm run build
npm run build:watch

Make sure to test everything in all browsers (specially IE 10/11)

Source:

export default class Guid {
    /**
     * Creates a new guid
     * @param {Boolean} hyphen if true then the guid will be like aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee otherwise there will be no hyphen
     * @returns {String}
     */
    create(hyphen) {
        function s4() {
            return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
        }
        if (hyphen === undefined || hyphen === null) {
            return `${s4()}${s4()}${s4()}${s4()}${s4()}${s4()}${s4()}${s4()}`;
        }
        return `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;
    }
    /**
     * Returns a new random id using create(false)
     * @returns {String}
     */
    newId() {
        return `e_${this.create()}`;
    }
    /**
     * Empty value for guid : '00000000-0000-0000-0000-000000000000'
     * @returns {String}
     */
    empty() {
        return '00000000-0000-0000-0000-000000000000';
    }
    /**
     * Empty value for guid : '00000000000000000000000000000000'
     * @returns {String}
     */
    emptyNoHyphen() {
        return '00000000000000000000000000000000';
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i libj-guid

Weekly Downloads

1

Version

1.3.0

License

ISC

Unpacked Size

63.1 kB

Total Files

14

Last publish

Collaborators

  • saeidfarahi