fs-extender
Version:
Extras suite for node fs module
199 lines • 6.39 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.replace = exports.equal = exports.toStringOrBuffer = exports.toBufferOrNotToBuffer = exports.fileURLToPath = exports.parseBoolean = exports.getItemTypeName = exports.getItemType = exports.ItemType = exports.getObjectOption = exports.getCallback = void 0;
const NodeUrl = __importStar(require("url"));
const utils_1 = require("@n3okill/utils");
/** @hidden */
function getCallback(opt, callback) {
if (utils_1.Type.isFunction(opt) && !callback) {
return opt;
}
return callback;
}
exports.getCallback = getCallback;
//todo: validar o tipo de variavel fazendo entrar o tipo na funcao e usando o Type.is...
function getObjectOption(options = {}, name, defaultValue) {
if (name in options) {
return options[name];
}
return defaultValue;
}
exports.getObjectOption = getObjectOption;
var ItemType;
(function (ItemType) {
ItemType[ItemType["file"] = 0] = "file";
ItemType[ItemType["dir"] = 1] = "dir";
ItemType[ItemType["blockDevice"] = 2] = "blockDevice";
ItemType[ItemType["characterDevice"] = 3] = "characterDevice";
ItemType[ItemType["symbolikLink"] = 4] = "symbolikLink";
ItemType[ItemType["socket"] = 5] = "socket";
ItemType[ItemType["fifo"] = 6] = "fifo";
ItemType[ItemType["unknown"] = 7] = "unknown";
})(ItemType = exports.ItemType || (exports.ItemType = {}));
/* istanbul ignore next */
function getItemType(stat) {
if (stat.isBlockDevice()) {
return ItemType.blockDevice;
}
else if (stat.isCharacterDevice()) {
return ItemType.characterDevice;
}
else if (stat.isDirectory()) {
return ItemType.dir;
}
else if (stat.isFIFO()) {
return ItemType.fifo;
}
else if (stat.isFile()) {
return ItemType.file;
}
else if (stat.isSocket()) {
return ItemType.socket;
}
else if (stat.isSymbolicLink()) {
return ItemType.symbolikLink;
}
else {
return ItemType.unknown;
}
}
exports.getItemType = getItemType;
/* istanbul ignore next */
function getItemTypeName(t) {
switch (t) {
case ItemType.blockDevice:
return "BlockDevice";
case ItemType.characterDevice:
return "CharacterDevice";
case ItemType.dir:
return "Dir";
case ItemType.fifo:
return "FIFO";
case ItemType.file:
return "File";
case ItemType.socket:
return "Socket";
case ItemType.symbolikLink:
return "SymbolikLink";
default:
return "Unknown";
}
}
exports.getItemTypeName = getItemTypeName;
/* istanbul ignore next */
function parseBoolean(val = "false") {
val = String(val).toLowerCase();
switch (val) {
case "true":
case "1":
return true;
default:
return false;
}
}
exports.parseBoolean = parseBoolean;
/* istanbul ignore next */
function isURLInstance(fileURLOrPath) {
return fileURLOrPath != null && fileURLOrPath.href && fileURLOrPath.origin;
}
/* istanbul ignore next */
function fileURLToPath(str) {
if ((typeof str === "string" && str.startsWith("file://")) || isURLInstance(str)) {
try {
return NodeUrl.fileURLToPath(str);
}
catch (err) { }
}
return str;
}
exports.fileURLToPath = fileURLToPath;
/* istanbul ignore next */
function toBufferOrNotToBuffer(isBuffer, str) {
return isBuffer ? (Buffer.isBuffer(str) ? str : Buffer.from(str)) : Buffer.isBuffer(str) ? str.toString() : str;
}
exports.toBufferOrNotToBuffer = toBufferOrNotToBuffer;
/* istanbul ignore next */
function toStringOrBuffer(isBuffer, str) {
if (isBuffer) {
if (Buffer.isBuffer(str)) {
return str;
}
else {
return Buffer.from(fileURLToPath(str));
}
}
else {
if (Buffer.isBuffer(str)) {
return str.toString();
}
else {
return fileURLToPath(str);
}
}
}
exports.toStringOrBuffer = toStringOrBuffer;
/* istanbul ignore next */
function equal(obj1, obj2) {
if (Buffer.isBuffer(obj1)) {
if (Buffer.isBuffer(obj2)) {
return obj1.equals(obj2);
}
return false;
}
else {
if (Buffer.isBuffer(obj2)) {
return false;
}
return obj1 === obj2;
}
}
exports.equal = equal;
/** @internal */
/* istanbul ignore next */
function replace(str, searchValue, replaceValue) {
if (utils_1.Type.isString(str)) {
if (utils_1.Type.isBuffer(searchValue)) {
searchValue = searchValue.toString();
}
if (utils_1.Type.isBuffer(replaceValue)) {
replaceValue = replaceValue.toString();
}
return str.replace(searchValue, replaceValue);
}
else {
if (utils_1.Type.isString(searchValue)) {
searchValue = Buffer.from(searchValue);
}
if (utils_1.Type.isString(replaceValue)) {
replaceValue = Buffer.from(replaceValue);
}
const idx = str.indexOf(searchValue);
if (idx !== -1) {
const after = replace(str.slice(idx + searchValue.length), searchValue, replaceValue);
const len = idx + replaceValue.length + after.length;
return Buffer.concat([str.slice(0, idx), replaceValue, after], len);
}
return str;
}
}
exports.replace = replace;
//# sourceMappingURL=util.js.map