[79a0317] | 1 | import * as assert from 'assert';
|
---|
| 2 | import v1 from './v1.js';
|
---|
| 3 | import v3 from './v3.js';
|
---|
| 4 | import v4 from './v4.js';
|
---|
| 5 | import v5 from './v5.js';
|
---|
| 6 | import v6 from './v6.js';
|
---|
| 7 | import v7 from './v7.js';
|
---|
| 8 | function usage() {
|
---|
| 9 | console.log('Usage:');
|
---|
| 10 | console.log(' uuid');
|
---|
| 11 | console.log(' uuid v1');
|
---|
| 12 | console.log(' uuid v3 <name> <namespace uuid>');
|
---|
| 13 | console.log(' uuid v4');
|
---|
| 14 | console.log(' uuid v5 <name> <namespace uuid>');
|
---|
| 15 | console.log(' uuid v6');
|
---|
| 16 | console.log(' uuid v7');
|
---|
| 17 | console.log(' uuid --help');
|
---|
| 18 | console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562');
|
---|
| 19 | }
|
---|
| 20 | const args = process.argv.slice(2);
|
---|
| 21 | if (args.indexOf('--help') >= 0) {
|
---|
| 22 | usage();
|
---|
| 23 | process.exit(0);
|
---|
| 24 | }
|
---|
| 25 | const version = args.shift() || 'v4';
|
---|
| 26 | switch (version) {
|
---|
| 27 | case 'v1':
|
---|
| 28 | console.log(v1());
|
---|
| 29 | break;
|
---|
| 30 | case 'v3': {
|
---|
| 31 | const name = args.shift();
|
---|
| 32 | let namespace = args.shift();
|
---|
| 33 | assert.ok(name != null, 'v3 name not specified');
|
---|
| 34 | assert.ok(namespace != null, 'v3 namespace not specified');
|
---|
| 35 | if (namespace === 'URL') {
|
---|
| 36 | namespace = v3.URL;
|
---|
| 37 | }
|
---|
| 38 | if (namespace === 'DNS') {
|
---|
| 39 | namespace = v3.DNS;
|
---|
| 40 | }
|
---|
| 41 | console.log(v3(name, namespace));
|
---|
| 42 | break;
|
---|
| 43 | }
|
---|
| 44 | case 'v4':
|
---|
| 45 | console.log(v4());
|
---|
| 46 | break;
|
---|
| 47 | case 'v5': {
|
---|
| 48 | const name = args.shift();
|
---|
| 49 | let namespace = args.shift();
|
---|
| 50 | assert.ok(name != null, 'v5 name not specified');
|
---|
| 51 | assert.ok(namespace != null, 'v5 namespace not specified');
|
---|
| 52 | if (namespace === 'URL') {
|
---|
| 53 | namespace = v5.URL;
|
---|
| 54 | }
|
---|
| 55 | if (namespace === 'DNS') {
|
---|
| 56 | namespace = v5.DNS;
|
---|
| 57 | }
|
---|
| 58 | console.log(v5(name, namespace));
|
---|
| 59 | break;
|
---|
| 60 | }
|
---|
| 61 | case 'v6':
|
---|
| 62 | console.log(v6());
|
---|
| 63 | break;
|
---|
| 64 | case 'v7':
|
---|
| 65 | console.log(v7());
|
---|
| 66 | break;
|
---|
| 67 | default:
|
---|
| 68 | usage();
|
---|
| 69 | process.exit(1);
|
---|
| 70 | }
|
---|