@dappnode/dappnodesdk
Version:
dappnodesdk is a tool to make the creation of new dappnode packages as simple as possible. It helps to initialize and publish in ethereum blockchain
42 lines • 1.56 kB
JavaScript
import fs from "fs";
import path from "path";
import { stringifyJson } from "../files/index.js";
import { ManifestFormat } from "../files/manifest/types.js";
export const releasesRecordFileName = "releases.json";
function readReleaseRecords(dir) {
const releaseRecordPath = path.join(dir, releasesRecordFileName);
return fs.existsSync(releaseRecordPath)
? JSON.parse(fs.readFileSync(releaseRecordPath, "utf8"))
: {};
}
function readReleaseRecord(dir, version) {
const releaseRecord = readReleaseRecords(dir);
return releaseRecord[version] || {};
}
function writeReleaseRecord(dir, version, newReleaseRecord) {
const releaseRecordPath = path.join(dir, releasesRecordFileName);
const releaseRecord = readReleaseRecords(dir);
const mergedReleaseRecord = {
...releaseRecord,
[version]: {
...releaseRecord[version],
...newReleaseRecord
}
};
fs.writeFileSync(releaseRecordPath, stringifyJson(mergedReleaseRecord, ManifestFormat.json));
}
export function addReleaseRecord({ dir, version, hash, to }) {
const releaseRecord = readReleaseRecord(dir, version);
const { uploadedTo = {}, hash: previousHash } = releaseRecord;
writeReleaseRecord(dir, version, {
hash,
uploadedTo: {
...(hash === previousHash ? uploadedTo : {}),
[to]: new Date().toUTCString()
}
});
}
export function addReleaseTx({ dir, version, link }) {
writeReleaseRecord(dir, version, { link });
}
//# sourceMappingURL=releaseRecord.js.map