Comparing version 2.5.5 to 2.5.6
@@ -41,3 +41,3 @@ //var Table = require('cli-table'); | ||
vertical_table.push({ "Some Key": "Some Value"}, | ||
{ "Another much longer key": "And its corresponding longer value"} | ||
{"Another much longer key": "And its corresponding longer value"} | ||
); | ||
@@ -44,0 +44,0 @@ console.log(vertical_table.toString()); |
let cp = require('child_process'); | ||
let pwd = __dirname; | ||
let output = cp.execSync('cat '+pwd+'/data/data.csv | node '+pwd+'/../src/terminal-adapter.js',{ | ||
let output = cp.execSync('cat '+pwd+'/data/data.csv | node '+pwd+'/../adapters/terminal-adapter.js',{ | ||
encoding:'utf8' | ||
}); | ||
console.log(output); |
@@ -26,5 +26,2 @@ var Table = require('../'); | ||
borderStyle : 1, | ||
paddingBottom : 0, | ||
paddingLeft: 2, | ||
paddingRight: 1, | ||
headerAlign : "right", | ||
@@ -31,0 +28,0 @@ align : "center", |
@@ -8,3 +8,3 @@ /** | ||
//Modules for browserify to ignore | ||
var _ignore = '--exclude=path --exclude=request --exclude=http --exclude=fs --exclude=vm --exclude=process --exclude=lodash --exclude=yargs'; | ||
var _ignore = '--ignore=path --ignore=request --ignore=http --ignore=fs --ignore=vm --ignore=process --ignore=lodash --ignore=yargs'; | ||
@@ -106,2 +106,3 @@ var banner = '/** \n<%= pkg.name %>: <%= pkg.description %> \nVersion: <%= pkg.version %> \nBuilt: <%= grunt.template.today("yyyy-mm-dd") %> <%= options.timestamp %>\nAuthor: <%= pkg.author %> \n*/\n'; | ||
var fs = require('fs'); | ||
var savedTestDir = __dirname + '/test/saved_test_outputs'; | ||
@@ -121,6 +122,7 @@ //Get list of all example scripts | ||
} | ||
var subname = element.split('.')[0]; | ||
var subname = element.split('/').pop().split('.')[0]; | ||
var filename = subname + '-output.txt'; | ||
fs.writeFileSync(filename,stdout); | ||
grunt.log.write('Wrote output to text file: ' + filename + '\n'); | ||
var filepath = savedTestDir + '/' + filename; | ||
fs.writeFileSync(filepath,stdout); | ||
grunt.log.write('Wrote output to text file: ' + filepath + '\n'); | ||
deferred.resolve(); | ||
@@ -141,14 +143,5 @@ }); | ||
grunt.registerTask('doc','Documentation generation task',function(){ | ||
var gruntDeferred = this.async(), | ||
orgy = require('orgy'), | ||
deferred1 = orgy.deferred({timeout : 20000}), | ||
deferred2 = orgy.deferred({timeout : 20000}), | ||
fs = require('fs'); | ||
orgy.queue([deferred1,deferred2],{ | ||
timeout : 20000 | ||
}) | ||
.done(function(){ | ||
gruntDeferred(); | ||
}); | ||
const fs = require('fs'); | ||
//Get README | ||
@@ -165,26 +158,27 @@ var readme = fs.readFileSync("./README.md",{ | ||
example1 = '\n```js\n' + example1 + '\n```'; | ||
readme = readme.replace(/<!--EXAMPLE-USAGE-->((?:.|[\r\n])*)<!--END-EXAMPLE-USAGE-->/m, | ||
'<!--EXAMPLE-USAGE-->\n'+example1+'\n<!--END-EXAMPLE-USAGE-->'); | ||
deferred1.resolve(); | ||
readme = readme.replace( | ||
/<!--EXAMPLE-USAGE-->((?:.|[\r\n])*)<!--END-EXAMPLE-USAGE-->/m, | ||
'<!--EXAMPLE-USAGE-->\n'+example1+'\n<!--END-EXAMPLE-USAGE-->' | ||
); | ||
//Inject public API reference | ||
var exec = require('child_process').exec, child; | ||
child = exec('jsdoc2md "src/*.js"', function (error, stdout, stderr) { | ||
//console.log('stdout: ' + stdout); | ||
//console.log('stderr: ' + stderr); | ||
if (error !== null) { | ||
grunt.log.error('Exec error: ' + error); | ||
} | ||
const jsdoc2md = require('jsdoc-to-markdown'); | ||
let jsdocData = jsdoc2md.getTemplateDataSync({ | ||
//configure: __dirname + '/conf.json', //jsdoc config file path | ||
files: 'src/*.js' | ||
}); | ||
let stdout = jsdoc2md.renderSync({ | ||
data: jsdocData, | ||
"no-usage-stats": true | ||
}); | ||
//Reformat documentation to reflect correct method naming. | ||
var str = stdout.replace(/new /g,'') | ||
.replace(/_public\./g,''); | ||
//Reformat documentation to reflect correct method naming. | ||
var str = stdout.replace(/new /g,'').replace(/_public\./g,''); | ||
readme = readme.replace(/<!--API-REF-->((?:.|[\r\n])*)<!--END-API-REF-->/m, | ||
'<!--API-REF-->\n\n'+str+'\n<!--END-API-REF-->'); | ||
readme = readme.replace( | ||
/<!--API-REF-->((?:.|[\r\n])*)<!--END-API-REF-->/m, | ||
'<!--API-REF-->\n\n'+str+'\n<!--END-API-REF-->' | ||
); | ||
fs.writeFileSync("./README.md",readme); | ||
deferred2.resolve(); | ||
}); | ||
//save | ||
fs.writeFileSync("./README.md",readme); | ||
}); | ||
@@ -191,0 +185,0 @@ |
{ | ||
"name": "tty-table", | ||
"version": "2.5.5", | ||
"version": "2.5.6", | ||
"description": "Command line table generator.", | ||
"main": "src/main.js", | ||
"bin": { | ||
"tty-table": "src/terminal-adapter.js" | ||
"tty-table": "adapters/terminal-adapter.js" | ||
}, | ||
@@ -34,28 +34,29 @@ "preferGlobal": false, | ||
"dependencies": { | ||
"chalk": "^1.1.0", | ||
"csv": "^1.1.1", | ||
"chalk": "^2.3.0", | ||
"csv": "^2.0.0", | ||
"merge": "^1.2.0", | ||
"smartwrap": "^1.0.7", | ||
"strip-ansi": "^3.0.0", | ||
"smartwrap": "^1.0.9", | ||
"strip-ansi": "^4.0.0", | ||
"use-strict": "^1.0.1", | ||
"wcwidth": "^1.0.1", | ||
"yargs": "^8.0.1" | ||
"yargs": "^10.0.3" | ||
}, | ||
"devDependencies": { | ||
"babel-preset-babili": "0.0.12", | ||
"babel-preset-babili": "0.1.4", | ||
"babel-preset-es2015": "^6.24.1", | ||
"babelify": "^7.3.0", | ||
"browserify-banner": "^1.0.4", | ||
"chai": "^3.0.0", | ||
"babelify": "^8.0.0", | ||
"browserify-banner": "^1.0.6", | ||
"chai": "^4.1.2", | ||
"glob": "^7.1.2", | ||
"grunt": "^1.0.1", | ||
"grunt-contrib-uglify": "^3.0.1", | ||
"grunt-contrib-uglify": "^3.1.0", | ||
"grunt-contrib-watch": "^1.0.0", | ||
"grunt-jsdoc": "^2.1.0", | ||
"grunt-jsdoc": "^2.2.0", | ||
"grunt-mocha": "^1.0.4", | ||
"grunt-mocha-test": "^0.13.2", | ||
"grunt-mocha-test": "^0.13.3", | ||
"grunt-shell": "^2.1.0", | ||
"mocha": "^3.4.1", | ||
"jsdoc-to-markdown": "^3.0.1", | ||
"mocha": "^4.0.1", | ||
"orgy": "^2.2.0" | ||
} | ||
} |
@@ -108,18 +108,18 @@ # tty-table | ||
[ | ||
[ | ||
{v: " ", l: " ", j: " ", h: " ", r: " "}, | ||
{v: " ", l: " ", j: " ", h: " ", r: " "}, | ||
{v: " ", l: " ", j: " ", h: " ", r: " "} | ||
], | ||
[ | ||
{v: "│", l: "┌", j: "┬", h: "─", r: "┐"}, | ||
{v: "│", l: "├", j: "┼", h: "─", r: "┤"}, | ||
{v: "│", l: "└", j: "┴", h: "─", r: "┘"} | ||
], | ||
[ | ||
{v: "|", l: "+", j: "+", h: "-", r: "+"}, | ||
{v: "|", l: "+", j: "+", h: "-", r: "+"}, | ||
{v: "|", l: "+", j: "+", h: "-", r: "+"} | ||
[ | ||
{v: " ", l: " ", j: " ", h: " ", r: " "}, | ||
{v: " ", l: " ", j: " ", h: " ", r: " "}, | ||
{v: " ", l: " ", j: " ", h: " ", r: " "} | ||
], | ||
[ | ||
{v: "│", l: "┌", j: "┬", h: "─", r: "┐"}, | ||
{v: "│", l: "├", j: "┼", h: "─", r: "┤"}, | ||
{v: "│", l: "└", j: "┴", h: "─", r: "┘"} | ||
], | ||
[ | ||
{v: "|", l: "+", j: "+", h: "-", r: "+"}, | ||
{v: "|", l: "+", j: "+", h: "-", r: "+"}, | ||
{v: "|", l: "+", j: "+", h: "-", r: "+"} | ||
] | ||
] | ||
] | ||
``` | ||
@@ -149,6 +149,6 @@ | ||
| header.column.marginTop | <code>number</code> | default: 0 | | ||
| header.column.maxWidth | <code>number</code> | default: 20 | | ||
| header.column.width | <code>string</code> \| <code>number</code> | default: "auto" | | ||
| header.column.paddingBottom | <code>number</code> | default: 0 | | ||
| header.column.paddingLeft | <code>number</code> | default: 0 | | ||
| header.column.paddingRight | <code>number</code> | default: 0 | | ||
| header.column.paddingLeft | <code>number</code> | default: 1 | | ||
| header.column.paddingRight | <code>number</code> | default: 1 | | ||
| header.column.paddingTop | <code>number</code> | default: 0 | | ||
@@ -155,0 +155,0 @@ | rows | <code>array</code> | [See example](#example-usage) | |
@@ -35,25 +35,24 @@ let Config = { | ||
paddingBottom : 0, | ||
paddingLeft : 0, | ||
paddingRight : 0, | ||
paddingLeft : 1, | ||
paddingRight : 1, | ||
paddingTop : 0, | ||
tableType : null, | ||
truncate: false, | ||
width : 20, | ||
width : "auto", | ||
GUTTER : 1, //undocumented | ||
columnSettings : [], | ||
headerEmpty : false, | ||
//save so cell options can be merged into column options | ||
table : { | ||
body : '', | ||
columnInnerWidths : [], | ||
columnWidths : [], | ||
columns : [], | ||
footer : '', | ||
header : '', //post-rendered strings. | ||
height : 0, | ||
typeLocked : false //once a table type is selected can't switch | ||
} | ||
}; | ||
Config.GUTTER = 1; | ||
//save so cell options can be merged into column options | ||
Config.columnSettings = []; | ||
Config.headerEmpty = false; | ||
Config.table = { | ||
body : '', | ||
columnInnerWidths : [], | ||
columnWidths : [], | ||
columns : [], | ||
footer : '', | ||
header : '', //post-rendered strings. | ||
height : 0, | ||
typeLocked : false //once a table type is selected can't switch | ||
}; | ||
module.exports = Config; |
@@ -66,5 +66,5 @@ //let StripAnsi = require("strip-ansi"); | ||
cellOptions.paddingLeft - | ||
cellOptions.paddingRight - | ||
cellOptions.paddingRight - | ||
config.GUTTER; | ||
switch(true){ | ||
@@ -79,5 +79,5 @@ //no wrap, truncate | ||
break; | ||
//asian characters | ||
//string has wide characters | ||
case(string.length < Format.calculateLength(string)): | ||
string = Format.handleAsianChars( | ||
string = Format.handleWideChars( | ||
string, | ||
@@ -88,5 +88,5 @@ cellOptions, | ||
break; | ||
//latin characters | ||
//string does not have wide characters | ||
default: | ||
string = Format.handleLatinChars(string,cellOptions,innerWidth); | ||
string = Format.handleNonWideChars(string,cellOptions,innerWidth); | ||
} | ||
@@ -149,3 +149,3 @@ | ||
Format.handleAsianChars = function(string,cellOptions,innerWidth){ | ||
Format.handleWideChars = function(string,cellOptions,innerWidth){ | ||
let count = 0; | ||
@@ -170,8 +170,5 @@ let start = 0; | ||
Format.handleLatinChars = function(string,cellOptions,innerWidth){ | ||
let calculatedWidth = innerWidth - | ||
cellOptions.paddingLeft - | ||
cellOptions.paddingRight; | ||
Format.handleNonWideChars = function(string,cellOptions,innerWidth){ | ||
let outstring = Wrap(string,{ | ||
width : calculatedWidth, | ||
width : innerWidth, | ||
trim : true//, | ||
@@ -185,28 +182,69 @@ //indent : '', | ||
Format.getColumnWidths = function(config,rows){ | ||
/** | ||
* Returns the widest cell give a collection of rows | ||
* | ||
* @param array rows | ||
* @param integer columnIndex | ||
* @returns integer | ||
*/ | ||
Format.inferColumnWidth = function(columnOptions,rows,columnIndex){ | ||
let widths = []; | ||
let source; //source of columns | ||
let iterable; | ||
//check widths on header settings if exists | ||
if(config.table.header[0] && config.table.header[0].length > 0){ | ||
source = config.table.header[0]; | ||
//add a row that contains the header value, so we use that width too | ||
if(typeof columnOptions === 'object' && columnOptions.value){ | ||
iterable = rows.slice(); | ||
let z = new Array(iterable[0].length); //create a new empty row | ||
z[columnIndex] = columnOptions.value.toString(); | ||
iterable.push(z); | ||
} | ||
else if(rows.length > 0){ | ||
source = rows[0]; | ||
//no header value, just use rows to derive max width | ||
else{ | ||
iterable = rows; | ||
} | ||
else { | ||
return []; | ||
} | ||
widths = source.map(function(cell){ | ||
if(typeof cell === 'object' && typeof cell.width !=='undefined'){ | ||
return cell.width; | ||
let widest = 0; | ||
iterable.forEach(function(row){ | ||
if(row[columnIndex] && row[columnIndex].toString().length > widest){ | ||
//widest = row[columnIndex].toString().length; | ||
widest = Wcwidth(row[columnIndex].toString()); | ||
} | ||
else{ | ||
return config.width; | ||
}); | ||
return widest; | ||
} | ||
Format.getColumnWidths = function(config,rows){ | ||
//iterate over the header if we have it, iterate over the first row | ||
//if we do not (to step through the correct number of columns) | ||
let iterable = (config.table.header[0] && config.table.header[0].length > 0) | ||
? config.table.header[0] : rows[0]; | ||
let widths = iterable.map(function(column,columnIndex){ //iterate through column settings | ||
let result; | ||
switch(true){ | ||
//column width specified in header | ||
case(typeof column === 'object' && typeof column.width === 'number'): | ||
result = column.width; | ||
break; | ||
//global column width set in config | ||
case(config.width && config.width !== 'auto'): | ||
result = config.width; | ||
break; | ||
default: | ||
//'auto' sets column width to longest value in initial data set | ||
let columnOptions = (config.table.header[0][columnIndex]) | ||
? config.table.header[0][columnIndex] : {}; | ||
result = Format.inferColumnWidth(columnOptions,rows,columnIndex); | ||
//add spaces for padding if not centered | ||
result = result + config.paddingLeft + config.paddingRight; | ||
} | ||
//add space for gutter | ||
result = result + config.GUTTER; | ||
return result; | ||
}); | ||
//check to make sure widths will fit the current display, or resize. | ||
//calculate sum of all column widths (including marginLeft) | ||
let totalWidth = widths.reduce(function(prev,curr){ | ||
@@ -219,3 +257,3 @@ return prev + curr; | ||
//check process exists in case we are in browser | ||
//if sum of all widths exceeds viewport, resize proportionately to fit | ||
if(process && process.stdout && totalWidth > process.stdout.columns){ | ||
@@ -226,6 +264,10 @@ //recalculate proportionately to fit size | ||
prop = prop.toFixed(2)-0.01; | ||
// when process.stdout.columns is 0, width will be negative | ||
if (prop > 0) { | ||
widths = widths.map(function(value){ | ||
return Math.floor(prop*value); | ||
}); | ||
} | ||
widths = widths.map(function(value){ | ||
return Math.floor(prop*value); | ||
}); | ||
} | ||
@@ -232,0 +274,0 @@ |
@@ -1,2 +0,2 @@ | ||
let Merge = require("merge"); | ||
let Merge = require('merge'); | ||
let Render = require('./render.js'); | ||
@@ -22,9 +22,9 @@ | ||
* @param {string} header.column.headerColor - default: terminal's default color | ||
* @param {number} header.column.marginLeft - default: 0 | ||
* @param {number} header.column.marginLeft - default: 0 | ||
* @param {number} header.column.marginTop - default: 0 | ||
* @param {number} header.column.maxWidth - default: 20 | ||
* @param {string|number} header.column.width - default: "auto" | ||
* @param {number} header.column.paddingBottom - default: 0 | ||
* @param {number} header.column.paddingLeft - default: 0 | ||
* @param {number} header.column.paddingRight - default: 0 | ||
* @param {number} header.column.paddingTop - default: 0 | ||
* @param {number} header.column.paddingLeft - default: 1 | ||
* @param {number} header.column.paddingRight - default: 1 | ||
* @param {number} header.column.paddingTop - default: 0 | ||
* | ||
@@ -59,17 +59,17 @@ * @param {array} rows - [See example](#example-usage) | ||
*[ | ||
* [ | ||
* {v: " ", l: " ", j: " ", h: " ", r: " "}, | ||
* {v: " ", l: " ", j: " ", h: " ", r: " "}, | ||
* {v: " ", l: " ", j: " ", h: " ", r: " "} | ||
* ], | ||
* [ | ||
* {v: "│", l: "┌", j: "┬", h: "─", r: "┐"}, | ||
* {v: "│", l: "├", j: "┼", h: "─", r: "┤"}, | ||
* {v: "│", l: "└", j: "┴", h: "─", r: "┘"} | ||
* ], | ||
* [ | ||
* {v: "|", l: "+", j: "+", h: "-", r: "+"}, | ||
* {v: "|", l: "+", j: "+", h: "-", r: "+"}, | ||
* {v: "|", l: "+", j: "+", h: "-", r: "+"} | ||
* ] | ||
* [ | ||
* {v: " ", l: " ", j: " ", h: " ", r: " "}, | ||
* {v: " ", l: " ", j: " ", h: " ", r: " "}, | ||
* {v: " ", l: " ", j: " ", h: " ", r: " "} | ||
* ], | ||
* [ | ||
* {v: "│", l: "┌", j: "┬", h: "─", r: "┐"}, | ||
* {v: "│", l: "├", j: "┼", h: "─", r: "┤"}, | ||
* {v: "│", l: "└", j: "┴", h: "─", r: "┘"} | ||
* ], | ||
* [ | ||
* {v: "|", l: "+", j: "+", h: "-", r: "+"}, | ||
* {v: "|", l: "+", j: "+", h: "-", r: "+"}, | ||
* {v: "|", l: "+", j: "+", h: "-", r: "+"} | ||
* ] | ||
*] | ||
@@ -87,6 +87,5 @@ * ``` | ||
//check if syntax adapter called, i.e. github.com/Automattic/cli-table | ||
if(Object.keys(arguments).length === 1 && | ||
typeof arguments[0] === 'string'){ | ||
return require('../'+arguments[0]); | ||
//a syntax adapter was called. return the adapter. | ||
if(Object.keys(arguments).length === 1 && typeof arguments[0] === 'string'){ | ||
return require('../adapters/'+arguments[0]); | ||
} | ||
@@ -96,4 +95,4 @@ | ||
let options = (typeof arguments[3] === 'object') ? arguments[3] : | ||
(typeof arguments[2] === 'object') ? arguments[2] : {}; | ||
let options = (typeof arguments[3] === 'object') ? arguments[3] : | ||
(typeof arguments[2] === 'object') ? arguments[2] : {}; | ||
@@ -142,3 +141,2 @@ Config = Merge(true,Config,options); | ||
Config.table.footer = (arguments[2] instanceof Array) ? arguments[2] : []; | ||
return Cls; | ||
@@ -145,0 +143,0 @@ } |
@@ -10,3 +10,2 @@ let Merge = require("merge"); | ||
Render.stringifyData = function(Config,data){ | ||
let sections = { | ||
@@ -16,7 +15,6 @@ header : [], | ||
footer : [] | ||
}, | ||
output = '', | ||
marginLeft = Array(Config.marginLeft + 1).join('\ '), | ||
borderStyle = Config.borderCharacters[Config.borderStyle], | ||
borders = []; | ||
}; | ||
let marginLeft = Array(Config.marginLeft + 1).join('\ '); | ||
let borderStyle = Config.borderCharacters[Config.borderStyle]; | ||
let borders = []; | ||
@@ -30,3 +28,10 @@ //because automattic/cli-table syntax infers table type based on | ||
Config.table.columnWidths = Format.getColumnWidths(Config,data); | ||
//when streaming values to tty-table, we don't want column widths to change | ||
//from one data set to the next, so we save the first set of widths and reuse | ||
if(!global.columnWidths){ | ||
global.columnWidths = Config.table.columnWidths = Format.getColumnWidths(Config,data); | ||
} | ||
else{ | ||
Config.table.columnWidths = global.columnWidths; | ||
} | ||
@@ -36,3 +41,3 @@ //stringify header cells | ||
sections.header = Config.table.header.map(function(row){ | ||
return Render.buildRow(Config,row,'header'); | ||
return buildRow(Config,row,'header'); | ||
}); | ||
@@ -46,3 +51,3 @@ } | ||
sections.body = data.map(function(row){ | ||
return Render.buildRow(Config,row,'body'); | ||
return buildRow(Config,row,'body'); | ||
}); | ||
@@ -54,3 +59,3 @@ | ||
sections.footer = sections.footer.map(function(row){ | ||
return Render.buildRow(Config,row,'footer'); | ||
return buildRow(Config,row,'footer'); | ||
}); | ||
@@ -75,7 +80,5 @@ | ||
//top horizontal border | ||
let output = ''; | ||
output += borders[0]; | ||
//rows | ||
let row; | ||
//for each section (header,body,footer) | ||
@@ -87,3 +90,3 @@ Object.keys(sections).forEach(function(p,i){ | ||
row = sections[p].shift(); | ||
let row = sections[p].shift(); | ||
@@ -140,3 +143,3 @@ //if(row.length === 0) {break} | ||
Render.buildRow = function(config,row,rowType){ | ||
const buildRow = function(config,row,rowType){ | ||
@@ -152,5 +155,4 @@ let minRowHeight = 0; | ||
//check for diffeerences in line length | ||
//force row to have correct number of columns | ||
let difL = config.table.columnWidths.length - row.length; | ||
if(difL > 0){ | ||
@@ -160,3 +162,2 @@ //add empty element to array | ||
.map(function(){return null})); | ||
//.map(function(){return ''})); | ||
} | ||
@@ -169,7 +170,6 @@ else if(difL < 0){ | ||
//get row as array of cell arrays | ||
//can't use es5 row functions (map, forEach because of | ||
//potential ellision; by which [1,,3] will only iterate 1,3 | ||
//can't use es5 row functions (map, forEach because i.e. | ||
//[1,,3] will only iterate 1,3 | ||
let cArrs = []; | ||
let rowLength = row.length; | ||
for(let index=0; index<rowLength; index++){ | ||
@@ -176,0 +176,0 @@ |
@@ -8,13 +8,16 @@ var chai = require("chai"); | ||
var grunt = require('grunt'); | ||
var savedTestDir = __dirname + '/saved_test_outputs'; | ||
//Test all example scripts against their saved output | ||
var list = glob.sync('examples/*.js'); | ||
var exampleScripts = glob.sync(__dirname + '/../examples/*.js'); | ||
list.forEach(function(element,index,array){ | ||
exampleScripts.forEach(function(element,index,array){ | ||
let fileName = element.split('/').pop(); | ||
let savedTestPath = savedTestDir + '/' + fileName + '-output.txt'; | ||
describe(element,function(){ | ||
it('Should match ' + element + '-output.txt',function(deferred){ | ||
it('Should match ' + savedTestPath, function(deferred){ | ||
var exec = require('child_process').exec, child; | ||
child = exec('node ./'+element+' --color=always', | ||
child = exec('node '+element+' --color=always', | ||
function (error, stdout, stderr) { | ||
@@ -26,4 +29,4 @@ //console.log('stdout: ' + stdout); | ||
} | ||
var subname = element.split('.')[0]; | ||
var expected1 = fs.readFileSync('./'+subname+'-output.txt',{encoding : 'utf-8'}); | ||
var subname = fileName.split('.')[0]; | ||
var expected1 = fs.readFileSync(savedTestDir + '/' + subname + '-output.txt',{encoding : 'utf-8'}); | ||
@@ -30,0 +33,0 @@ //example result should match saved output |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
1016131
17320
40
3
16
+ Addedansi-styles@3.2.1(transitive)
+ Addedchalk@2.4.2(transitive)
+ Addedcliui@4.1.0(transitive)
+ Addedcolor-convert@1.9.3(transitive)
+ Addedcolor-name@1.1.3(transitive)
+ Addedcsv@2.0.0(transitive)
+ Addedcsv-generate@2.2.2(transitive)
+ Addedcsv-parse@2.5.0(transitive)
+ Addedcsv-stringify@2.1.0(transitive)
+ Addedhas-flag@3.0.0(transitive)
+ Addedstream-transform@1.0.8(transitive)
+ Addedsupports-color@5.5.0(transitive)
+ Addedyargs@10.1.2(transitive)
+ Addedyargs-parser@8.1.0(transitive)
- Removedansi-styles@2.2.1(transitive)
- Removedchalk@1.1.3(transitive)
- Removedcliui@3.2.0(transitive)
- Removedcsv@1.2.1(transitive)
- Removedcsv-generate@1.1.2(transitive)
- Removedcsv-parse@1.3.3(transitive)
- Removedcsv-stringify@1.1.2(transitive)
- Removederror-ex@1.3.2(transitive)
- Removedfunction-bind@1.1.2(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedhas-ansi@2.0.0(transitive)
- Removedhasown@2.0.2(transitive)
- Removedhosted-git-info@2.8.9(transitive)
- Removedis-arrayish@0.2.1(transitive)
- Removedis-core-module@2.15.1(transitive)
- Removedload-json-file@2.0.0(transitive)
- Removednormalize-package-data@2.5.0(transitive)
- Removedparse-json@2.2.0(transitive)
- Removedpath-parse@1.0.7(transitive)
- Removedpath-type@2.0.0(transitive)
- Removedpify@2.3.0(transitive)
- Removedread-pkg@2.0.0(transitive)
- Removedread-pkg-up@2.0.0(transitive)
- Removedresolve@1.22.8(transitive)
- Removedsemver@5.7.2(transitive)
- Removedspdx-correct@3.2.0(transitive)
- Removedspdx-exceptions@2.5.0(transitive)
- Removedspdx-expression-parse@3.0.1(transitive)
- Removedspdx-license-ids@3.0.20(transitive)
- Removedstream-transform@0.2.2(transitive)
- Removedstrip-bom@3.0.0(transitive)
- Removedsupports-color@2.0.0(transitive)
- Removedsupports-preserve-symlinks-flag@1.0.0(transitive)
- Removedvalidate-npm-package-license@3.0.4(transitive)
- Removedyargs@8.0.2(transitive)
- Removedyargs-parser@7.0.0(transitive)
Updatedchalk@^2.3.0
Updatedcsv@^2.0.0
Updatedsmartwrap@^1.0.9
Updatedstrip-ansi@^4.0.0
Updatedyargs@^10.0.3