@churchapps/apihelper
Version:
Library of helper functions not specific to any one ChurchApps project or framework.
90 lines • 2.95 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileStorageHelper = void 0;
const AwsHelper_1 = require("./AwsHelper");
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const _1 = require(".");
class FileStorageHelper {
}
exports.FileStorageHelper = FileStorageHelper;
_a = FileStorageHelper;
FileStorageHelper.rootPath = path_1.default.resolve("./content") + "/";
FileStorageHelper.list = async (filePath) => {
let result = [];
switch (_1.EnvironmentBase.fileStore) {
case "S3":
result = await AwsHelper_1.AwsHelper.S3List(filePath);
break;
default:
result = await _a.listLocal(filePath);
break;
}
return result;
};
FileStorageHelper.move = async (oldKey, newKey) => {
switch (_1.EnvironmentBase.fileStore) {
case "S3":
await AwsHelper_1.AwsHelper.S3Move(oldKey, newKey);
break;
default:
await _a.moveLocal(oldKey, newKey);
break;
}
};
FileStorageHelper.store = async (key, contentType, contents) => {
switch (_1.EnvironmentBase.fileStore) {
case "S3":
await AwsHelper_1.AwsHelper.S3Upload(key, contentType, contents);
break;
default:
await _a.storeLocal(key, contents);
break;
}
};
FileStorageHelper.remove = async (key) => {
switch (_1.EnvironmentBase.fileStore) {
case "S3":
await AwsHelper_1.AwsHelper.S3Remove(key);
break;
default:
await _a.removeLocal(key);
break;
}
};
FileStorageHelper.removeFolder = async (key) => {
switch (_1.EnvironmentBase.fileStore) {
case "S3": break; // no need on s3
default:
await _a.removeLocalFolder(key);
break;
}
};
FileStorageHelper.storeLocal = async (key, contents) => {
const fileName = _a.rootPath + key;
const dirName = path_1.default.dirname(fileName);
if (!fs_1.default.existsSync(dirName))
fs_1.default.mkdirSync(dirName, { recursive: true });
fs_1.default.writeFileSync(fileName, contents);
};
FileStorageHelper.moveLocal = async (oldKey, newKey) => {
fs_1.default.rename(oldKey, newKey, err => { throw err; });
};
FileStorageHelper.removeLocal = async (key) => {
fs_1.default.unlinkSync(_a.rootPath + key);
};
FileStorageHelper.removeLocalFolder = async (key) => {
fs_1.default.rmdirSync(_a.rootPath + key);
};
FileStorageHelper.listLocal = async (filePath) => {
const fullPath = _a.rootPath + filePath;
if (!fs_1.default.existsSync(fullPath))
return [];
else
return fs_1.default.readdirSync(_a.rootPath + filePath);
};
//# sourceMappingURL=FileStorageHelper.js.map