mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2025-11-05 23:06:51 +00:00
push all website files
This commit is contained in:
58
website/functions/node_modules/power-assert-context-formatter/lib/create-formatter.js
generated
vendored
Normal file
58
website/functions/node_modules/power-assert-context-formatter/lib/create-formatter.js
generated
vendored
Normal 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;
|
||||
11
website/functions/node_modules/power-assert-context-formatter/lib/default-options.js
generated
vendored
Normal file
11
website/functions/node_modules/power-assert-context-formatter/lib/default-options.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function defaultOptions () {
|
||||
return {
|
||||
reducers: [
|
||||
],
|
||||
legacy: false,
|
||||
outputOffset: 2,
|
||||
lineSeparator: '\n'
|
||||
};
|
||||
};
|
||||
32
website/functions/node_modules/power-assert-context-formatter/lib/legacy-context-traversal.js
generated
vendored
Normal file
32
website/functions/node_modules/power-assert-context-formatter/lib/legacy-context-traversal.js
generated
vendored
Normal 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;
|
||||
28
website/functions/node_modules/power-assert-context-formatter/lib/string-writer.js
generated
vendored
Normal file
28
website/functions/node_modules/power-assert-context-formatter/lib/string-writer.js
generated
vendored
Normal 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;
|
||||
Reference in New Issue
Block a user