| Server IP : 217.160.0.135 / Your IP : 216.73.217.37 Web Server : Apache System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64 User : sws1074145052 ( 1074145052) PHP Version : 8.3.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/share/nodejs/@npmcli/config/lib/ |
Upload File : |
const nopt = require('nopt')
const { Umask, validate: validateUmask } = require('./umask.js')
const semver = require('semver')
const validateSemver = (data, k, val) => {
const valid = semver.valid(val)
if (!valid) {
return false
}
data[k] = valid
}
const noptValidatePath = nopt.typeDefs.path.validate
const validatePath = (data, k, val) => {
if (typeof val !== 'string') {
return false
}
return noptValidatePath(data, k, val)
}
// add descriptions so we can validate more usefully
module.exports = {
...nopt.typeDefs,
semver: {
type: semver,
validate: validateSemver,
description: 'full valid SemVer string',
},
Umask: {
type: Umask,
validate: validateUmask,
description: 'octal number in range 0o000..0o777 (0..511)',
},
url: {
...nopt.typeDefs.url,
description: 'full url with "http://"',
},
path: {
...nopt.typeDefs.path,
validate: validatePath,
description: 'valid filesystem path',
},
Number: {
...nopt.typeDefs.Number,
description: 'numeric value',
},
Boolean: {
...nopt.typeDefs.Boolean,
description: 'boolean value (true or false)',
},
Date: {
...nopt.typeDefs.Date,
description: 'valid Date string',
},
}
// TODO: make nopt less of a global beast so this kludge isn't necessary
nopt.typeDefs = module.exports