New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dbf

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dbf - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

json2dbf.js

6

package.json
{
"name": "dbf",
"version": "0.0.1",
"version": "0.0.2",
"description": "generate dbf files",
"main": "index.js",
"dependencies": {},
"dependencies": {
"jdataview": "~2.4.4"
},
"devDependencies": {

@@ -8,0 +10,0 @@ "expect.js": "~0.2.0",

# dbf
Create [DBF](http://en.wikipedia.org/wiki/DBASE) database files in pure
JavaScript.
based on https://code.google.com/p/js2shapefile/ but aiming for a full rewrite.
DBF is a zombie file format kept alive by inclusion in the [Shapefile](http://en.wikipedia.org/wiki/Shapefile)
file format.
## usage

@@ -14,20 +10,2 @@

### api
`arraybuffer = dbf.writer(fields, data)`
Fields as objects with
* type: one of
* C: String
* L: Bool
* D: Date
* N, M, F, B: Number
* name: column name
And data is an array of objects that represent rows.
Returns an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBuffer)
of binary data.
### example

@@ -34,0 +12,0 @@

@@ -28,5 +28,3 @@ var fieldTypes = {

attributes.forEach(writeAttribute);
function writeAttribute(attr, i) {
attributes.forEach(function(attr, i) {
var fieldLength = fieldTypes[attr.type](attr);

@@ -36,8 +34,7 @@

var i32 = i * 32;
view.setInt8(i32 + 11, attr.type.charCodeAt(0));
view.setInt8(i32 + 16, fieldLength);
view.setInt8(i * 32 + 11, attr.type.charCodeAt(0));
view.setInt8(i * 32 + 16, fieldLength);
if (attr.type == 'N') {
view.setInt8(i32 + 17, attr.scale || 0);
view.setInt8(i * 32 + 17, attr.scale || 0);
}

@@ -47,5 +44,5 @@

bytesPerRecord += fieldLength;
}
});
// end of header
// mark end of header
view.setInt8(fieldDescLength - 1, 13);

@@ -61,6 +58,10 @@

// var dbfHeaderBlob = new BlobBuilder();
// dbfHeaderBlob.append(dbfHeaderView.getBuffer());
// dbfHeaderBlob.append(view.getBuffer());
return {
recordLength: bytesPerRecord,
header: headerView,
field: view
header: headerBuffer,
field: buffer
};

@@ -67,0 +68,0 @@ };

@@ -5,3 +5,3 @@ var lib = require('./lib');

var dataLength = recordLength * rows.length + 1,
var dataLength = (recordLength) * rows.length + 1,
buffer = new ArrayBuffer(dataLength),

@@ -11,8 +11,9 @@ view = new DataView(buffer),

rows.forEach(writeRow);
rows.forEach(function(row, num) {
view.setUint8(offset, 32);
offset += 1;
offset = writeRow(row, offset, num);
});
function writeRow(row) {
view.setUint8(offset, 32);
offset++;
function writeRow(row, offset, num) {
attributes.forEach(writeAttribute);

@@ -23,3 +24,4 @@

fieldLength = attribute.length || 0,
val = row[attribute.name] || rownum.toString();
val = row[attribute.name] || num.toString(),
str;

@@ -29,3 +31,3 @@ switch (dataType) {

view.setUint8(offset, val ? 84 : 70);
offset++;
offset += 1;
break;

@@ -51,2 +53,4 @@

}
return offset;
}

@@ -56,3 +60,3 @@

return view;
return buffer;
};

@@ -1,21 +0,32 @@

var record = require('./record'),
var fs = require('fs'),
record = require('./record'),
header = require('./header');
module.exports = function write(fields, data) {
var head = header(fields),
row = record(fields, data, head.recordLength);
return combine(combine(head.header, head.field), row);
var headData = header(fields);
var rowData = record(fields, data, headData.recordLength);
return combined([
headData.header,
headData.field,
rowData
]);
};
function combine(a, b) {
var c = new ArrayBuffer(a.byteLength + b.byteLength),
d = new DataView(c);
for (var i = 0; i < a.byteLength; i++) {
d.setUint8(i, a.getUint8(i));
}
for (; i < a.byteLength + b.byteLength; i++) {
d.setUint8(i, b.getUint8(i - a.byteLength));
}
return d;
function combined(l) {
var totalLength = l.reduce(function(mem, b) {
return mem += b.byteLength;
}, 0),
buffer = new Buffer(totalLength),
view = new Uint8Array(totalLength);
var i = 0;
l.forEach(function(_) {
for (var j = 0; j < _.length; j++) {
buffer[i] = _[i];
i++;
}
});
return buffer;
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc