erfan-flmngr-server-fixed
Version:
> Node.js Backend for Flmngr file manager
83 lines • 3.04 kB
JavaScript
;
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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Utils = void 0;
const fsx = __importStar(require("fs-extra"));
class Utils {
static getNameWithoutExt(filename) {
let ext = Utils.getExt(filename);
if (ext == null)
return filename;
return filename.substring(0, filename.length - ext.length - 1);
}
static getExt(name) {
let i = name.lastIndexOf('.');
if (i > -1)
return name.substring(i + 1);
return '';
}
static getFreeFileName(dir, defaultName, alwaysWithIndex) {
let ok;
let i = alwaysWithIndex ? 0 : -1;
let name;
do {
i++;
if (i === 0)
name = defaultName;
else
name = Utils.getNameWithoutExt(defaultName) + "_" + i + (Utils.getExt(defaultName) != null ? "." + Utils.getExt(defaultName) : "");
let file = dir + name;
ok = !fsx.existsSync(file);
} while (!ok);
return name;
}
static fixFileName(name) {
let newName = "";
for (let i = 0; i < name.length; i++) {
let ch = name.substring(i, i + 1);
if (Utils.PROHIBITED_SYMBOLS.indexOf(ch) > -1)
ch = "_";
newName += ch;
}
return newName.toString();
}
static isFileNameSyntaxOk(name) {
if (name.length === 0 || name === "." || name.indexOf("..") > -1)
return false;
for (let i = 0; i < Utils.PROHIBITED_SYMBOLS.length; i++)
if (name.indexOf(Utils.PROHIBITED_SYMBOLS.charAt(i)) > -1)
return false;
if (name.length > 260)
return false;
return true;
}
static isImage(name) {
let exts = ["gif", "jpg", "jpeg", "png", "bmp"];
let ext = Utils.getExt(name);
for (let i = 0; i < exts.length; i++)
if (exts[i] === ext)
return true;
return false;
}
}
exports.Utils = Utils;
Utils.PROHIBITED_SYMBOLS = "/\\?%*:|\"<>";
//# sourceMappingURL=Utils.js.map