Socket
Socket
Sign inDemoInstall

@lifeomic/termdiff

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lifeomic/termdiff - npm Package Compare versions

Comparing version 0.1.1 to 1.0.1-pr-24-1387089214-1635280003.0

index.d.ts

77

index.js

@@ -0,6 +1,7 @@

"use strict";
/**
* A module for producing a changset of differences between one module and
* A module for producing a changeset of differences between one module and
* another.
*
* When applied to a project in the Precision Health Cloud, the changset can
* When applied to a project in the Precision Health Cloud, the changeset can
* be used to migrate between Ontology versions with minimal downtime.

@@ -10,12 +11,14 @@ *

*/
'use strict';
const _equal = require('deep-equal');
const _map = require('lodash/map');
const _filter = require('lodash/filter');
const OP_ADD = 'add';
const OP_REMOVE = 'remove';
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.diff = exports.OP = void 0;
const differenceWith_1 = __importDefault(require("lodash/differenceWith"));
const isEqual_1 = __importDefault(require("lodash/isEqual"));
var OP;
(function (OP) {
OP["add"] = "add";
OP["remove"] = "remove";
})(OP = exports.OP || (exports.OP = {}));
/**

@@ -30,35 +33,23 @@ * Produces a changeset to migrate from the first array to the second array.

*
* @param {*} first an array of objects
* @param {*} second an array of objects
* @param {*} first an array of objects
* @param {*} second an array of objects
*/
const diff = (first, second) => {
if (typeof first === 'undefined' || !first) {
return [];
}
if (typeof second === 'undefined' || !second) {
return diff([], first);
}
let adds = _filter(second, (value) => !first.some(x => _equal(x, value)));
adds = _map(adds, (value) => {
return {
'op': OP_ADD,
'value': value
};
});
let removes = _filter(first, (value) => !second.some(x => _equal(x, value)));
removes = _map(removes, (value) => {
return {
'op': OP_REMOVE,
'value': value
};
});
return adds.concat(removes);
if (!first) {
return [];
}
if (!second) {
return (0, exports.diff)([], first);
}
const adds = (0, differenceWith_1.default)(second, first, isEqual_1.default).map((value) => ({
op: OP.add,
value: value,
}));
const removes = (0, differenceWith_1.default)(first, second, isEqual_1.default).map((value) => ({
op: OP.remove,
value: value,
}));
return adds.concat(removes);
};
module.exports = {
diff: diff
};
exports.diff = diff;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7Ozs7OztBQUVILDJFQUFtRDtBQUNuRCw2REFBcUM7QUFFckMsSUFBWSxFQUdYO0FBSEQsV0FBWSxFQUFFO0lBQ1osaUJBQVcsQ0FBQTtJQUNYLHVCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxFQUFFLEdBQUYsVUFBRSxLQUFGLFVBQUUsUUFHYjtBQU9EOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksTUFBTSxJQUFJLEdBQUcsQ0FDbEIsS0FBVyxFQUNYLE1BQVksRUFDSSxFQUFFO0lBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE9BQU8sSUFBQSxZQUFJLEVBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBQSx3QkFBYyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUc7UUFDVixLQUFLLEVBQUUsS0FBSztLQUNiLENBQUMsQ0FBQyxDQUFDO0lBRUosTUFBTSxPQUFPLEdBQUcsSUFBQSx3QkFBYyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU07UUFDYixLQUFLLEVBQUUsS0FBSztLQUNiLENBQUMsQ0FBQyxDQUFDO0lBRUosT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQXZCVyxRQUFBLElBQUksUUF1QmYiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgbW9kdWxlIGZvciBwcm9kdWNpbmcgYSBjaGFuZ2VzZXQgb2YgZGlmZmVyZW5jZXMgYmV0d2VlbiBvbmUgbW9kdWxlIGFuZFxuICogYW5vdGhlci5cbiAqXG4gKiBXaGVuIGFwcGxpZWQgdG8gYSBwcm9qZWN0IGluIHRoZSBQcmVjaXNpb24gSGVhbHRoIENsb3VkLCB0aGUgY2hhbmdlc2V0IGNhblxuICogYmUgdXNlZCB0byBtaWdyYXRlIGJldHdlZW4gT250b2xvZ3kgdmVyc2lvbnMgd2l0aCBtaW5pbWFsIGRvd250aW1lLlxuICpcbiAqIEBtb2R1bGUgQGxpZmVvbWljL3Rlcm1kaWZmXG4gKi9cblxuaW1wb3J0IGRpZmZlcmVuY2VXaXRoIGZyb20gJ2xvZGFzaC9kaWZmZXJlbmNlV2l0aCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5cbmV4cG9ydCBlbnVtIE9QIHtcbiAgYWRkID0gJ2FkZCcsXG4gIHJlbW92ZSA9ICdyZW1vdmUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZXNldDxUPiB7XG4gIG9wOiBPUDtcbiAgdmFsdWU6IFQ7XG59XG5cbi8qKlxuICogUHJvZHVjZXMgYSBjaGFuZ2VzZXQgdG8gbWlncmF0ZSBmcm9tIHRoZSBmaXJzdCBhcnJheSB0byB0aGUgc2Vjb25kIGFycmF5LlxuICpcbiAqIFRoZSBzaGFwZSBvZiB0aGUgb2JqZWN0cyBpbiBib3RoIGFycmF5cyBpcyBleHBlY3RlZCB0byBiZSBpZGVudGljYWwgYW5kXG4gKiBjb25zaXN0ZW50LlxuICpcbiAqIElmIHtAcGFyYW0gc2Vjb25kfSBpcyBudWxsLCB0aGUgY2hhbmdlc2V0IHByb2R1Y2VkIHdpbGwgY3JlYXRlXG4gKiB7QHBhcmFtIGZpcnN0fS5cbiAqXG4gKiBAcGFyYW0geyp9IGZpcnN0IGFuIGFycmF5IG9mIG9iamVjdHNcbiAqIEBwYXJhbSB7Kn0gc2Vjb25kIGFuIGFycmF5IG9mIG9iamVjdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGRpZmYgPSA8VCA9IGFueT4oXG4gIGZpcnN0PzogVFtdLFxuICBzZWNvbmQ/OiBUW10sXG4pOiBDaGFuZ2VzZXQ8VD5bXSA9PiB7XG4gIGlmICghZmlyc3QpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAoIXNlY29uZCkge1xuICAgIHJldHVybiBkaWZmKFtdLCBmaXJzdCk7XG4gIH1cblxuICBjb25zdCBhZGRzID0gZGlmZmVyZW5jZVdpdGgoc2Vjb25kLCBmaXJzdCwgaXNFcXVhbCkubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICBvcDogT1AuYWRkLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgfSkpO1xuXG4gIGNvbnN0IHJlbW92ZXMgPSBkaWZmZXJlbmNlV2l0aChmaXJzdCwgc2Vjb25kLCBpc0VxdWFsKS5tYXAoKHZhbHVlKSA9PiAoe1xuICAgIG9wOiBPUC5yZW1vdmUsXG4gICAgdmFsdWU6IHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIGFkZHMuY29uY2F0KHJlbW92ZXMpO1xufTtcbiJdfQ==
{
"name": "@lifeomic/termdiff",
"version": "0.1.1",
"version": "1.0.1-pr-24-1387089214-1635280003.0",
"description": "Compare ontologies and migrate between them.",
"main": "index.js",
"repository": "git@github.com:lifeomic/termdiff.git",
"author": "Taylor Steinberg <taylor.steinberg@lifeomic.com>",
"types": "index.d.ts",
"repository": {},
"author": "LifeOmic <development@lifeomic.com>",
"license": "MIT",
"files": [
"index.*s"
],
"scripts": {
"lint": "eslint index.js index.test.js",
"test": "nyc ava",
"postversion": "git push --tags"
"lint": "eslint . --ext .js,.ts",
"postlint": "tsc",
"test": "jest",
"prepublishOnly": "tsc -p tsconfig.build.json"
},
"devDependencies": {
"@lifeomic/eslint-plugin-node": "^1.3.0",
"ava": "^1.4.1",
"eslint": "^5.16.0",
"eslint-config-standard": "^12.0.0",
"eslint-plugin-import": "^2.17.2",
"eslint-plugin-node": "^9.0.1",
"eslint-plugin-promise": "^4.1.1",
"eslint-plugin-standard": "^4.0.0",
"nyc": "^14.1.0"
"@lifeomic/eslint-config-standards": "^2.0.0",
"@lifeomic/jest-config": "^1.0.3",
"@lifeomic/typescript-config": "^1.0.2",
"@types/jest": "^27.0.2",
"eslint": "^8.1.0",
"jest": "^27.3.1",
"jest-circus": "^27.3.1",
"ts-jest": "^27.0.7",
"typescript": "^4.4.4"
},
"dependencies": {
"deep-equal": "^1.0.1",
"lodash": "^4.17.11"
"@types/lodash": "^4.14.176",
"lodash": "^4.17.21"
},
"nyc": {
"check-coverage": true,
"include": [
"index.js"
],
"branches": 100,
"functions": 100,
"lines": 100,
"statements": 100
},
"eslintConfig": {
"extends": "plugin:@lifeomic/node/recommended",
"parserOptions": {
"ecmaVersion": 8,
"sourceType": "script"
}
},
"publishConfig": {

@@ -47,0 +35,0 @@ "access": "public"

@@ -26,4 +26,4 @@ ![GitHub](https://img.shields.io/github/license/lifeomic/termdiff.svg?style=for-the-badge)

```js
const { diff } = require('termdiff');
```ts
import { diff } from 'termdiff';
```

@@ -33,3 +33,3 @@

```js
```ts
const changeset = diff([{ 'foo': 'bar'}], [{'qux': 'baz'}])

@@ -79,3 +79,3 @@ ```

We use `ava` for testing and enforce 100% code coverage using `nyc`:
We use `jest` for testing and enforce 100% code coverage:

@@ -102,8 +102,4 @@ ```bash

Deployments are automated using [Travis CI](https://travis-ci.org/). Run the following to trigger a new release:
Deployments are automated using [GitHub Actions](https://github.com/features/actions). Update the version in `package.json` to release a new version
```bash
yarn version
```
See the section on [versioning](#versioning) to learn more.

@@ -110,0 +106,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc