path: replace assertPath() with validator

The path module's assertPath() does exactly what the
validateString() validator does, so this commit updates
path to use validateString() instead. A couple drive by
updates to validateString() outside of assertPath() are
also included.

PR-URL: https://github.com/nodejs/node/pull/24840
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
This commit is contained in:
cjihrig 2018-12-04 17:38:32 -05:00 committed by Rich Trott
parent 4ebb3f35e2
commit f962f97cc4

View File

@ -33,12 +33,7 @@ const {
CHAR_COLON, CHAR_COLON,
CHAR_QUESTION_MARK, CHAR_QUESTION_MARK,
} = require('internal/constants'); } = require('internal/constants');
const { validateString } = require('internal/validators');
function assertPath(path) {
if (typeof path !== 'string') {
throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
}
}
function isPathSeparator(code) { function isPathSeparator(code) {
return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;
@ -163,7 +158,7 @@ const win32 = {
} }
} }
assertPath(path); validateString(path, 'path');
// Skip empty entries // Skip empty entries
if (path.length === 0) { if (path.length === 0) {
@ -282,7 +277,7 @@ const win32 = {
}, },
normalize: function normalize(path) { normalize: function normalize(path) {
assertPath(path); validateString(path, 'path');
const len = path.length; const len = path.length;
if (len === 0) if (len === 0)
return '.'; return '.';
@ -401,7 +396,7 @@ const win32 = {
isAbsolute: function isAbsolute(path) { isAbsolute: function isAbsolute(path) {
assertPath(path); validateString(path, 'path');
const len = path.length; const len = path.length;
if (len === 0) if (len === 0)
return false; return false;
@ -429,7 +424,7 @@ const win32 = {
var firstPart; var firstPart;
for (var i = 0; i < arguments.length; ++i) { for (var i = 0; i < arguments.length; ++i) {
var arg = arguments[i]; var arg = arguments[i];
assertPath(arg); validateString(arg, 'path');
if (arg.length > 0) { if (arg.length > 0) {
if (joined === undefined) if (joined === undefined)
joined = firstPart = arg; joined = firstPart = arg;
@ -494,8 +489,8 @@ const win32 = {
// to = 'C:\\orandea\\impl\\bbb' // to = 'C:\\orandea\\impl\\bbb'
// The output of the function should be: '..\\..\\impl\\bbb' // The output of the function should be: '..\\..\\impl\\bbb'
relative: function relative(from, to) { relative: function relative(from, to) {
assertPath(from); validateString(from, 'from');
assertPath(to); validateString(to, 'to');
if (from === to) if (from === to)
return ''; return '';
@ -648,7 +643,7 @@ const win32 = {
}, },
dirname: function dirname(path) { dirname: function dirname(path) {
assertPath(path); validateString(path, 'path');
const len = path.length; const len = path.length;
if (len === 0) if (len === 0)
return '.'; return '.';
@ -744,9 +739,9 @@ const win32 = {
basename: function basename(path, ext) { basename: function basename(path, ext) {
if (ext !== undefined && typeof ext !== 'string') if (ext !== undefined)
throw new ERR_INVALID_ARG_TYPE('ext', 'string', ext); validateString(ext, 'ext');
assertPath(path); validateString(path, 'path');
var start = 0; var start = 0;
var end = -1; var end = -1;
var matchedSlash = true; var matchedSlash = true;
@ -832,7 +827,7 @@ const win32 = {
extname: function extname(path) { extname: function extname(path) {
assertPath(path); validateString(path, 'path');
var start = 0; var start = 0;
var startDot = -1; var startDot = -1;
var startPart = 0; var startPart = 0;
@ -905,7 +900,7 @@ const win32 = {
parse: function parse(path) { parse: function parse(path) {
assertPath(path); validateString(path, 'path');
var ret = { root: '', dir: '', base: '', ext: '', name: '' }; var ret = { root: '', dir: '', base: '', ext: '', name: '' };
if (path.length === 0) if (path.length === 0)
@ -1082,7 +1077,7 @@ const posix = {
path = process.cwd(); path = process.cwd();
} }
assertPath(path); validateString(path, 'path');
// Skip empty entries // Skip empty entries
if (path.length === 0) { if (path.length === 0) {
@ -1114,7 +1109,7 @@ const posix = {
normalize: function normalize(path) { normalize: function normalize(path) {
assertPath(path); validateString(path, 'path');
if (path.length === 0) if (path.length === 0)
return '.'; return '.';
@ -1138,7 +1133,7 @@ const posix = {
isAbsolute: function isAbsolute(path) { isAbsolute: function isAbsolute(path) {
assertPath(path); validateString(path, 'path');
return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH; return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH;
}, },
@ -1149,7 +1144,7 @@ const posix = {
var joined; var joined;
for (var i = 0; i < arguments.length; ++i) { for (var i = 0; i < arguments.length; ++i) {
var arg = arguments[i]; var arg = arguments[i];
assertPath(arg); validateString(arg, 'path');
if (arg.length > 0) { if (arg.length > 0) {
if (joined === undefined) if (joined === undefined)
joined = arg; joined = arg;
@ -1164,8 +1159,8 @@ const posix = {
relative: function relative(from, to) { relative: function relative(from, to) {
assertPath(from); validateString(from, 'from');
assertPath(to); validateString(to, 'to');
if (from === to) if (from === to)
return ''; return '';
@ -1262,7 +1257,7 @@ const posix = {
}, },
dirname: function dirname(path) { dirname: function dirname(path) {
assertPath(path); validateString(path, 'path');
if (path.length === 0) if (path.length === 0)
return '.'; return '.';
const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH; const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH;
@ -1289,9 +1284,9 @@ const posix = {
basename: function basename(path, ext) { basename: function basename(path, ext) {
if (ext !== undefined && typeof ext !== 'string') if (ext !== undefined)
throw new ERR_INVALID_ARG_TYPE('ext', 'string', ext); validateString(ext, 'ext');
assertPath(path); validateString(path, 'path');
var start = 0; var start = 0;
var end = -1; var end = -1;
@ -1367,7 +1362,7 @@ const posix = {
extname: function extname(path) { extname: function extname(path) {
assertPath(path); validateString(path, 'path');
var startDot = -1; var startDot = -1;
var startPart = 0; var startPart = 0;
var end = -1; var end = -1;
@ -1428,7 +1423,7 @@ const posix = {
parse: function parse(path) { parse: function parse(path) {
assertPath(path); validateString(path, 'path');
var ret = { root: '', dir: '', base: '', ext: '', name: '' }; var ret = { root: '', dir: '', base: '', ext: '', name: '' };
if (path.length === 0) if (path.length === 0)