UNPKG

@modern-js/utils

Version:

A Progressive React Framework for modern web development.

36 lines (35 loc) 1.39 kB
import fs from "fs"; import os from "os"; import path from "path"; import { nanoid, upath } from "../compiled.mjs"; const isPathString = (test)=>path.posix.basename(test) !== test || path.win32.basename(test) !== test; const isRelativePath = (test)=>/^\.\.?($|[\\/])/.test(test); const normalizeOutputPath = (s)=>s.replace(/\\/g, '\\\\'); const normalizeToPosixPath = (p)=>upath.normalizeSafe(path.normalize(p || '')).replace(/^([a-zA-Z]+):/, (_, m)=>`/${m.toLowerCase()}`); const getTemplatePath = (prefix)=>{ const tmpRoot = fs.realpathSync(os.tmpdir()); const parts = [ tmpRoot ]; prefix && parts.push(prefix); parts.push(nanoid()); return path.resolve(...parts); }; function getRealTemporaryDirectory() { let ret = null; try { ret = os.tmpdir(); ret = fs.realpathSync(ret); } catch {} return ret; } function splitPathString(str) { return str.split(/[\\/]/); } const removeLeadingSlash = (s)=>s.replace(/^\/+/, ''); const removeTailSlash = (s)=>s.replace(/\/+$/, ''); const removeSlash = (s)=>removeLeadingSlash(removeTailSlash(s)); function formatImportPath(str) { return str.replace(/\\/g, '/'); } export { formatImportPath, getRealTemporaryDirectory, getTemplatePath, isPathString, isRelativePath, normalizeOutputPath, normalizeToPosixPath, removeLeadingSlash, removeSlash, removeTailSlash, splitPathString };