l0bsterssg

node.js static responsive blog post generator
Log | Files | Refs | README

path-arg.js (730B)


      1 const platform = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform
      2 const { resolve, parse } = require('path')
      3 const pathArg = path => {
      4   if (/\0/.test(path)) {
      5     // simulate same failure that node raises
      6     throw Object.assign(
      7       new TypeError('path must be a string without null bytes'),
      8       {
      9         path,
     10         code: 'ERR_INVALID_ARG_VALUE',
     11       }
     12     )
     13   }
     14 
     15   path = resolve(path)
     16   if (platform === 'win32') {
     17     const badWinChars = /[*|"<>?:]/
     18     const {root} = parse(path)
     19     if (badWinChars.test(path.substr(root.length))) {
     20       throw Object.assign(new Error('Illegal characters in path.'), {
     21         path,
     22         code: 'EINVAL',
     23       })
     24     }
     25   }
     26 
     27   return path
     28 }
     29 module.exports = pathArg