97 lines
9.7 KiB
JavaScript
97 lines
9.7 KiB
JavaScript
import * as path from 'path';
|
|
import { glob, globSync, hasMagic } from 'glob';
|
|
import { REGEX_VAR, REGEX_VAR_ALT } from "@polymech/core/constants";
|
|
import { sync as exists } from '@polymech/fs/exists';
|
|
export const files = (cwd, glob, options) => globSync(glob, { ...{ dot: true, cwd, absolute: true, caseSensitiveMatch: false }, ...options || {} });
|
|
export const filesEx = (cwd, glob, options) => globSync(glob, { ...{ dot: true, cwd, absolute: true, caseSensitiveMatch: false }, ...options || {} });
|
|
import { isFile, isFolder } from '../fs.js';
|
|
import { globBase } from './glob-base.js';
|
|
import { parseGlob } from './glob-parse.js';
|
|
export { globBase } from './glob-base.js';
|
|
export { globParent } from './glob-parent.js';
|
|
const GLOB_GROUP_PATTERN = /[!*+?@]\(.*\)/;
|
|
export const getExtensions = (glob) => {
|
|
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 forward_slash = (path) => {
|
|
const isExtendedLengthPath = /^\\\\\?\\/.test(path);
|
|
const hasNonAscii = /[^\u0000-\u0080]+/.test(path);
|
|
if (isExtendedLengthPath || hasNonAscii) {
|
|
return path;
|
|
}
|
|
return path.replace(/\\/g, '/');
|
|
};
|
|
export const pathInfoEx = (src, altToken = false, globOptions = {}) => {
|
|
const srcParts = path.parse(src);
|
|
let variables = {
|
|
PATH: src
|
|
};
|
|
variables.DIR = srcParts.dir;
|
|
variables.NAME = srcParts.name;
|
|
variables.FILE_NAME = srcParts.base;
|
|
variables.FILE_EXT = srcParts.ext.replace('.', '');
|
|
variables.PATH = src;
|
|
variables.IS_FILE = isFile(src);
|
|
variables.IS_FOLDER = isFolder(src);
|
|
variables.IS_EXPRESSION = src.match(altToken ? REGEX_VAR_ALT : REGEX_VAR) != null;
|
|
variables.IS_GLOB = hasMagic(src);
|
|
if (variables.IS_GLOB) {
|
|
const glob_base = globBase(src);
|
|
variables.DIR = path.resolve(glob_base.base);
|
|
variables.FILE_NAME = glob_base.glob;
|
|
variables.GLOB = glob_base.glob;
|
|
variables.GLOB_EXTENSIONS = getExtensions(glob_base.glob);
|
|
globOptions = {
|
|
...globOptions,
|
|
cwd: globOptions.cwd ? path.join(globOptions.cwd, glob_base.base) : glob_base.base
|
|
};
|
|
variables.FILES = glob.sync(glob_base.glob, globOptions);
|
|
}
|
|
else if (variables.IS_FILE && exists(src)) {
|
|
variables.FILES = [src];
|
|
}
|
|
return variables;
|
|
};
|
|
export const pathInfo = (src, altToken = false, cwd = null) => {
|
|
const srcParts = path.parse(src);
|
|
let variables = {
|
|
PATH: src
|
|
};
|
|
variables.DIR = srcParts.dir;
|
|
variables.NAME = srcParts.name;
|
|
variables.FILE_NAME = srcParts.base;
|
|
variables.FILE_EXT = srcParts.ext.replace('.', '');
|
|
variables.PATH = src;
|
|
variables.IS_FILE = isFile(src);
|
|
variables.IS_FOLDER = isFolder(src);
|
|
variables.IS_EXPRESSION = src.match(altToken ? REGEX_VAR_ALT : REGEX_VAR) != null;
|
|
if (!variables.IS_FOLDER && !variables.IS_FILE) {
|
|
variables.IS_GLOB = hasMagic(srcParts.base);
|
|
}
|
|
else {
|
|
variables.IS_GLOB = false;
|
|
}
|
|
if (variables.IS_GLOB) {
|
|
const glob_base = globBase(src);
|
|
variables.DIR = path.resolve(glob_base.base);
|
|
variables.FILE_NAME = glob_base.glob;
|
|
variables.GLOB = glob_base.glob;
|
|
variables.GLOB_EXTENSIONS = getExtensions(glob_base.glob);
|
|
variables.FILES = globSync(glob_base.glob, {
|
|
dot: true,
|
|
cwd: path.resolve(cwd || variables.DIR),
|
|
absolute: true
|
|
});
|
|
}
|
|
else if (variables.IS_FILE && exists(src)) {
|
|
variables.FILES = [src];
|
|
}
|
|
return variables;
|
|
};
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnMvX2dsb2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFFNUIsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQWUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDbkUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVwRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFPLENBQUE7QUFDL0osTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFxQixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxFQUFFLENBQU8sQ0FBQTtBQUV6SyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFN0MsTUFBTSxrQkFBa0IsR0FBRyxlQUFlLENBQUE7QUFFMUMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25GLENBQUM7U0FBTSxDQUFDO1FBQ0wsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUdELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ2xDLE1BQU0sb0JBQW9CLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuRCxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbEQsSUFBSSxvQkFBb0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUNuQyxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFXLEVBQUUsV0FBb0IsS0FBSyxFQUFFLGNBQTJCLEVBQUUsRUFBYSxFQUFFO0lBQzNHLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEMsSUFBSSxTQUFTLEdBQWM7UUFDdkIsSUFBSSxFQUFFLEdBQUc7S0FDQyxDQUFBO0lBRWQsU0FBUyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFBO0lBQzVCLFNBQVMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQTtJQUM5QixTQUFTLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7SUFDbkMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDbEQsU0FBUyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUE7SUFDcEIsU0FBUyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDL0IsU0FBUyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkMsU0FBUyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUE7SUFDakYsU0FBUyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDakMsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQy9CLFNBQVMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFBO1FBQ3BDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtRQUMvQixTQUFTLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekQsV0FBVyxHQUFHO1lBQ1YsR0FBRyxXQUFXO1lBQ2QsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQWEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJO1NBQy9GLENBQUE7UUFDRCxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQU8sQ0FBQTtJQUNsRSxDQUFDO1NBQU0sSUFBSSxTQUFTLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUE7QUFDcEIsQ0FBQyxDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBVyxFQUFFLFdBQW9CLEtBQUssRUFBRSxNQUFjLElBQUksRUFBYSxFQUFFO0lBQzlGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEMsSUFBSSxTQUFTLEdBQWM7UUFDdkIsSUFBSSxFQUFFLEdBQUc7S0FDQyxDQUFBO0lBQ2QsU0FBUyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFBO0lBQzVCLFNBQVMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQTtJQUM5QixTQUFTLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7SUFDbkMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDbEQsU0FBUyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUE7SUFDcEIsU0FBUyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDL0IsU0FBUyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkMsU0FBUyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUE7SUFFakYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0MsU0FBUyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQy9DLENBQUM7U0FBTSxDQUFDO1FBQ0osU0FBUyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7SUFDN0IsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMvQixTQUFTLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzVDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtRQUNwQyxTQUFTLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUE7UUFDL0IsU0FBUyxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pELFNBQVMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDdkMsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUN2QyxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUE7SUFDTixDQUFDO1NBQU0sSUFBSSxTQUFTLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUE7QUFDcEIsQ0FBQyxDQUFBIn0=
|