Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
json-version-control
Advanced tools
A lightweight and easy-to-use package that provides version control functionality for JSON files.
json-version-control is a lightweight package that provides version control functionality for JSON files. It allows you to save and manage different versions of JSON data, track changes between versions, and apply specific versions to revert or update the JSON data.
Install the json-version-control package using npm:
npm install json-version-control
To use the json-version-control package, you can refer to the following API reference.
The VersionControl
class provides the following methods:
saveNewVersion(targetJson)
: Save a new version by calculating the difference between the source object and the target JSON object.
getHistoryVersions()
: Get the list of available history versions.
getPreviousVersion()
: Get the previous version based on the current version.
getNextVersion()
: Get the next version based on the current version.
applyVersionToSource(version)
: Apply the specified version to the source.
getInitialVersion()
: Get the source object from the initial version.
getLatestVersion()
: Get the source object from the latest version.
applyInitialVersion()
: Apply the initial version to the source.
applyLatestVersion()
: Apply the latest version to the source.
For detailed information about each method and its usage, please refer to the source code documentation.
Here's an example that demonstrates how to use the json-version-control package:
const { VersionControlSync } = require('json-version-control');
// Initialize the VersionControlSync instance with the configuration
const config = {
sourceFilePath: './data/source.json',
headFilePath: './data/head.json',
historyDirectory: './data/history',
diffFilePrefix: 'diff_',
};
const vc = new VersionControlSync(config);
// Save a new version - Version 1
const dataV1 = { name: 'John Doe', age: 30 };
vc.saveNewVersion(dataV1);
// Save a new version - Version 2
const dataV2 = { name: 'John Doe', age: 35 };
vc.saveNewVersion(dataV2);
// Save a new version - Version 3
const dataV3 = { name: 'John Smith', age: 35 };
vc.saveNewVersion(dataV3);
// Get the list of available history versions
const historyVersions = vc.getHistoryVersions();
console.log('History Versions:', historyVersions);
// Revert to a previous version - Revert to Version 2
const previousVersion = vc.getPreviousVersion();
if (previousVersion) {
vc.applyVersionToSource(previousVersion);
console.log('Reverted to previous version:', previousVersion);
} else {
console.log('No previous version found.');
}
// Apply the next version - Apply Version 3
const nextVersion = vc.getNextVersion();
if (nextVersion) {
vc.applyVersionToSource(nextVersion);
console.log('Applied next version:', nextVersion);
} else {
console.log('No next version found.');
}
// Get the source object from the initial version
const initialVersion = vc.getInitialVersion();
console.log('Source object from the initial version:', initialVersion);
// Get the source object from the latest version
const latestVersion = vc.getLatestVersion();
console.log('Source object from the latest version:', latestVersion);
// Apply the initial version
vc.applyInitialVersion();
console.log('Applied the initial version.');
// Apply the latest version
vc.applyLatestVersion();
console.log('Applied the latest version.');
This project is licensed under the ISC License.
FAQs
A lightweight and easy-to-use package that provides version control functionality for JSON files.
The npm package json-version-control receives a total of 5 weekly downloads. As such, json-version-control popularity was classified as not popular.
We found that json-version-control demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.