blob: 209b9e9340620208ed5c1004ae9bf7a4853c50bc [file] [log] [blame]
/**
* @license
* Copyright 2022 The Emscripten Authors
* SPDX-License-Identifier: MIT
*/
// This implementation ensures that Windows-style paths are being
// used when running on a Windows operating system - see:
// https://nodejs.org/api/path.html#path_windows_vs_posix
// It's only used/needed when linking with `-sNODERAWFS`, as that
// will replace all normal filesystem access with direct Node.js
// operations. Hence, using `nodePath` should be safe here.
addToLibrary({
$nodePath: "require('path')",
$PATH__deps: ['$nodePath'],
$PATH: `{
isAbs: nodePath.isAbsolute,
normalize: nodePath.normalize,
dirname: nodePath.dirname,
basename: nodePath.basename,
join: nodePath.join,
join2: nodePath.join,
}`,
// The FS-using parts are split out into a separate object, so simple path
// usage does not require the FS.
$PATH_FS__deps: ['$FS', '$nodePath'],
$PATH_FS__docs: '/** @type{{resolve: function(...*)}} */',
$PATH_FS: {
resolve: (...paths) => {
paths.unshift(FS.cwd());
return nodePath.posix.resolve(...paths);
},
relative: (from, to) => nodePath.posix.relative(from || FS.cwd(), to || FS.cwd()),
}
});