Skip to main content
Module

std/path/_format.ts

Deno standard library
Go to Latest
File
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.// This module is browser compatible.
import type { FormatInputPathObject } from "./_interface.ts";
function _format( sep: string, pathObject: FormatInputPathObject,): string { const dir: string | undefined = pathObject.dir || pathObject.root; const base: string = pathObject.base || (pathObject.name || "") + (pathObject.ext || ""); if (!dir) return base; if (base === sep) return dir; if (dir === pathObject.root) return dir + base; return dir + sep + base;}
function assertArg(pathObject: FormatInputPathObject) { if (pathObject === null || typeof pathObject !== "object") { throw new TypeError( `The "pathObject" argument must be of type Object. Received type ${typeof pathObject}`, ); }}
/** * Generate a path from `FormatInputPathObject` object. * @param pathObject with path */export function posixFormat(pathObject: FormatInputPathObject): string { assertArg(pathObject); return _format("/", pathObject);}
/** * Generate a path from `FormatInputPathObject` object. * @param pathObject with path */export function windowsFormat(pathObject: FormatInputPathObject): string { assertArg(pathObject); return _format("\\", pathObject);}