12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/usr/bin/env node
- 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))
- }
|