UNPKG

filefive

Version:

SFTP/FTP/Amazon S3 client and dual-panel file manager for macOS and Linux

69 lines (68 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ATTRIBUTES = void 0; const promises_1 = require("node:fs/promises"); const node_path_1 = require("node:path"); const FileSystem_1 = require("../FileSystem"); const Local_1 = require("../Local"); const types_1 = require("../types"); exports.ATTRIBUTES = [ { name: "name", type: FileSystem_1.FileAttributeType.String, title: "Name" }, { name: "size", type: FileSystem_1.FileAttributeType.Number, title: "Size" }, { name: "modified", type: FileSystem_1.FileAttributeType.Date, title: "Last Modified" } ]; class Local extends FileSystem_1.FileSystem { open() { return Promise.resolve(types_1.LocalFileSystemID); } opened() { return true; } close() { } pwd() { return Promise.resolve((0, Local_1.pwd)()); } ls(dir) { return Promise.resolve((0, Local_1.list)(dir)); } async get(fromRemote, toLocal) { await (0, Local_1.copy)(fromRemote, toLocal, true); } async put(fromLocal, toRemote) { await (0, Local_1.copy)(fromLocal, toRemote); } async rm(path, recursive) { return (0, Local_1.del)(path); } async mkdir(path) { await (0, promises_1.mkdir)(path, { recursive: true }); } async rename(from, to) { await (0, promises_1.rename)(from, to); } async mv(from, to) { try { await (0, Local_1.del)(to); } catch (e) { } await (0, promises_1.mkdir)((0, node_path_1.dirname)(to), { recursive: true }); await (0, promises_1.rename)(from, to); } async cp(from, to, recursive) { await (0, promises_1.cp)(from, to, { recursive, force: true }); } async write(path, data) { return (0, promises_1.writeFile)(path, data); } } exports.default = Local;