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,194 @@
[![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]
Create function to format `powerAssertContext` object provided by power-assert at runtime.
USAGE
---------------------------------------
```javascript
var createFormatter = require('power-assert-context-formatter');
var FileRenderer = require('power-assert-renderer-file');
var AssertionRenderer = require('power-assert-renderer-assertion');
var DiagramRenderer = require('power-assert-renderer-diagram');
var ComparisonRenderer = require('power-assert-renderer-comparison');
var format = createFormatter({
renderers: [
FileRenderer,
AssertionRenderer,
DiagramRenderer,
ComparisonRenderer
]
});
var assert = require('assert');
var foo = 'foo';
var bar = 'bar';
try {
assert(foo === bar);
} catch (e) {
var formattedText = format(e.powerAssertContext);
. . .
}
```
API
---------------------------------------
### var createFormatter = require('power-assert-context-formatter');
| return type |
|:------------|
| `function` |
Returns creator function of formatter.
### var format = createFormatter(options);
| return type |
|:------------|
| `function` |
Create format function to format `powerAssertContext` object provided by power-assert.
#### options.renderers
| type | default value |
|:---------------------------------------------|:--------------|
| `Array` of `function` or `Array` of `object` | null |
Array of constructor function of various Renderers.
Each Renderer is instantiated for each assertion and registered to `ContextTraversal`.
##### customization
Each renderer accepts its options via form of object literal.
```javascript
var format = createFormatter({
renderers: [
{ ctor: FileRenderer },
{ ctor: AssertionRenderer },
{ ctor: DiagramRenderer, options: { maxDepth: 2 } },
{ ctor: ComparisonRenderer, options: { lineDiffThreshold: 3 } }
]
});
```
#### options.reducers
| type | default value |
|:----------------------|:--------------|
| `Array` of `function` | empty array |
Array of reducer function to be applied to `powerAssertContext`.
#### options.outputOffset
| type | default value |
|:---------|:--------------|
| `number` | `2` |
Number of spaces inserted at the left in power-assert output.
#### options.lineSeparator
| type | default value |
|:---------|:--------------|
| `string` | `"\n"` |
Line separator in power assert output.
#### options.legacy
| type | default value |
|:----------|:--------------|
| `boolean` | `false` |
When `true`, new renderers and legacy renderer implementations can be used together.
### var formattedText = format(powerAssertContext);
| return type |
|:------------|
| `string` |
Format `powerAssertContext` into `formattedText`. `powerAssertContext` is an internal object structure, containing informations to render. Example of `powerAssertContext` is:
```javascript
{
source: {
content: 'assert(foo === bar)',
filepath: 'test/some_test.js',
line: 1,
ast: '### JSON representation of AST nodes ###',
tokens: '### JSON representation of AST tokens ###',
visitorKeys: '### JSON representation of AST visitor keys ###'
},
args: [
{
value: false,
events: [
{
value: "FOO",
espath: "arguments/0/left"
},
{
value: "BAR",
espath: "arguments/0/right"
},
{
value: false,
espath: "arguments/0"
}
]
}
]
}
```
INSTALL
---------------------------------------
```sh
$ npm install --save-dev power-assert-context-formatter
```
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-context-formatter
[npm-image]: https://badge.fury.io/js/power-assert-context-formatter.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 @@
module.exports = require('./lib/create-formatter');

View File

@@ -0,0 +1,58 @@
'use strict';
var assign = require('core-js/library/fn/object/assign');
var ContextTraversal = require('power-assert-context-traversal');
var LegacyContextTraversal = require('./legacy-context-traversal');
var StringWriter = require('./string-writer');
var defaultOptions = require('./default-options');
var reduce = require('core-js/library/fn/array/reduce');
/**
* options.reducers [array]
* options.renderers [array]
* options.outputOffset [number]
* options.lineSeparator [string]
* options.legacy [boolean]
*/
function createFormatter (options) {
var formatterConfig = assign({}, defaultOptions(), options);
var reducers = formatterConfig.reducers || [];
var rendererConfigs = formatterConfig.renderers;
var len = rendererConfigs.length;
return function (powerAssertContext) {
var context = reduce(reducers, function (prevContext, reducer) {
return reducer(prevContext);
}, powerAssertContext);
var writer = new StringWriter(formatterConfig);
var traversal;
if (formatterConfig.legacy) {
traversal = new LegacyContextTraversal(context);
traversal.setWritable(writer);
} else {
traversal = new ContextTraversal(context);
}
for (var i = 0; i < len; i += 1) {
var RendererClass;
var renderer;
var config = rendererConfigs[i];
if (typeof config === 'object') {
RendererClass = config.ctor;
renderer = new RendererClass(config.options);
} else if (typeof config === 'function') {
RendererClass = config;
renderer = new RendererClass();
}
renderer.init(traversal);
if (typeof renderer.setWritable === 'function') {
renderer.setWritable(writer);
}
}
traversal.traverse();
writer.write('');
return writer.toString();
};
}
createFormatter.StringWriter = StringWriter;
module.exports = createFormatter;

View File

@@ -0,0 +1,11 @@
'use strict';
module.exports = function defaultOptions () {
return {
reducers: [
],
legacy: false,
outputOffset: 2,
lineSeparator: '\n'
};
};

View File

@@ -0,0 +1,32 @@
'use strict';
var ContextTraversal = require('power-assert-context-traversal');
var inherits = require('util').inherits;
var slice = Array.prototype.slice;
function LegacyContextTraversal (powerAssertContext) {
ContextTraversal.call(this, powerAssertContext);
}
inherits(LegacyContextTraversal, ContextTraversal);
LegacyContextTraversal.prototype.setWritable = function (writer) {
this.writer = writer;
};
LegacyContextTraversal.prototype.on = function () {
var args = slice.apply(arguments);
if (args[0] === 'render') {
args[0] = 'end';
}
ContextTraversal.prototype.on.apply(this, args);
};
LegacyContextTraversal.prototype.emit = function () {
var args = slice.apply(arguments);
if (args[0] === 'end') {
args[1] = this.writer;
}
ContextTraversal.prototype.emit.apply(this, args);
};
module.exports = LegacyContextTraversal;

View File

@@ -0,0 +1,28 @@
'use strict';
function spacerStr (len) {
var str = '';
for(var i = 0; i < len; i += 1) {
str += ' ';
}
return str;
}
function StringWriter (config) {
this.lines = [];
this.lineSeparator = config.lineSeparator;
this.regex = new RegExp(this.lineSeparator, 'g');
this.spacer = spacerStr(config.outputOffset);
}
StringWriter.prototype.write = function (str) {
this.lines.push(this.spacer + str.replace(this.regex, this.lineSeparator + this.spacer));
};
StringWriter.prototype.toString = function () {
var str = this.lines.join(this.lineSeparator);
this.lines.length = 0;
return str;
};
module.exports = StringWriter;

View File

@@ -0,0 +1,66 @@
{
"_from": "power-assert-context-formatter@^1.0.7",
"_id": "power-assert-context-formatter@1.2.0",
"_inBundle": false,
"_integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==",
"_location": "/power-assert-context-formatter",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "power-assert-context-formatter@^1.0.7",
"name": "power-assert-context-formatter",
"escapedName": "power-assert-context-formatter",
"rawSpec": "^1.0.7",
"saveSpec": null,
"fetchSpec": "^1.0.7"
},
"_requiredBy": [
"/power-assert-formatter"
],
"_resolved": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz",
"_shasum": "8fbe72692288ec5a7203cdf215c8b838a6061d2a",
"_spec": "power-assert-context-formatter@^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",
"power-assert-context-traversal": "^1.2.0"
},
"deprecated": false,
"description": "format power-assert context",
"devDependencies": {
"mocha": "^5.0.0",
"power-assert-context-reducer-ast": "^1.2.0",
"power-assert-renderer-assertion": "^1.2.0",
"power-assert-renderer-diagram": "^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-context-formatter",
"repository": {
"type": "git",
"url": "git+https://github.com/twada/power-assert-runtime.git"
},
"scripts": {
"test": "mocha"
},
"version": "1.2.0"
}