Dia antes primera install
This commit is contained in:
2
node_modules/json2xls/.npmignore
generated
vendored
Executable file
2
node_modules/json2xls/.npmignore
generated
vendored
Executable file
@@ -0,0 +1,2 @@
|
||||
node_modules/
|
||||
example/output.xlsx
|
||||
5
node_modules/json2xls/.travis.yml
generated
vendored
Normal file
5
node_modules/json2xls/.travis.yml
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 0.10
|
||||
before_script:
|
||||
- "npm i -g jasmine-node"
|
||||
15
node_modules/json2xls/example/index.js
generated
vendored
Executable file
15
node_modules/json2xls/example/index.js
generated
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
var json2xls = require('../lib/json2xls');
|
||||
var fs = require('fs');
|
||||
|
||||
var json = {
|
||||
foo: 'bar',
|
||||
qux: 'moo',
|
||||
poo: 123,
|
||||
stux: new Date()
|
||||
}
|
||||
|
||||
var xls = json2xls(json,{
|
||||
fields: {'poo':'string'}
|
||||
});
|
||||
|
||||
fs.writeFileSync('output.xlsx', xls, 'binary');
|
||||
99
node_modules/json2xls/lib/json2xls.js
generated
vendored
Normal file
99
node_modules/json2xls/lib/json2xls.js
generated
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
var nodeExcel = require('excel-export');
|
||||
|
||||
var transform = function(json,config) {
|
||||
var conf = transform.prepareJson(json,config);
|
||||
var result = nodeExcel.execute(conf);
|
||||
return result;
|
||||
};
|
||||
|
||||
//get a xls type based on js type
|
||||
function getType(obj,type) {
|
||||
if (type) {
|
||||
return type;
|
||||
}
|
||||
var t = typeof obj;
|
||||
switch (t) {
|
||||
case 'string':
|
||||
case 'number':
|
||||
return t;
|
||||
case 'boolean':
|
||||
return 'bool';
|
||||
default:
|
||||
return 'string';
|
||||
}
|
||||
}
|
||||
|
||||
//get a nested property from a JSON object given its key, i.e 'a.b.c'
|
||||
function getByString(object, path) {
|
||||
path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
|
||||
path = path.replace(/^\./, ''); // strip a leading dot
|
||||
var a = path.split('.');
|
||||
while (a.length) {
|
||||
var n = a.shift();
|
||||
if (n in object) {
|
||||
object = (object[n]==undefined)?null:object[n];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
//prepare json to be in the correct format for excel-export
|
||||
transform.prepareJson = function(json,config) {
|
||||
var res = {};
|
||||
var conf = config||{};
|
||||
var jsonArr = [].concat(json);
|
||||
var fields = conf.fields || Object.keys(jsonArr[0]||{});
|
||||
var types = [];
|
||||
if (!(fields instanceof Array)) {
|
||||
types = Object.keys(fields).map(function(key) {
|
||||
return fields[key];
|
||||
});
|
||||
fields = Object.keys(fields);
|
||||
}
|
||||
//cols
|
||||
res.cols = fields.map(function(key,i) {
|
||||
return {
|
||||
caption: key,
|
||||
type: getType(jsonArr[0][key],types[i]),
|
||||
beforeCellWrite: function(row, cellData, eOpt){
|
||||
eOpt.cellType = getType(cellData,types[i]);
|
||||
return cellData;
|
||||
}
|
||||
};
|
||||
});
|
||||
//rows
|
||||
res.rows = jsonArr.map(function(row) {
|
||||
return fields.map(function(key) {
|
||||
var value = getByString(row,key);
|
||||
//stringify objects
|
||||
if(value && value.constructor == Object) value = JSON.stringify(value);
|
||||
//replace illegal xml characters with a square
|
||||
//see http://www.w3.org/TR/xml/#charsets
|
||||
//#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
|
||||
if (typeof value === 'string') {
|
||||
value = value.replace(/[^\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]/g,'');
|
||||
}
|
||||
return value;
|
||||
});
|
||||
});
|
||||
//add style xml if given
|
||||
if (conf.style) {
|
||||
res.stylesXmlFile = conf.style;
|
||||
}
|
||||
return res;
|
||||
};
|
||||
|
||||
transform.middleware = function(req,res,next) {
|
||||
res.xls = function(fn,data,config) {
|
||||
var xls = transform(data,config);
|
||||
res.setHeader('Content-Type', 'application/vnd.openxmlformats');
|
||||
res.setHeader("Content-Disposition", "attachment; filename=" + fn);
|
||||
res.end(xls, 'binary');
|
||||
};
|
||||
next();
|
||||
};
|
||||
|
||||
module.exports = transform;
|
||||
32
node_modules/json2xls/npm-shrinkwrap.json
generated
vendored
Normal file
32
node_modules/json2xls/npm-shrinkwrap.json
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "json2xls",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"excel-export": {
|
||||
"version": "0.3.11",
|
||||
"from": "excel-export@>=0.3.11 <0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/excel-export/-/excel-export-0.3.11.tgz",
|
||||
"dependencies": {
|
||||
"node-zip": {
|
||||
"version": "1.1.1",
|
||||
"from": "node-zip@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/node-zip/-/node-zip-1.1.1.tgz",
|
||||
"dependencies": {
|
||||
"jszip": {
|
||||
"version": "2.5.0",
|
||||
"from": "jszip@2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/jszip/-/jszip-2.5.0.tgz",
|
||||
"dependencies": {
|
||||
"pako": {
|
||||
"version": "0.2.8",
|
||||
"from": "pako@>=0.2.5 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
node_modules/json2xls/output.xlsx
generated
vendored
Normal file
BIN
node_modules/json2xls/output.xlsx
generated
vendored
Normal file
Binary file not shown.
15
node_modules/json2xls/package.json
generated
vendored
Normal file
15
node_modules/json2xls/package.json
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "json2xls",
|
||||
"version": "0.1.2",
|
||||
"description": "canonically transform json to an excel document",
|
||||
"main": "lib/json2xls.js",
|
||||
"scripts": {
|
||||
"test": "jasmine-node spec"
|
||||
},
|
||||
"repository": "https://github.com/rikkertkoppes/json2xls",
|
||||
"author": "Rikkert Koppes <rikkert@rikkertkoppes.com",
|
||||
"license": "BSD-2-Clause",
|
||||
"dependencies": {
|
||||
"excel-export": "~0.3.11"
|
||||
}
|
||||
}
|
||||
86
node_modules/json2xls/readme.md
generated
vendored
Executable file
86
node_modules/json2xls/readme.md
generated
vendored
Executable file
@@ -0,0 +1,86 @@
|
||||
json2xls
|
||||
========
|
||||
|
||||
[](https://travis-ci.org/rikkertkoppes/json2xls)
|
||||
|
||||
utility to convert json to a excel file, based on [Node-Excel-Export](https://github.com/functionscope/Node-Excel-Export)
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
npm install json2xls
|
||||
|
||||
Usage
|
||||
------
|
||||
|
||||
Use to save as file:
|
||||
|
||||
var json2xls = require('json2xls');
|
||||
var json = {
|
||||
foo: 'bar',
|
||||
qux: 'moo',
|
||||
poo: 123,
|
||||
stux: new Date()
|
||||
}
|
||||
|
||||
var xls = json2xls(json);
|
||||
|
||||
fs.writeFileSync('data.xlsx', xls, 'binary');
|
||||
|
||||
Or use as express middleware. It adds a convenience `xls` method to the response object to immediately output an excel as download.
|
||||
|
||||
var jsonArr = [{
|
||||
foo: 'bar',
|
||||
qux: 'moo',
|
||||
poo: 123,
|
||||
stux: new Date()
|
||||
},
|
||||
{
|
||||
foo: 'bar',
|
||||
qux: 'moo',
|
||||
poo: 345,
|
||||
stux: new Date()
|
||||
}];
|
||||
|
||||
app.use(json2xls.middleware);
|
||||
|
||||
app.get('/',function(req, res) {
|
||||
res.xls('data.xlsx', jsonArr);
|
||||
});
|
||||
|
||||
Options
|
||||
-------
|
||||
|
||||
As a second parameter to `json2xls` or a third parameter to `res.xls`, a map of options can be passed:
|
||||
|
||||
var xls = json2xls(json, options);
|
||||
res.xls('data.xlsx', jsonArr, options);
|
||||
|
||||
The following options are supported:
|
||||
|
||||
- style: a styles xml file, see <https://github.com/functionscope/Node-Excel-Export>
|
||||
- fields: either an array or map containing field configuration:
|
||||
- array: a list of names of fields to be exported, in that order
|
||||
- object: a map of names of fields to be exported and the types of those fields. Supported types are 'number','string','bool'
|
||||
|
||||
Example:
|
||||
|
||||
var json2xls = require('json2xls');
|
||||
var json = {
|
||||
foo: 'bar',
|
||||
qux: 'moo',
|
||||
poo: 123,
|
||||
stux: new Date()
|
||||
}
|
||||
|
||||
//export only the field 'poo'
|
||||
var xls = json2xls(json,{
|
||||
fields: ['poo']
|
||||
});
|
||||
|
||||
//export only the field 'poo' as string
|
||||
var xls = json2xls(json,{
|
||||
fields: {poo:'string'}
|
||||
});
|
||||
|
||||
fs.writeFileSync('data.xlsx', xls, 'binary');
|
||||
502
node_modules/json2xls/spec/arrayData.json
generated
vendored
Executable file
502
node_modules/json2xls/spec/arrayData.json
generated
vendored
Executable file
@@ -0,0 +1,502 @@
|
||||
[
|
||||
{
|
||||
"name": "Ivy Dickson",
|
||||
"date": "2013-05-27T11:04:15-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"date": "2014-02-07T22:09:58-08:00",
|
||||
"name": "Walker Lynch",
|
||||
"number": 2
|
||||
},
|
||||
{
|
||||
"number": 5,
|
||||
"date": "2013-06-16T05:29:13-07:00",
|
||||
"name": "Maxwell U. Holden"
|
||||
},
|
||||
{
|
||||
"name": "Courtney Short",
|
||||
"date": "2014-03-14T07:32:34-07:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Amy Baird",
|
||||
"date": "2014-03-02T17:43:22-08:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Kirby G. Hanson",
|
||||
"date": "2014-03-31T00:42:54-07:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Cairo U. Witt",
|
||||
"date": "2014-10-05T07:47:46-07:00",
|
||||
"number": 5
|
||||
},
|
||||
{
|
||||
"name": "Elliott J. Sandoval",
|
||||
"date": "2013-05-29T19:01:47-07:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Quon Fry",
|
||||
"date": "2014-07-16T12:37:51-07:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Lynn E. Solomon",
|
||||
"date": "2014-01-12T13:46:28-08:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Mona V. Todd",
|
||||
"date": "2012-11-22T01:04:20-08:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Maggy Floyd",
|
||||
"date": "2013-03-01T13:08:09-08:00",
|
||||
"number": 1
|
||||
},
|
||||
{
|
||||
"name": "Dahlia Schwartz",
|
||||
"date": "2014-01-01T20:46:08-08:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Joel C. Kaufman",
|
||||
"date": "2014-05-31T21:59:50-07:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Nathaniel J. Orr",
|
||||
"date": "2013-04-27T19:20:15-07:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Lucas F. Serrano",
|
||||
"date": "2013-09-25T06:58:37-07:00",
|
||||
"number": 1
|
||||
},
|
||||
{
|
||||
"name": "Sylvester R. Foreman",
|
||||
"date": "2013-09-04T16:03:51-07:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Ezekiel Byers",
|
||||
"date": "2013-04-10T05:54:03-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Audrey U. Travis",
|
||||
"date": "2014-02-03T17:59:16-08:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Inga B. Gomez",
|
||||
"date": "2013-11-09T07:56:59-08:00",
|
||||
"number": 2
|
||||
},
|
||||
{
|
||||
"name": "Dane Dawson",
|
||||
"date": "2014-10-07T21:49:09-07:00",
|
||||
"number": 7
|
||||
},
|
||||
{
|
||||
"name": "Xaviera Tyson",
|
||||
"date": "2013-02-21T20:19:30-08:00",
|
||||
"number": 7
|
||||
},
|
||||
{
|
||||
"name": "Farrah K. Holcomb",
|
||||
"date": "2012-12-08T03:55:34-08:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Carissa Vinson",
|
||||
"date": "2014-10-22T15:25:18-07:00",
|
||||
"number": 7
|
||||
},
|
||||
{
|
||||
"name": "Alexandra Sharp",
|
||||
"date": "2012-12-30T03:11:07-08:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Karen Clemons",
|
||||
"date": "2013-12-14T12:56:28-08:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Brock L. Moody",
|
||||
"date": "2014-09-11T21:03:40-07:00",
|
||||
"number": 1
|
||||
},
|
||||
{
|
||||
"name": "Savannah Haynes",
|
||||
"date": "2013-09-08T08:38:35-07:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Ivan F. Duffy",
|
||||
"date": "2013-03-23T00:01:47-07:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Ignatius Boyd",
|
||||
"date": "2014-09-04T08:16:36-07:00",
|
||||
"number": 5
|
||||
},
|
||||
{
|
||||
"name": "Gloria M. Morgan",
|
||||
"date": "2014-05-06T15:52:30-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Kyla G. Richards",
|
||||
"date": "2013-07-04T21:07:18-07:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Joshua Bennett",
|
||||
"date": "2013-03-17T19:55:44-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Risa R. Charles",
|
||||
"date": "2013-09-01T22:08:00-07:00",
|
||||
"number": 2
|
||||
},
|
||||
{
|
||||
"name": "Shellie F. Odom",
|
||||
"date": "2014-02-13T07:43:59-08:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Farrah W. Montoya",
|
||||
"date": "2014-08-06T10:07:27-07:00",
|
||||
"number": 5
|
||||
},
|
||||
{
|
||||
"name": "Britanney Chandler",
|
||||
"date": "2014-02-14T02:15:13-08:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Daria B. Banks",
|
||||
"date": "2013-09-06T11:42:25-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Hope G. Mccullough",
|
||||
"date": "2013-05-10T14:01:23-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Jescie Mcfarland",
|
||||
"date": "2013-06-05T20:34:39-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Octavius Dalton",
|
||||
"date": "2014-10-29T04:24:13-07:00",
|
||||
"number": 5
|
||||
},
|
||||
{
|
||||
"name": "Lilah Schmidt",
|
||||
"date": "2014-09-19T13:15:28-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Tatum Butler",
|
||||
"date": "2013-04-21T22:26:48-07:00",
|
||||
"number": 2
|
||||
},
|
||||
{
|
||||
"name": "Maxwell Jackson",
|
||||
"date": "2014-04-01T13:45:43-07:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Malachi Camacho",
|
||||
"date": "2014-09-07T05:43:21-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Dahlia Norman",
|
||||
"date": "2013-12-04T21:43:09-08:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Martha Q. Bradford",
|
||||
"date": "2012-12-29T10:54:34-08:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Adena Thompson",
|
||||
"date": "2013-07-31T04:00:42-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Daquan Burke",
|
||||
"date": "2013-03-10T18:19:30-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Avram Hodges",
|
||||
"date": "2013-04-19T06:25:26-07:00",
|
||||
"number": 2
|
||||
},
|
||||
{
|
||||
"name": "Lila G. Strong",
|
||||
"date": "2014-05-15T22:06:01-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Duncan M. Stout",
|
||||
"date": "2012-12-02T13:13:18-08:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Vera Glover",
|
||||
"date": "2013-05-29T20:39:03-07:00",
|
||||
"number": 1
|
||||
},
|
||||
{
|
||||
"name": "Norman I. Callahan",
|
||||
"date": "2014-02-18T04:25:02-08:00",
|
||||
"number": 5
|
||||
},
|
||||
{
|
||||
"name": "Mia Mcdaniel",
|
||||
"date": "2013-05-09T04:49:23-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Wing G. Lancaster",
|
||||
"date": "2013-11-29T21:36:19-08:00",
|
||||
"number": 4
|
||||
},
|
||||
{
|
||||
"name": "Norman Walter",
|
||||
"date": "2013-03-11T00:10:07-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Quinn Stephenson",
|
||||
"date": "2013-09-22T19:18:08-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Shana Q. Hunter",
|
||||
"date": "2013-06-23T00:02:12-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Amy Bender",
|
||||
"date": "2014-10-01T11:49:28-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Carla Q. Graham",
|
||||
"date": "2013-04-14T18:09:23-07:00",
|
||||
"number": 1
|
||||
},
|
||||
{
|
||||
"name": "Sasha P. Rosario",
|
||||
"date": "2013-02-19T06:21:57-08:00",
|
||||
"number": 7
|
||||
},
|
||||
{
|
||||
"name": "Shellie S. Shepard",
|
||||
"date": "2014-08-20T01:34:49-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Giacomo Burke",
|
||||
"date": "2013-10-21T18:58:22-07:00",
|
||||
"number": 2
|
||||
},
|
||||
{
|
||||
"name": "Jack P. Horton",
|
||||
"date": "2013-06-01T07:48:24-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Jelani H. Edwards",
|
||||
"date": "2013-11-14T09:46:34-08:00",
|
||||
"number": 1
|
||||
},
|
||||
{
|
||||
"name": "Tallulah Norman",
|
||||
"date": "2014-08-07T01:10:09-07:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Thor Blackburn",
|
||||
"date": "2013-02-10T08:25:08-08:00",
|
||||
"number": 7
|
||||
},
|
||||
{
|
||||
"name": "Lee Richard",
|
||||
"date": "2014-04-04T04:44:19-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Inga Mooney",
|
||||
"date": "2013-06-16T19:01:29-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Barrett L. Nicholson",
|
||||
"date": "2013-07-14T16:22:48-07:00",
|
||||
"number": 7
|
||||
},
|
||||
{
|
||||
"name": "Marsden Haley",
|
||||
"date": "2014-08-24T17:07:57-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Eugenia Jensen",
|
||||
"date": "2014-02-10T09:53:42-08:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Finn I. England",
|
||||
"date": "2014-05-21T11:29:45-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Christine H. Mccall",
|
||||
"date": "2013-07-31T22:39:23-07:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Olivia Sims",
|
||||
"date": "2014-03-22T21:39:53-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Leah Potter",
|
||||
"date": "2014-05-24T15:34:39-07:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Francesca Becker",
|
||||
"date": "2014-11-14T15:50:19-08:00",
|
||||
"number": 5
|
||||
},
|
||||
{
|
||||
"name": "Bell Guy",
|
||||
"date": "2014-09-24T06:11:26-07:00",
|
||||
"number": 5
|
||||
},
|
||||
{
|
||||
"name": "Brennan R. Camacho",
|
||||
"date": "2013-04-26T19:37:18-07:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Branden Hogan",
|
||||
"date": "2013-09-30T02:32:41-07:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Ray Greene",
|
||||
"date": "2014-02-25T09:35:15-08:00",
|
||||
"number": 3
|
||||
},
|
||||
{
|
||||
"name": "Lewis Patterson",
|
||||
"date": "2014-04-06T04:14:34-07:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Freya L. Barry",
|
||||
"date": "2014-10-24T18:49:14-07:00",
|
||||
"number": 2
|
||||
},
|
||||
{
|
||||
"name": "Branden Oneal",
|
||||
"date": "2014-02-06T17:10:09-08:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Dylan R. Hayes",
|
||||
"date": "2013-11-26T10:36:10-08:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Eliana W. Blair",
|
||||
"date": "2013-06-21T06:05:26-07:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Hector Goodwin",
|
||||
"date": "2014-01-01T11:40:54-08:00",
|
||||
"number": 1
|
||||
},
|
||||
{
|
||||
"name": "Chloe O. Joyner",
|
||||
"date": "2014-02-23T05:20:58-08:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Nasim Moore",
|
||||
"date": "2014-02-17T15:54:01-08:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Zena Davenport",
|
||||
"date": "2014-04-15T01:34:18-07:00",
|
||||
"number": 6
|
||||
},
|
||||
{
|
||||
"name": "Katelyn C. Mays",
|
||||
"date": "2012-12-18T14:18:15-08:00",
|
||||
"number": 7
|
||||
},
|
||||
{
|
||||
"name": "Ava H. Hartman",
|
||||
"date": "2014-01-29T14:51:07-08:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Rylee Mcfarland",
|
||||
"date": "2013-09-21T21:30:54-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Hanae K. Doyle",
|
||||
"date": "2014-06-19T09:57:19-07:00",
|
||||
"number": 8
|
||||
},
|
||||
{
|
||||
"name": "Quintessa H. Swanson",
|
||||
"date": "2014-02-26T22:16:01-08:00",
|
||||
"number": 5
|
||||
},
|
||||
{
|
||||
"name": "Dawn I. Hobbs",
|
||||
"date": "2014-11-01T20:03:31-07:00",
|
||||
"number": 9
|
||||
},
|
||||
{
|
||||
"name": "Louis Park",
|
||||
"date": "2014-03-21T23:24:03-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Jenna Richardson",
|
||||
"date": "2013-09-26T23:07:32-07:00",
|
||||
"number": 10
|
||||
},
|
||||
{
|
||||
"name": "Amy V. Aguirre",
|
||||
"date": "2013-12-04T12:50:21-08:00",
|
||||
"number": 9
|
||||
}
|
||||
]
|
||||
8
node_modules/json2xls/spec/objectData.json
generated
vendored
Normal file
8
node_modules/json2xls/spec/objectData.json
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "Ivy Dickson",
|
||||
"date": "2013-05-27T11:04:15-07:00",
|
||||
"number": 10,
|
||||
"nested": {
|
||||
"field":"foo"
|
||||
}
|
||||
}
|
||||
211
node_modules/json2xls/spec/prepareSpec.js
generated
vendored
Normal file
211
node_modules/json2xls/spec/prepareSpec.js
generated
vendored
Normal file
@@ -0,0 +1,211 @@
|
||||
var json2xls = require('../lib/json2xls');
|
||||
var prep = json2xls.prepareJson;
|
||||
var arrayData = require('./arrayData.json');
|
||||
var objectData = require('./objectData.json');
|
||||
var weirdData = require('./weirdData');
|
||||
|
||||
describe('prepare',function() {
|
||||
|
||||
beforeEach(function() {
|
||||
this.addMatchers({
|
||||
toEqualFields: function() {
|
||||
return {
|
||||
compare: function(actual,expected) {
|
||||
var res;
|
||||
var res = expected && expected.all && expected.all(function(item,i) {
|
||||
return actual[i] && Object.keys(item).all(function(field) {
|
||||
return actual[i][field] === item[field];
|
||||
});
|
||||
})
|
||||
return {
|
||||
pass: res
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
describe('handling illegal xml characters', function() {
|
||||
it('should remove vertical tabs',function() {
|
||||
var res = prep(weirdData);
|
||||
expect(res.rows[0][1]).toEqual(' foo bar ');
|
||||
});
|
||||
});
|
||||
|
||||
describe('when the data is an empty array', function() {
|
||||
it('should create an empty config', function() {
|
||||
var res = prep([]);
|
||||
expect(res.cols).toEqual([]);
|
||||
expect(res.rows).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when the data is an empty object', function() {
|
||||
it('should create a config with one empty row', function() {
|
||||
var res = prep({});
|
||||
expect(res.cols).toEqual([]);
|
||||
expect(res.rows).toEqual([[]]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when the data is an array', function() {
|
||||
|
||||
describe('cols',function() {
|
||||
it('should create a cols part',function() {
|
||||
var res = prep(arrayData);
|
||||
expect(res.cols).toBeDefined();
|
||||
});
|
||||
it('should create the correct cols',function() {
|
||||
var res = prep(arrayData);
|
||||
expect(res.cols).toEqualFields([{
|
||||
caption: 'name',
|
||||
type: 'string'
|
||||
},{
|
||||
caption: 'date',
|
||||
type: 'string'
|
||||
},{
|
||||
caption: 'number',
|
||||
type: 'number'
|
||||
}]);
|
||||
});
|
||||
|
||||
it('should create the correct cols when fields are given as array',function() {
|
||||
var res = prep(arrayData,{
|
||||
fields: ['date','name']
|
||||
});
|
||||
expect(res.cols).toEqualFields([{
|
||||
caption: 'date',
|
||||
type: 'string'
|
||||
},{
|
||||
caption: 'name',
|
||||
type: 'string'
|
||||
}]);
|
||||
});
|
||||
|
||||
it('should create the correct cols when fields are given as object',function() {
|
||||
var res = prep(arrayData,{
|
||||
fields: {
|
||||
number: 'string',
|
||||
name: 'string'
|
||||
}
|
||||
});
|
||||
expect(res.cols).toEqualFields([{
|
||||
caption: 'number',
|
||||
type: 'string'
|
||||
},{
|
||||
caption: 'name',
|
||||
type: 'string'
|
||||
}]);
|
||||
});
|
||||
|
||||
it('should create caption and type field',function() {
|
||||
var cols = prep(arrayData).cols;
|
||||
expect(cols[0].caption).toBeDefined();
|
||||
expect(cols[0].type).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('rows',function() {
|
||||
it('should create a rows part',function() {
|
||||
var res = prep(arrayData);
|
||||
expect(res.rows).toBeDefined();
|
||||
});
|
||||
it('should create rows with data in the correct order',function() {
|
||||
var res = prep(arrayData);
|
||||
expect(res.rows[0]).toEqual([ 'Ivy Dickson', '2013-05-27T11:04:15-07:00', 10 ]);
|
||||
expect(res.rows[1]).toEqual([ 'Walker Lynch','2014-02-07T22:09:58-08:00', 2 ]);
|
||||
expect(res.rows[2]).toEqual([ 'Maxwell U. Holden', '2013-06-16T05:29:13-07:00', 5]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('style',function() {
|
||||
it('should have the provided style xml file',function() {
|
||||
var fn = 'test.xml';
|
||||
var res = prep(arrayData,{
|
||||
style: fn
|
||||
});
|
||||
expect(res.stylesXmlFile).toBe(fn);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('when the data is an object', function() {
|
||||
describe('cols',function() {
|
||||
it('should create a cols part',function() {
|
||||
var res = prep(objectData);
|
||||
expect(res.cols).toBeDefined();
|
||||
});
|
||||
it('should create caption and type field',function() {
|
||||
var cols = prep(objectData).cols;
|
||||
expect(cols[0].caption).toBeDefined();
|
||||
expect(cols[0].type).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('rows',function() {
|
||||
it('should create a rows part',function() {
|
||||
var res = prep(objectData);
|
||||
expect(res.rows).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('style',function() {
|
||||
it('should have the provided style xml file',function() {
|
||||
var fn = 'test.xml';
|
||||
var res = prep(objectData,{
|
||||
style: fn
|
||||
});
|
||||
expect(res.stylesXmlFile).toBe(fn);
|
||||
});
|
||||
});
|
||||
|
||||
describe('display of nested fields',function() {
|
||||
it('should write nested fields as json',function() {
|
||||
var res = prep(objectData);
|
||||
expect(res.rows[0][3]).toEqual('{"field":"foo"}');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('working with missing fields',function() {
|
||||
it('should leave missing fields blank',function() {
|
||||
var res = prep([
|
||||
{
|
||||
"firma": "transportabel",
|
||||
"internet": "http://www.transportabel.de",
|
||||
"Branche": "Möbel",
|
||||
"STRASSE": "Messingweg 49",
|
||||
"ort": "Münster-Sprakel",
|
||||
"TEL_ZENTRALE": "(0251) 29 79 46"
|
||||
},
|
||||
{
|
||||
"firma": "Soziale Möbelbörse & mehr e.V.",
|
||||
"internet": "http://www.gersch-ms.de",
|
||||
"Branche": "Möbel",
|
||||
"STRASSE": "Nienkamp 80",
|
||||
"ort": "Münster-Wienburg",
|
||||
"TEL_ZENTRALE": "(0251) 53 40 76"
|
||||
},
|
||||
{
|
||||
"firma": "Bald Eckhart e.K.",
|
||||
"Branche": "Möbel",
|
||||
"STRASSE": "Weseler Str. 628",
|
||||
"ort": "Münster-Mecklenbeck",
|
||||
"TEL_ZENTRALE": "(0251) 53 40 76"
|
||||
}
|
||||
]);
|
||||
expect(res.rows[2][1]).toEqual(null);
|
||||
})
|
||||
})
|
||||
|
||||
describe('prepping with config',function() {
|
||||
it('should get a nested field',function() {
|
||||
var res = prep(objectData,{
|
||||
fields:['nested.field']
|
||||
});
|
||||
expect(res.rows[0]).toEqual(['foo']);
|
||||
})
|
||||
});
|
||||
});
|
||||
7
node_modules/json2xls/spec/weirdData.json
generated
vendored
Normal file
7
node_modules/json2xls/spec/weirdData.json
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
[
|
||||
{
|
||||
"title": "Vertical tabs",
|
||||
"name": "\u000b foo bar \u000b",
|
||||
"number": 2
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user