diff --git a/doc/api/path.md b/doc/api/path.md index c26a98e59c9d6d..36c281b772e1af 100644 --- a/doc/api/path.md +++ b/doc/api/path.md @@ -434,6 +434,10 @@ A [`TypeError`][] is thrown if `path` is not a string. ## `path.posix` * {Object} @@ -441,6 +445,8 @@ added: v0.11.15 The `path.posix` property provides access to POSIX specific implementations of the `path` methods. +The API is accessible via `require('path').posix` or `require('path/posix')`. + ## `path.relative(from, to)` * {Object} @@ -575,6 +585,8 @@ added: v0.11.15 The `path.win32` property provides access to Windows-specific implementations of the `path` methods. +The API is accessible via `require('path').win32` or `require('path/win32')`. + [MSDN-Rel-Path]: https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#fully-qualified-vs-relative-paths [`TypeError`]: errors.md#errors_class_typeerror [`path.parse()`]: #path_path_parse_path diff --git a/lib/path/posix.js b/lib/path/posix.js new file mode 100644 index 00000000000000..aa8988d38481b2 --- /dev/null +++ b/lib/path/posix.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('path').posix; diff --git a/lib/path/win32.js b/lib/path/win32.js new file mode 100644 index 00000000000000..acb113aaae51ac --- /dev/null +++ b/lib/path/win32.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('path').win32; diff --git a/node.gyp b/node.gyp index dd9bddd08ba2da..6362f954813361 100644 --- a/node.gyp +++ b/node.gyp @@ -72,6 +72,8 @@ 'lib/net.js', 'lib/os.js', 'lib/path.js', + 'lib/path/posix.js', + 'lib/path/win32.js', 'lib/perf_hooks.js', 'lib/process.js', 'lib/punycode.js', diff --git a/test/es-module/test-esm-path-posix.mjs b/test/es-module/test-esm-path-posix.mjs new file mode 100644 index 00000000000000..e58e0603180e8f --- /dev/null +++ b/test/es-module/test-esm-path-posix.mjs @@ -0,0 +1,6 @@ +import '../common/index.mjs'; +import assert from 'assert'; +import { posix } from 'path'; +import pathPosix from 'path/posix'; + +assert.strictEqual(pathPosix, posix); diff --git a/test/es-module/test-esm-path-win32.mjs b/test/es-module/test-esm-path-win32.mjs new file mode 100644 index 00000000000000..3b3304410774bd --- /dev/null +++ b/test/es-module/test-esm-path-win32.mjs @@ -0,0 +1,6 @@ +import '../common/index.mjs'; +import assert from 'assert'; +import { win32 } from 'path'; +import pathWin32 from 'path/win32'; + +assert.strictEqual(pathWin32, win32); diff --git a/test/parallel/test-path-posix-exists.js b/test/parallel/test-path-posix-exists.js new file mode 100644 index 00000000000000..dc12ed6daf027f --- /dev/null +++ b/test/parallel/test-path-posix-exists.js @@ -0,0 +1,6 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); + +assert.strictEqual(require('path/posix'), require('path').posix); diff --git a/test/parallel/test-path-win32-exists.js b/test/parallel/test-path-win32-exists.js new file mode 100644 index 00000000000000..c9efa74dbd7d82 --- /dev/null +++ b/test/parallel/test-path-win32-exists.js @@ -0,0 +1,6 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); + +assert.strictEqual(require('path/win32'), require('path').win32);