@neo-one/server
Version:
NEO•ONE Server that NEO•ONE CLI and other clients connect to.
59 lines (57 loc) • 5.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const fs = tslib_1.__importStar(require("fs-extra"));
const path = tslib_1.__importStar(require("path"));
const EXT = '.ready';
class Ready {
constructor({ dir }) {
this.dir = dir;
}
async check(name) {
try {
const result = await fs.readFile(this.getFilePath(name), 'utf8');
return result === name;
}
catch (error) {
if (error.code === 'ENOENT') {
return false;
}
throw error;
}
}
async write(name) {
await fs.writeFile(this.getFilePath(name), name);
}
async getAll() {
try {
const files = await fs.readdir(this.dir);
return Promise.all(files.map(async (file) => fs.readFile(path.resolve(this.dir, file), 'utf8')));
}
catch (error) {
if (error.code === 'ENOENT') {
return [];
}
throw error;
}
}
async delete(name) {
try {
await fs.remove(this.getFilePath(name));
}
catch (error) {
if (error.code === 'ENOENT') {
return;
}
throw error;
}
}
getFilePath(name) {
return path.resolve(this.dir, `${this.cleanName(name)}${EXT}`);
}
cleanName(name) {
return name.replace('@', '').replace('/', '-');
}
}
exports.Ready = Ready;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlYWR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUErQjtBQUMvQixtREFBNkI7QUFFN0IsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDO0FBRXJCLE1BQWEsS0FBSztJQUdoQixZQUFtQixFQUFFLEdBQUcsRUFBNEI7UUFDbEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBWTtRQUM3QixJQUFJO1lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFakUsT0FBTyxNQUFNLEtBQUssSUFBSSxDQUFDO1NBQ3hCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUMzQixPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsTUFBTSxLQUFLLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQVk7UUFDN0IsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLElBQUk7WUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsRztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDM0IsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUVELE1BQU0sS0FBSyxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFZO1FBQzlCLElBQUk7WUFDRixNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUMzQixPQUFPO2FBQ1I7WUFFRCxNQUFNLEtBQUssQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBMURELHNCQTBEQyIsImZpbGUiOiJuZW8tb25lLXNlcnZlci9zcmMvUmVhZHkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5jb25zdCBFWFQgPSAnLnJlYWR5JztcblxuZXhwb3J0IGNsYXNzIFJlYWR5IHtcbiAgcHVibGljIHJlYWRvbmx5IGRpcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7IGRpciB9OiB7IHJlYWRvbmx5IGRpcjogc3RyaW5nIH0pIHtcbiAgICB0aGlzLmRpciA9IGRpcjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjaGVjayhuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZnMucmVhZEZpbGUodGhpcy5nZXRGaWxlUGF0aChuYW1lKSwgJ3V0ZjgnKTtcblxuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gbmFtZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHdyaXRlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0aGlzLmdldEZpbGVQYXRoKG5hbWUpLCBuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBbGwoKTogUHJvbWlzZTxyZWFkb25seSBzdHJpbmdbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIodGhpcy5kaXIpO1xuXG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiBmcy5yZWFkRmlsZShwYXRoLnJlc29sdmUodGhpcy5kaXIsIGZpbGUpLCAndXRmOCcpKSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvci5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGUobmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZzLnJlbW92ZSh0aGlzLmdldEZpbGVQYXRoKG5hbWUpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlUGF0aChuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKHRoaXMuZGlyLCBgJHt0aGlzLmNsZWFuTmFtZShuYW1lKX0ke0VYVH1gKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW5OYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBuYW1lLnJlcGxhY2UoJ0AnLCAnJykucmVwbGFjZSgnLycsICctJyk7XG4gIH1cbn1cbiJdfQ==