@lifeomic/termdiff
Advanced tools
Comparing version 0.1.1 to 1.0.1-pr-24-1387089214-1635280003.0
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 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
15933
373
7
128
2
+ Added@types/lodash@^4.14.176
+ Added@types/lodash@4.17.9(transitive)
- Removeddeep-equal@^1.0.1
- Removedcall-bind@1.0.7(transitive)
- Removeddeep-equal@1.1.2(transitive)
- Removeddefine-data-property@1.1.4(transitive)
- Removeddefine-properties@1.2.1(transitive)
- Removedes-define-property@1.0.0(transitive)
- Removedes-errors@1.3.0(transitive)
- Removedfunction-bind@1.1.2(transitive)
- Removedfunctions-have-names@1.2.3(transitive)
- Removedget-intrinsic@1.2.4(transitive)
- Removedgopd@1.0.1(transitive)
- Removedhas-property-descriptors@1.0.2(transitive)
- Removedhas-proto@1.0.3(transitive)
- Removedhas-symbols@1.0.3(transitive)
- Removedhas-tostringtag@1.0.2(transitive)
- Removedhasown@2.0.2(transitive)
- Removedis-arguments@1.1.1(transitive)
- Removedis-date-object@1.0.5(transitive)
- Removedis-regex@1.1.4(transitive)
- Removedobject-is@1.1.6(transitive)
- Removedobject-keys@1.1.1(transitive)
- Removedregexp.prototype.flags@1.5.2(transitive)
- Removedset-function-length@1.2.2(transitive)
- Removedset-function-name@2.0.2(transitive)
Updatedlodash@^4.17.21