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,120 @@
[![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]
`powerAssertContext` reducer function to parse assertion expression at runtime.
Use this function when transpiler side does not add `ast`, `tokens` and `visitorKeys` at compile time.
API
---------------------------------------
### var appendAst = require('power-assert-context-reducer-ast');
### var appendedContext = appendAst(powerAssertContext);
Given `powerAssertContext` object, having structure below but does not have `ast`, `tokens` and `visitorKeys`, append them to output context.
input:
```js
{
source: {
content: 'assert(foo === bar)',
filepath: 'test/some_test.js',
line: 1
},
args: [
{
value: false,
events: [
{
value: "FOO",
espath: "arguments/0/left"
},
{
value: "BAR",
espath: "arguments/0/right"
},
{
value: false,
espath: "arguments/0"
}
]
}
]
}
```
output:
```js
{
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-reducer-ast
```
AUTHOR
---------------------------------------
* [Takuto Wada](https://github.com/twada)
CONTRIBUTORS
---------------------------------------
* [Haoliang Gao (popomore)](https://github.com/popomore)
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-reducer-ast
[npm-image]: https://badge.fury.io/js/power-assert-context-reducer-ast.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,118 @@
'use strict';
var parser = require('acorn');
require('acorn-es7-plugin')(parser);
var estraverse = require('estraverse');
var purifyAst = require('espurify').customize({extra: ['range']});
var assign = require('core-js/library/fn/object/assign');
module.exports = function (powerAssertContext) {
var source = powerAssertContext.source;
if (source.ast && source.tokens && source.visitorKeys) {
return powerAssertContext;
}
var astAndTokens;
try {
astAndTokens = parse(source);
} catch (e) {
return assign({}, powerAssertContext, { source: assign({}, source, { error: e }) });
}
var newSource = assign({}, source, {
ast: purifyAst(astAndTokens.expression),
tokens: astAndTokens.tokens,
visitorKeys: estraverse.VisitorKeys
});
return assign({}, powerAssertContext, { source: newSource });
};
function parserOptions(tokens) {
return {
sourceType: 'module',
ecmaVersion: 2018,
locations: true,
ranges: false,
onToken: tokens,
plugins: {asyncawait: true}
};
}
function parse (source) {
var code = source.content;
var ast, tokens;
function doParse(wrapper) {
var content = wrapper ? wrapper(code) : code;
var tokenBag = [];
ast = parser.parse(content, parserOptions(tokenBag));
if (wrapper) {
ast = ast.body[0].body;
tokens = tokenBag.slice(6, -2);
} else {
tokens = tokenBag.slice(0, -1);
}
}
if (source.async) {
doParse(wrappedInAsync);
} else if (source.generator) {
doParse(wrappedInGenerator);
} else {
doParse();
}
var exp = ast.body[0].expression;
var columnOffset = exp.loc.start.column;
var offsetTree = estraverse.replace(exp, {
keys: estraverse.VisitorKeys,
enter: function (eachNode) {
if (!eachNode.loc && eachNode.range) {
// skip already visited node
return eachNode;
}
eachNode.range = [
eachNode.loc.start.column - columnOffset,
eachNode.loc.end.column - columnOffset
];
delete eachNode.loc;
return eachNode;
}
});
return {
tokens: offsetAndSlimDownTokens(tokens),
expression: offsetTree
};
}
function wrappedInGenerator (jsCode) {
return 'function *wrapper() { ' + jsCode + ' }';
}
function wrappedInAsync (jsCode) {
return 'async function wrapper() { ' + jsCode + ' }';
}
function offsetAndSlimDownTokens (tokens) {
var i, token, newToken, result = [];
var columnOffset;
for(i = 0; i < tokens.length; i += 1) {
token = tokens[i];
if (i === 0) {
columnOffset = token.loc.start.column;
}
newToken = {
type: {
label: token.type.label
}
};
if (typeof token.value !== 'undefined') {
newToken.value = token.value;
}
newToken.range = [
token.loc.start.column - columnOffset,
token.loc.end.column - columnOffset
];
result.push(newToken);
}
return result;
}

View File

@@ -0,0 +1,72 @@
{
"_from": "power-assert-context-reducer-ast@^1.0.7",
"_id": "power-assert-context-reducer-ast@1.2.0",
"_inBundle": false,
"_integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==",
"_location": "/power-assert-context-reducer-ast",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "power-assert-context-reducer-ast@^1.0.7",
"name": "power-assert-context-reducer-ast",
"escapedName": "power-assert-context-reducer-ast",
"rawSpec": "^1.0.7",
"saveSpec": null,
"fetchSpec": "^1.0.7"
},
"_requiredBy": [
"/power-assert-formatter"
],
"_resolved": "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz",
"_shasum": "c7ca1c9e39a6fb717f7ac5fe9e76e192bf525df3",
"_spec": "power-assert-context-reducer-ast@^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,
"contributors": [
{
"name": "Haoliang Gao",
"url": "https://github.com/popomore"
}
],
"dependencies": {
"acorn": "^5.0.0",
"acorn-es7-plugin": "^1.0.12",
"core-js": "^2.0.0",
"espurify": "^1.6.0",
"estraverse": "^4.2.0"
},
"deprecated": false,
"description": "append AST into power-assert context",
"devDependencies": {
"mocha": "^5.0.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-reducer-ast",
"repository": {
"type": "git",
"url": "git+https://github.com/twada/power-assert-runtime.git"
},
"scripts": {
"test": "mocha"
},
"version": "1.2.0"
}