Socket
Socket
Sign inDemoInstall

crosspath

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

crosspath

A wrapper around the path module that always normalizes to POSIX (including converting backslashes to forward slashes)


Version published
Maintainers
1
Created
Source
Logo

A wrapper around the path module that always normalizes to POSIX (including converting backslashes to forward slashes)

Downloads per month NPM version Dependencies Contributors code style: prettier License: MIT Support on Patreon

Description

The built-in path module in Node.js provides utilities for working with file and directory paths in Node.js. The default operation of it varies based on the operating system on which Node.js is running.

While this is generally a good thing, there are situations where you might want to normalize paths such that they always follow POSIX formatting. While the path module does export POSIX specific implementations via the path.posix property, it is not really sufficient, as it doesn't convert windows-style paths with backslashes into forward slashes.

crosspath is a drop-in replacement for path that wraps it to ensure that paths are always POSIX-formatted, including on Windows. You can still access the underlying implementations via the native property, which is useful when you do need to convert back into OS-specific paths, for example when writing to the file system

Features

  • A drop-in replacement
  • Tiny as it relies on the implementations of the underlying path module

Backers

BubblesChristopher BlanchardIdeal PostcodesXeroxTrent Raymond
Bubbles
Twitter: @usebubbles
Christopher BlanchardIdeal PostcodesXeroxTrent Raymond

Patreon

Patrons on Patreon

Table of Contents

Install

npm

$ npm install crosspath

Yarn

$ yarn add crosspath

pnpm

$ pnpm add crosspath

Usage

Simply import what you need, exactly as you would with the path module:

// Import just what you need:
import {join, relative} from "crosspath";

// or simply:
import path from "crosspath";

// Becomes 'C:/foo/bar'
path.join("C:\\foo", "\\bar");

// Becomes '../bar'
path.relative("C:\\foo", "C:\\bar");

If you want to use the native path helpers and constants without the POSIX normalization, these are all accessible via the path.native property:

import path from "crosspath";

// Becomes 'C:\foo\bar' on Windows and C:\foo/\bar on POSIX-systems
path.native.join("C:\\foo", "\\bar");

// Becomes '..\bar' on Windows and ../C:\bar on POSIX-systems
path.native.relative("C:\\foo", "C:\\bar");

This can be useful when you do want the paths to respect the OS convention, such as when you interact with the file system.

Contributing

Do you want to contribute? Awesome! Please follow these recommendations.

Maintainers

Frederik Wessberg
Frederik Wessberg
Twitter: @FredWessberg
Github: @wessberg
Lead Developer

FAQ

Why not simply use path.posix always? Isn't this library redundant?

No, not quite (but close). While it is true that path.posix can be used from Windows, it has the fundamental shortcoming that it doesn't convert backslashes into forward slashes. This is not a mistake, but rather a design decision. This library makes another decision and unifies the behavior between the two approaches to make it easier to build cross-platform libraries and tools.

License

MIT © Frederik Wessberg (@FredWessberg) (Website)

Keywords

FAQs

Package last updated on 09 Nov 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc