UNPKG

release-checker

Version:
83 lines (82 loc) 3.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var fs_1 = require("fs"); var path_1 = require("path"); function read(filename) { return { inDirectory: function (directory) { return { asJson: function () { var content = fs_1.readFileSync(path_1.join(directory, filename)).toString(); return JSON.parse(content); }, asString: function () { return fs_1.readFileSync(path_1.join(directory, filename)).toString(); }, }; }, }; } exports.read = read; function ensureThat(filename) { return { inDirectory: function (directory) { return { canBeRead: function () { return { asString: function () { try { read(filename) .inDirectory(directory) .asString(); } catch (error) { throw new Error(filename + " file is missing in '" + directory + "' "); } }, asJson: function () { try { read(filename) .inDirectory(directory) .asJson(); } catch (error) { throw new Error(filename + " file in '" + directory + "' is badly formed"); } }, }; }, hasScript: function (key) { var missingScript = "script '" + key + "' in " + filename + " file is missing"; try { var pkg = read(filename) .inDirectory(directory) .asJson(); var script = pkg && pkg.scripts && pkg.scripts[key]; if (!script) { throw new Error(missingScript); } } catch (error) { throw new Error(missingScript); } }, }; }, }; } exports.ensureThat = ensureThat; function jsonPackage() { return { inDirectory: function (directory) { return { hasScript: function (key) { var content = fs_1.readFileSync(path_1.join(directory, 'package.json')).toString(); var pkg = JSON.parse(content); return Boolean(pkg && pkg.scripts && pkg.scripts[key]); }, }; }, }; } exports.jsonPackage = jsonPackage;