49 lines
3.7 KiB
JavaScript
49 lines
3.7 KiB
JavaScript
import * as fs from 'fs';
|
|
// https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#namespaces
|
|
// https://github.com/isaacs/node-glob/blob/main/src/pattern.ts
|
|
export const GLOB_GROUP_PATTERN = /[!*+?@]\(.*\)/;
|
|
export const UNC_REGEX = /^[\\\/]{2,}[^\\\/]+[\\\/]+[^\\\/]+/;
|
|
export const WIN32_PATH_REGEX = /^([a-z]:)?[\\\/]/i;
|
|
import { is_windows } from './os.js';
|
|
/*
|
|
const parseGlob = require('parse-glob')
|
|
|
|
export const getExtensions = (glob: string) => {
|
|
const match = glob.match(GLOB_GROUP_PATTERN);
|
|
if (match) {
|
|
return glob.substring((match.index || 0) + 2, glob.lastIndexOf(')')).split('|')
|
|
} else {
|
|
return [parseGlob(glob).path.ext]
|
|
}
|
|
}
|
|
*/
|
|
export const isFile = (src) => {
|
|
let srcIsFile = false;
|
|
try {
|
|
srcIsFile = fs.lstatSync(src).isFile();
|
|
}
|
|
catch (e) { }
|
|
return srcIsFile;
|
|
};
|
|
export const isFolder = (src) => {
|
|
let srcIsFolder = false;
|
|
try {
|
|
srcIsFolder = fs.lstatSync(src).isDirectory();
|
|
}
|
|
catch (e) { }
|
|
return srcIsFolder;
|
|
};
|
|
const is_relative_win32 = (fp) => !fp.test(UNC_REGEX) && !WIN32_PATH_REGEX.test(fp);
|
|
const is_absolute_posix = (fp) => fp.charAt(0) === '/';
|
|
const is_absolute_win32 = (fp) => {
|
|
if (/[a-z]/i.test(fp.charAt(0)) && fp.charAt(1) === ':' && fp.charAt(2) === '\\') {
|
|
return true;
|
|
}
|
|
// Microsoft Azure absolute filepath
|
|
if (fp.slice(0, 2) === '\\\\') {
|
|
return true;
|
|
}
|
|
return !is_relative_win32(fp);
|
|
};
|
|
export const is_absolute = (fp) => is_windows() ? is_absolute_win32(fp) : is_absolute_posix(fp);
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFFeEIsa0ZBQWtGO0FBQ2xGLCtEQUErRDtBQUMvRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxlQUFlLENBQUE7QUFDakQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLG9DQUFvQyxDQUFBO0FBQzdELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFBO0FBRW5ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFcEM7Ozs7Ozs7Ozs7O0VBV0U7QUFFRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUNsQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsSUFBSTtRQUNBLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO0tBQ3pDO0lBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRztJQUNmLE9BQU8sU0FBUyxDQUFBO0FBQ3BCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQ3BDLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztJQUN4QixJQUFJO1FBQ0EsV0FBVyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7S0FDaEQ7SUFBQyxPQUFPLENBQUMsRUFBRSxHQUFHO0lBQ2YsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ25GLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFBO0FBQ3RELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUM3QixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQzlFLE9BQU8sSUFBSSxDQUFBO0tBQ2Q7SUFDRCxvQ0FBb0M7SUFDcEMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLEVBQUU7UUFDM0IsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNqQyxDQUFDLENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUEifQ==
|