push all website files

This commit is contained in:
Jacob Levine
2019-01-06 13:14:45 -06:00
parent d7301e26c3
commit d2d5d4c04e
15662 changed files with 2166516 additions and 0 deletions

View File

@@ -0,0 +1,117 @@
[![power-assert][power-assert-banner]][power-assert-url]
[![Build Status][travis-image]][travis-url]
[![NPM version][npm-image]][npm-url]
[![License][license-image]][license-url]
Produces comparison of expected and actual values of `BinaryExpression`.
```
assert(a.name === 'bar')
--- [string] 'bar'
+++ [string] a.name
@@ -1,3 +1,3 @@
-bar
```
USAGE
---------------------------------------
`var ComparisonRenderer = require('power-assert-renderer-comparison');`
#### options.stringify
| type | default value |
|:-----------|:--------------|
| `function` | [stringifier module](https://github.com/twada/stringifier) |
Function to stringify any target value.
#### options.maxDepth
| type | default value |
|:---------|:--------------|
| `number` | `2` |
Depth of object traversal. If object depth is greater than `maxDepth`, compound object (IOW, `Array` or `object`) will be pruned with `#` like `["foo",#Array#,#Object#]`.
#### options.lineSeparator
| type | default value |
|:---------|:--------------|
| `string` | `"\n"` |
Line separator in power assert output.
#### options.anonymous
| type | default value |
|:---------|:--------------|
| `string` | `"Object"` |
Type name to show when target object is created by anonymous constructor.
#### options.circular
| type | default value |
|:---------|:----------------|
| `string` | `"#@Circular#"` |
Name to show when target object is detected as circular structure.
#### options.diff
| type | default value |
|:-----------|:--------------|
| `function` | [udiff.js](https://github.com/twada/power-assert-runtime/blob/master/packages/power-assert-renderer-comparison/lib/udiff.js) |
Function to create diff string between two strings.
#### options.lineDiffThreshold
| type | default value |
|:---------|:--------------|
| `number` | `5` |
Threshold to show diff at character level or line level. If number of lines in target string is greater than `lineDiffThreshold`, then line diff mode will be used to show diff output.
INSTALL
---------------------------------------
```sh
$ npm install --save-dev power-assert-renderer-comparison
```
AUTHOR
---------------------------------------
* [Takuto Wada](https://github.com/twada)
LICENSE
---------------------------------------
Licensed under the [MIT](https://github.com/twada/power-assert-runtime/blob/master/LICENSE) license.
[power-assert-url]: https://github.com/power-assert-js/power-assert
[power-assert-banner]: https://raw.githubusercontent.com/power-assert-js/power-assert-js-logo/master/banner/banner-official-fullcolor.png
[travis-url]: https://travis-ci.org/twada/power-assert-runtime
[travis-image]: https://secure.travis-ci.org/twada/power-assert-runtime.svg?branch=master
[npm-url]: https://npmjs.org/package/power-assert-renderer-comparison
[npm-image]: https://badge.fury.io/js/power-assert-renderer-comparison.svg
[license-url]: https://github.com/twada/power-assert-runtime/blob/master/LICENSE
[license-image]: https://img.shields.io/badge/license-MIT-brightgreen.svg

View File

@@ -0,0 +1,115 @@
'use strict';
var BaseRenderer = require('power-assert-renderer-base');
var inherits = require('util').inherits;
var typeName = require('type-name');
var keys = require('core-js/library/fn/object/keys');
var forEach = require('core-js/library/fn/array/for-each');
var udiff = require('./lib/udiff');
var stringifier = require('stringifier');
var assign = require('core-js/library/fn/object/assign');
var defaultOptions = require('./lib/default-options');
var literalPattern = /^(?:String|Numeric|Null|Boolean|RegExp)?Literal$/;
function isLiteral (node) {
return literalPattern.test(node.type);
}
/**
* options.stringify [function]
* options.maxDepth [number]
* options.lineSeparator [string]
* options.anonymous [string]
* options.circular [string]
*
* options.diff [function]
* options.lineDiffThreshold [number]
*/
function ComparisonRenderer (config) {
BaseRenderer.call(this);
this.config = assign({}, defaultOptions(), config);
if (typeof this.config.stringify === 'function') {
this.stringify = this.config.stringify;
} else {
this.stringify = stringifier(this.config);
}
if (typeof this.config.diff === 'function') {
this.diff = this.config.diff;
} else {
this.diff = udiff(this.config);
}
this.espathToPair = {};
}
inherits(ComparisonRenderer, BaseRenderer);
ComparisonRenderer.prototype.onData = function (esNode) {
var pair;
if (!esNode.isCaptured) {
if (isTargetBinaryExpression(esNode.parent) && isLiteral(esNode.node)) {
this.espathToPair[esNode.parent.espath][esNode.key] = {code: esNode.code, value: esNode.value};
}
return;
}
if (isTargetBinaryExpression(esNode.parent)) {
this.espathToPair[esNode.parent.espath][esNode.key] = {code: esNode.code, value: esNode.value};
}
if (isTargetBinaryExpression(esNode)) {
pair = {
operator: esNode.node.operator,
value: esNode.value
};
this.espathToPair[esNode.espath] = pair;
}
};
ComparisonRenderer.prototype.onEnd = function () {
var _this = this;
var pairs = [];
forEach(keys(this.espathToPair), function (espath) {
var pair = _this.espathToPair[espath];
if (pair.left && pair.right) {
pairs.push(pair);
}
});
forEach(pairs, function (pair) {
_this.compare(pair);
});
};
ComparisonRenderer.prototype.compare = function (pair) {
if (isStringDiffTarget(pair)) {
this.showStringDiff(pair);
} else {
this.showExpectedAndActual(pair);
}
};
ComparisonRenderer.prototype.showExpectedAndActual = function (pair) {
this.write('');
this.write('[' + typeName(pair.right.value) + '] ' + pair.right.code);
this.write('=> ' + this.stringify(pair.right.value));
this.write('[' + typeName(pair.left.value) + '] ' + pair.left.code);
this.write('=> ' + this.stringify(pair.left.value));
};
ComparisonRenderer.prototype.showStringDiff = function (pair) {
this.write('');
this.write('--- [string] ' + pair.right.code);
this.write('+++ [string] ' + pair.left.code);
this.write(this.diff(pair.right.value, pair.left.value, this.config));
};
function isTargetBinaryExpression (esNode) {
return esNode &&
esNode.node.type === 'BinaryExpression' &&
(esNode.node.operator === '===' || esNode.node.operator === '==') &&
esNode.isCaptured &&
!(esNode.value);
}
function isStringDiffTarget(pair) {
return typeof pair.left.value === 'string' && typeof pair.right.value === 'string';
}
ComparisonRenderer.udiff = udiff;
module.exports = ComparisonRenderer;

View File

@@ -0,0 +1,13 @@
'use strict';
module.exports = function defaultOptions () {
return {
lineDiffThreshold: 5,
maxDepth: 2,
indent: null,
outputOffset: 2,
anonymous: 'Object',
circular: '#@Circular#',
lineSeparator: '\n'
};
};

View File

@@ -0,0 +1,38 @@
'use strict';
var DiffMatchPatch = require('diff-match-patch');
var dmp = new DiffMatchPatch();
function udiff (config) {
return function diff (text1, text2) {
var patch;
if (config && shouldUseLineLevelDiff(text1, config)) {
patch = udiffLines(text1, text2);
} else {
patch = udiffChars(text1, text2);
}
return decodeURIComponent(patch);
};
}
function shouldUseLineLevelDiff (text, config) {
return config.lineDiffThreshold < text.split(/\r\n|\r|\n/).length;
}
function udiffLines(text1, text2) {
/*jshint camelcase: false */
var a = dmp.diff_linesToChars_(text1, text2);
var diffs = dmp.diff_main(a.chars1, a.chars2, false);
dmp.diff_charsToLines_(diffs, a.lineArray);
dmp.diff_cleanupSemantic(diffs);
return dmp.patch_toText(dmp.patch_make(text1, diffs));
}
function udiffChars (text1, text2) {
/*jshint camelcase: false */
var diffs = dmp.diff_main(text1, text2, false);
dmp.diff_cleanupSemantic(diffs);
return dmp.patch_toText(dmp.patch_make(text1, diffs));
}
module.exports = udiff;

View File

@@ -0,0 +1,67 @@
{
"_from": "power-assert-renderer-comparison@^1.0.7",
"_id": "power-assert-renderer-comparison@1.2.0",
"_inBundle": false,
"_integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==",
"_location": "/power-assert-renderer-comparison",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "power-assert-renderer-comparison@^1.0.7",
"name": "power-assert-renderer-comparison",
"escapedName": "power-assert-renderer-comparison",
"rawSpec": "^1.0.7",
"saveSpec": null,
"fetchSpec": "^1.0.7"
},
"_requiredBy": [
"/power-assert-formatter"
],
"_resolved": "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz",
"_shasum": "e4f88113225a69be8aa586ead05aef99462c0495",
"_spec": "power-assert-renderer-comparison@^1.0.7",
"_where": "C:\\Users\\jlevi\\Downloads\\tr2022-strategy-master\\tr2022-strategy-master\\data analysis\\functions\\node_modules\\power-assert-formatter",
"author": {
"name": "Takuto Wada",
"email": "takuto.wada@gmail.com",
"url": "https://github.com/twada"
},
"bugs": {
"url": "https://github.com/twada/power-assert-runtime/issues"
},
"bundleDependencies": false,
"dependencies": {
"core-js": "^2.0.0",
"diff-match-patch": "^1.0.0",
"power-assert-renderer-base": "^1.1.1",
"stringifier": "^1.3.0",
"type-name": "^2.0.1"
},
"deprecated": false,
"description": "comparison renderer for power-assert context",
"devDependencies": {
"mocha": "^5.0.0",
"power-assert-renderer-assertion": "^1.2.0"
},
"files": [
"README.md",
"index.js",
"lib"
],
"homepage": "https://github.com/twada/power-assert-runtime",
"keywords": [
"power-assert"
],
"license": "MIT",
"main": "index.js",
"name": "power-assert-renderer-comparison",
"repository": {
"type": "git",
"url": "git+https://github.com/twada/power-assert-runtime.git"
},
"scripts": {
"test": "mocha"
},
"version": "1.2.0"
}