Spaces:
Running
Running
let { nanoid, customAlphabet } = require('..') | |
function print(msg) { | |
process.stdout.write(msg + '\n') | |
} | |
function error(msg) { | |
process.stderr.write(msg + '\n') | |
process.exit(1) | |
} | |
if (process.argv.includes('--help') || process.argv.includes('-h')) { | |
print(` | |
Usage | |
$ nanoid [options] | |
Options | |
-s, --size Generated ID size | |
-a, --alphabet Alphabet to use | |
-h, --help Show this help | |
Examples | |
$ nano --s 15 | |
S9sBF77U6sDB8Yg | |
$ nano --size 10 --alphabet abc | |
bcabababca`) | |
process.exit() | |
} | |
let alphabet, size | |
for (let i = 2; i < process.argv.length; i++) { | |
let arg = process.argv[i] | |
if (arg === '--size' || arg === '-s') { | |
size = Number(process.argv[i + 1]) | |
i += 1 | |
if (Number.isNaN(size) || size <= 0) { | |
error('Size must be positive integer') | |
} | |
} else if (arg === '--alphabet' || arg === '-a') { | |
alphabet = process.argv[i + 1] | |
i += 1 | |
} else { | |
error('Unknown argument ' + arg) | |
} | |
} | |
if (alphabet) { | |
let customNanoid = customAlphabet(alphabet, size) | |
print(customNanoid()) | |
} else { | |
print(nanoid(size)) | |
} | |