在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:uuidjs/uuid开源软件地址:https://github.com/uuidjs/uuid开源编程语言:JavaScript 96.3%开源软件介绍:uuidFor the creation of RFC4122 UUIDs
Upgrading from QuickstartTo create a random UUID... 1. Install npm install uuid 2. Create a UUID (ES6 module syntax) import { v4 as uuidv4 } from 'uuid';
uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' ... or using CommonJS syntax: const { v4: uuidv4 } = require('uuid');
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' For timestamp UUIDs, namespace UUIDs, and other options read on ... API Summary
APIuuid.NILThe nil UUID string (all zeros). Example: import { NIL as NIL_UUID } from 'uuid';
NIL_UUID; // ⇨ '00000000-0000-0000-0000-000000000000' uuid.parse(str)Convert UUID string to array of bytes
Note: Ordering of values in the byte arrays used by Example: import { parse as uuidParse } from 'uuid';
// Parse a UUID
const bytes = uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b');
// Convert to hex strings to show byte order (for documentation purposes)
[...bytes].map((v) => v.toString(16).padStart(2, '0')); // ⇨
// [
// '6e', 'c0', 'bd', '7f',
// '11', 'c0', '43', 'da',
// '97', '5e', '2a', '8a',
// 'd9', 'eb', 'ae', '0b'
// ] uuid.stringify(arr[, offset])Convert array of bytes to UUID string
Note: Ordering of values in the byte arrays used by Example: import { stringify as uuidStringify } from 'uuid';
const uuidBytes = [
0x6e, 0xc0, 0xbd, 0x7f, 0x11, 0xc0, 0x43, 0xda, 0x97, 0x5e, 0x2a, 0x8a, 0xd9, 0xeb, 0xae, 0x0b,
];
uuidStringify(uuidBytes); // ⇨ '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b' uuid.v1([options[, buffer[, offset]]])Create an RFC version 1 (timestamp) UUID
Note: The default node id (the last 12 digits in the UUID) is generated once, randomly, on process startup, and then remains unchanged for the duration of the process. Note: Example: import { v1 as uuidv1 } from 'uuid';
uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d' Example using import { v1 as uuidv1 } from 'uuid';
const v1options = {
node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
clockseq: 0x1234,
msecs: new Date('2011-11-01').getTime(),
nsecs: 5678,
};
uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab' uuid.v3(name, namespace[, buffer[, offset]])Create an RFC version 3 (namespace w/ MD5) UUID API is identical to uuid.v4([options[, buffer[, offset]]])Create an RFC version 4 (random) UUID
Example: import { v4 as uuidv4 } from 'uuid';
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' Example using predefined import { v4 as uuidv4 } from 'uuid';
const v4options = {
random: [
0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36,
],
};
uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836' uuid.v5(name, namespace[, buffer[, offset]])Create an RFC version 5 (namespace w/ SHA-1) UUID
Note: The RFC Example with custom namespace: import { v5 as uuidv5 } from 'uuid';
// Define a custom namespace. Readers, create your own using something like
// https://www.uuidgenerator.net/
const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681' Example with RFC import { v5 as uuidv5 } from 'uuid';
uuidv5('https://www.w3.org/', uuidv5.URL); // ⇨ 'c106a26a-21bb-5538-8bf2-57095d1976c1' uuid.validate(str)Test a string to see if it is a valid UUID
Example: import { validate as uuidValidate } from 'uuid';
uuidValidate('not a UUID'); // ⇨ false
uuidValidate('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ true Using import { version as uuidVersion } from 'uuid';
import { validate as uuidValidate } from 'uuid';
function uuidValidateV4(uuid) {
return uuidValidate(uuid) && uuidVersion(uuid) === 4;
}
const v1Uuid = 'd9428888-122b-11e1-b85c-61cd3cbb3210';
const v4Uuid = '109156be-c4fb-41ea-b1b4-efe1671c5836';
uuidValidateV4(v4Uuid); // ⇨ true
uuidValidateV4(v1Uuid); // ⇨ false uuid.version(str)Detect RFC version of a UUID
Example: import { version as uuidVersion } from 'uuid';
uuidVersion('45637ec4-c85f-11ea-87d0-0242ac130003'); // ⇨ 1
uuidVersion('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ 4 Command LineUUIDs can be generated from the command line using $ npx uuid
ddeb27fb-d9a0-4624-be4d-4615062daed4 The default is to generate version 4 UUIDS, however the other versions are supported. Type $ npx uuid --help
Usage:
uuid
uuid v1
uuid v3 <name> <namespace uuid>
uuid v4
uuid v5 <name> <namespace uuid>
uuid --help
Note: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs
defined by RFC4122 ECMAScript ModulesThis library comes with ECMAScript Modules (ESM) support for Node.js versions that support it (example) as well as bundlers like rollup.js (example) and webpack (example) (targeting both, Node.js and browser environments). import { v4 as uuidv4 } from 'uuid';
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' To run the examples you must first create a dist build of this library in the module root: npm run build CDN BuildsECMAScript ModulesTo load this module directly into modern browsers that support loading ECMAScript Modules you can make use of jspm: <script type="module">
import { v4 as uuidv4 } from 'https://jspm.dev/uuid';
console.log(uuidv4()); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
</script> UMDTo load this module directly into older browsers you can use the UMD (Universal Module Definition) builds from any of the following CDNs: Using UNPKG: <script src="https://unpkg.com/uuid@latest/dist/umd/uuidv4.min.js"></script> Using jsDelivr: <script src="https://cdn.jsdelivr.net/npm/uuid@latest/dist/umd/uuidv4.min.js"></script> Using cdnjs: <script src="https://cdnjs.cloudflare.com/ajax/libs/uuid/8.1.0/uuidv4.min.js"></script> These CDNs all provide the same <script>
uuidv4(); // ⇨ '55af1e37-0734-46d8-b070-a1e42e4fc392'
</script> Methods for the other algorithms ( Known issuesDuplicate UUIDs (Googlebot)This module may generate duplicate UUIDs when run in clients with deterministic random number generators, such as Googlebot crawlers. This can cause problems for apps that expect client-generated UUIDs to always be unique. Developers should be prepared for this and have a strategy for dealing with possible collisions, such as:
"getRandomValues() not supported"This error occurs in environments where the standard React Native / Expo
import 'react-native-get-random-values';
import { v4 as uuidv4 } from 'uuid'; Note: If you are using Expo, you must be using at least Web Workers / Service Workers (Edge <= 18)In Edge <= 18, Web Crypto is not supported in Web Workers or Service Workers and we are not aware of a polyfill (let us know if you find one, please).
Upgrading From |
请发表评论