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,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;