-
-
Notifications
You must be signed in to change notification settings - Fork 1k
feat(string): support uuid v7 #3701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+261
−26
Merged
Changes from 6 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
c98fef2
feat(string): uuid v7
xDivisionByZerox ca25767
Merge remote-tracking branch 'origin/next' into feat/3699-support-for…
xDivisionByZerox d0e72b6
docs(uuid): more examples for shared signature
xDivisionByZerox a80f0a5
chore: remove unreachable code snippet
xDivisionByZerox b64840d
docs(string): uuid implementation does not need documentation
xDivisionByZerox b078b3f
test: use treeshakeable import from validator
xDivisionByZerox 8b8ab8a
docs: remove redundant duplicated spaces
xDivisionByZerox 98d4876
docs: write parameter relevance more explicit
xDivisionByZerox 9760669
docs: sync description for refDate parameter
xDivisionByZerox 7c766cc
docs: add strin.uuid to reproducable result info section
xDivisionByZerox dcf6f55
Merge branch 'next' into feat/3699-support-for-uuid-v7
xDivisionByZerox File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| import type { SimpleFaker } from '../../'; | ||
|
|
||
| /** | ||
| * Returns a UUID v4 ([Universally Unique Identifier](https://en.wikipedia.org/wiki/Universally_unique_identifier)). | ||
| * | ||
| * @internal | ||
| * | ||
| * @param faker The faker instance to use. | ||
| */ | ||
| export function uuidV4(faker: SimpleFaker): string { | ||
| return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' | ||
| .replaceAll('x', () => faker.number.hex({ min: 0x0, max: 0xf })) | ||
| .replaceAll('y', () => faker.number.hex({ min: 0x8, max: 0xb })); | ||
| } | ||
|
|
||
| /** | ||
| * Returns a UUID v7 ([Universally Unique Identifier](https://en.wikipedia.org/wiki/Universally_unique_identifier)). | ||
| * | ||
| * @internal | ||
| * | ||
| * @param faker The faker instance to use. | ||
| * @param refDate The reference date to retrieve the unix timestamp from. | ||
| */ | ||
| export function uuidV7(faker: SimpleFaker, refDate: Date): string { | ||
| const unixTimeMs = refDate.valueOf(); | ||
| const unixTimeMsNormalized = Math.max(unixTimeMs, 0); | ||
| const unixTimeMsHex = unixTimeMsNormalized | ||
| .toString(16) | ||
| .padStart(12, '0') | ||
| .slice(-12); | ||
|
|
||
| const unixTimePart = [ | ||
| unixTimeMsHex.substring(0, 8), | ||
| unixTimeMsHex.substring(8), | ||
| ].join('-'); | ||
|
|
||
| const randomPart = '7xxx-yxxx-xxxxxxxxxxxx' | ||
| .replaceAll('x', () => faker.number.hex({ min: 0x0, max: 0xf })) | ||
| .replaceAll('y', () => faker.number.hex({ min: 0x8, max: 0xb })); | ||
|
|
||
| return `${unixTimePart}-${randomPart}`; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.