mock-uuid
Version:
Repeatable and predictable mock UUID generator for testing purposes.
71 lines (50 loc) • 2.48 kB
Markdown
# Mock UUID
This package is ment for testing and development purposes where a repeatable UUID is needed only. My personal reason to do it is to fill a mock state in React, and to be honest because I was bored and went a bit overboard. :-P
Goes beyond saying but **don't** use this in production. Use a proper [UUID](https://www.npmjs.com/package/uuid) library.
Repo at Github: https://github.com/nkholski/mock-uuid
## Install
Run `npm i -D mock-uuid`
## Public methods
Method|Signature|Description
---|---|---
v2,v3,v4,v5|no parameters|Mimics v2,v3,v4,v5 in [UUID](https://www.npmjs.com/package/uuid)
mockUuid.getIncrementalGenerator|(seed:number = Math.E, uuidVersion = 4, variant = 1) => () => uuid:string|Function to generate uuid with built in incrementation
mockUuid.getGenerator|(seed:number = Math.E, uuidVersion = 4, variant = 1) => (i: number) => uuid:string|Function to generate uuid with index as a parameter
mockUuid.get|(i: number, seed = Math.E, uuidVersion = 4, variant = 1) => uuid:string|Get UUID with index i
## Parameters
Parameter|Valid values|Description
---|---|---
seed|any number|Uuid generation is based on the seed.
uuidVersion|2,3,4 or 5|Which version of UUID to generate (version 1 is not supported)
variant|0,1,2,3|Which variant to use
## Usage example
### Recommended: Switching between UUID and Mock UUID ###
Import `import { v4 as uuidv4 } from "mock-uuid"` during development to be able to easilly switch Mock UUID to proper UUID in production by changing the import to `import { v4 as uuidv4 } from 'uuid'`. All your code should work with either. (works for v2, v3, v4 and v5)
### Mocking a list of books:
```javascript
import { mockUuid } from "mock-uuid";
const books = [];
const getUuid = mockUuid.getIncrementalGenerator();
for(let i=0;i<numberOfBooks;i++){
books.push({
id: uuid(),
title: `book ${i+1}`,
});
}
```
### Mocking a list of books with uuid by index:
```javascript
import { mockUuid } from "mock-uuid";
const books:Book[] = [];
for(let i=0;i<numberOfBooks;i++){
books.push({
id: mockUuid.getUuid(i),
title: `book ${i+1}`,
});
}
books[0].id === mockUuid.getUuid(0); // <-- true
```
## Development
The script is built in Typescript. The intructions below is only relevant if you want to poke in it. Start with `$ npm i` to install dependencies.
* Build: `npm run build`
* Test: `npm run test`