eslint-plugin-ferramentas
Version:
A bundle of useful ESLint rules
40 lines (39 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isPathRelative = exports.createDebugger = exports.createExecuteOnce = void 0;
const path_1 = require("path");
const createExecuteOnce = (valueGenerator) => {
let aux = null;
return () => {
if (aux === null) {
try {
aux = { value: valueGenerator(), error: false };
}
catch (error) {
aux = { value: error, error: true };
}
}
if (aux.error) {
throw aux.value;
}
return aux.value;
};
};
exports.createExecuteOnce = createExecuteOnce;
const createDebugger = (debugging) => {
if (!debugging) {
return () => { };
}
// eslint-disable-next-line no-console
return (...args) => {
console.debug(...args);
};
};
exports.createDebugger = createDebugger;
/**
* Based on the node implementation
* @see https://github.com/nodejs/node/blob/main/lib/internal/modules/cjs/loader.js#L1956C10-L1956C20
*/
const isPathRelativePattern = new RegExp(`^(\\.\\.{0,1}|\\.\\.{0,1}\\${path_1.sep}.*)$`);
const isPathRelative = (path) => isPathRelativePattern.test(path);
exports.isPathRelative = isPathRelative;