UNPKG

sql-source-control-follow

Version:

Simple CLI for getting SQL into source control systems.

114 lines 3.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var fs = require("fs-extra"); var path = require("path"); /** * File checksum cache. */ var Cache = /** @class */ (function () { function Cache(config, con) { /** * File checksums. */ this.files = {}; this.config = config; this.conn = con; } /** * Load configuration options from file. */ Cache.prototype.load = function () { if (!this.doesDefaultExist()) { return; } var file = ''; try { if (this.conn.name > '') { file = path.join(this.conn.name, Cache.defaultCacheFile); } else { file = path.join(this.config.output.root, Cache.defaultCacheFile); } var cache = fs.readJsonSync(file); this.files = cache.files; } catch (error) { console.error("Could not parse cache file. Try deleting the existing " + Cache.defaultCacheFile + " file!"); process.exit(); } }; /** * Check if a `newSum` is different from the existing file's checksum. * * @param file File to check. * @param newSum New checksum value. */ Cache.prototype.didChange = function (file, newSum) { if (!this.files) { return true; } var oldSum = this.files[file]; if (!oldSum) { return true; } return newSum !== oldSum; }; /** * Add file checksum to cache. * * @param file File to check. * @param newSum New checksum value. */ Cache.prototype.add = function (file, newSum) { if (!file || !newSum) { return; } this.files[file] = newSum; }; /** * Write a config file with provided configuration. */ Cache.prototype.write = function () { var file = ''; try { if (this.conn.name > '') { file = path.join(this.conn.name, Cache.defaultCacheFile); } else { file = path.join(this.config.output.root, Cache.defaultCacheFile); } } catch (error) { console.error("Could not find file!:" + file); process.exit(); } var content = { files: this.files }; fs.writeJson(file, content, { spaces: 2 }); }; /** * Check if default cache file exists. */ Cache.prototype.doesDefaultExist = function () { var file = ''; try { if (this.conn.name > '') { file = path.join(this.conn.name, Cache.defaultCacheFile); } else { file = path.join(this.config.output.root, Cache.defaultCacheFile); } } catch (error) { console.error("Could not find file!:" + file); process.exit(); } return fs.existsSync(file); }; /** * Default cache file. */ Cache.defaultCacheFile = 'cache.json'; return Cache; }()); exports.default = Cache; //# sourceMappingURL=cache.js.map