Introduction to Canonical-Path
Canonical-path is a JavaScript module that provides utilities for handling and transforming paths in your projects. It simplifies working with file and URL paths, ensuring they are consistent across different platforms and environments.
API Overview
1. toUnix
Converts a given path to Unix format.
const canonicalPath = require('canonical-path');
let unixPath = canonicalPath.toUnix('C:\\User\\Documents');
console.log(unixPath); // Output: C:/User/Documents
2. toWindows
Converts a given path to Windows format.
let windowsPath = canonicalPath.toWindows('/User/Documents');
console.log(windowsPath); // Output: C:\\User\\Documents
3. normalize
Normalizes the given path, resolving ‘..’ and ‘.’ segments.
let normalizedPath = canonicalPath.normalize('/foo/bar/../baz');
console.log(normalizedPath); // Output: '/foo/baz'
4. join
Joins all given path segments together using the platform-specific separator as a delimiter.
let joinedPath = canonicalPath.join('/foo', 'bar', 'baz/asdf');
console.log(joinedPath); // Output: '/foo/bar/baz/asdf'
5. resolve
Resolves the sequence of paths or path segments into an absolute path.
let resolvedPath = canonicalPath.resolve('/foo/bar', './baz');
console.log(resolvedPath); // Output: '/foo/bar/baz'
6. isAbsolute
Determines whether the path is an absolute path.
let isAbsPath = canonicalPath.isAbsolute('/foo/bar');
console.log(isAbsPath); // Output: true
7. dirname
Returns the directory name of a path.
let dirName = canonicalPath.dirname('/foo/bar/baz/asdf/quux');
console.log(dirName); // Output: '/foo/bar/baz/asdf'
8. basename
Returns the last portion of a path.
let baseName = canonicalPath.basename('/foo/bar/baz/asdf/quux.html');
console.log(baseName); // Output: 'quux.html'
9. extname
Returns the extension of the path, from the last occurrence of the . (period) character to end of string in the last portion of the path.
let extName = canonicalPath.extname('/foo/bar/baz/asdf/quux.html');
console.log(extName); // Output: '.html'
Application Example
Here is a practical example demonstrating the usage of the canonical-path module in a Node.js application.
const fs = require('fs');
const canonicalPath = require('canonical-path');
function readConfigFile(filePath) {
const configPath = canonicalPath.resolve(filePath);
console.log(`Reading configuration from: ${configPath}`);
if (!canonicalPath.isAbsolute(configPath)) {
throw new Error('Configuration path must be absolute.');
}
const normalizedPath = canonicalPath.normalize(configPath);
const configContent = fs.readFileSync(normalizedPath, 'utf8');
console.log('Configuration content:', configContent);
return configContent;
}
readConfigFile('./path/to/config.json');
This example demonstrates how to use various canonical-path API functions such as resolve
, isAbsolute
, and normalize
to safely read a configuration file in a Node.js application.
Hash: d26e3b1dba5d2f17c22f80e1d9f4fe8053207b1313ecd934af3a7eae9f1db511