Comparing version 0.0.2 to 0.1.0
@@ -1,3 +0,1 @@ | ||
module.exports.header = require('./src/header'); | ||
module.exports.record = require('./src/record'); | ||
module.exports.writer = require('./src/writer'); | ||
module.exports.structure = require('./src/structure'); |
@@ -1,12 +0,18 @@ | ||
var dbf = require('./'); | ||
var dbf = require('./'), | ||
fs = require('fs'); | ||
dbf.writer([ | ||
{ | ||
type: 'C', | ||
name: 'foo' | ||
var buf = dbf.structure([ | ||
{foo:'bar',noo:10}, | ||
{foo:'louie'} | ||
]); | ||
fs.writeFileSync('foo.dbf', toBuffer(buf.buffer)); | ||
function toBuffer(ab) { | ||
var buffer = new Buffer(ab.byteLength); | ||
var view = new Uint8Array(ab); | ||
for (var i = 0; i < buffer.length; ++i) { | ||
buffer[i] = view[i]; | ||
} | ||
], [ | ||
{ | ||
foo: 'bar' | ||
} | ||
]); | ||
return buffer; | ||
} |
{ | ||
"name": "dbf", | ||
"version": "0.0.2", | ||
"version": "0.1.0", | ||
"description": "generate dbf files", | ||
@@ -14,3 +14,4 @@ "main": "index.js", | ||
"scripts": { | ||
"test": "mocha -R spec" | ||
"test": "mocha -R spec", | ||
"make": "browserify -s dbf ./ > dbf.js" | ||
}, | ||
@@ -17,0 +18,0 @@ "repository": { |
# dbf | ||
based on https://code.google.com/p/js2shapefile/ but aiming for a full rewrite. | ||
Write [dBase files](https://en.wikipedia.org/wiki/DBase) in pure JavaScript, | ||
in node.js or browsers. Requires [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBuffer) | ||
and [DataView](https://developer.mozilla.org/en-US/docs/Web/API/DataView) | ||
support. | ||
## usage | ||
npm install dbf | ||
npm test | ||
``` | ||
npm install dbf | ||
``` | ||
### example | ||
Or just in a browser: | ||
https://raw.github.com/mapbox/dbf/master/dbf.js | ||
## example | ||
in node: | ||
```js | ||
var dbf = require('dbf'); | ||
var dbf = require('../'), | ||
fs = require('fs'); | ||
dbf.writer([{ | ||
type: 'C', | ||
name: 'foo' | ||
}], [{ | ||
foo: 'bar' | ||
}]); | ||
var buf = dbf.structure([ | ||
{foo:'bar',noo:10}, | ||
{foo:'louie'} | ||
]); | ||
fs.writeFileSync('foo.dbf', toBuffer(buf.buffer)); | ||
function toBuffer(ab) { | ||
var buffer = new Buffer(ab.byteLength); | ||
var view = new Uint8Array(ab); | ||
for (var i = 0; i < buffer.length; ++i) { | ||
buffer[i] = view[i]; | ||
} | ||
return buffer; | ||
} | ||
``` | ||
### specs | ||
## API | ||
### `dbf.structure(array)` | ||
Given an array of objects with string or number attributes, return | ||
a DataView object referencing an ArrayBuffer that contains a full DBF | ||
file structure. | ||
## Specifications | ||
* http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT | ||
* http://www.quantdec.com/SYSEN597/GTKAV/section4/chapter_15a.htm | ||
* http://ulisse.elettra.trieste.it/services/doc/dbase/DBFstruct.htm |
@@ -9,7 +9,7 @@ module.exports.lpad = function lpad(str, len, char) { | ||
module.exports.writeField = function writeField(view, fieldLength, numAsString, offset) { | ||
module.exports.writeField = function writeField(view, fieldLength, str, offset) { | ||
for (var i = 0; i < fieldLength; i++) { | ||
view.setUint8(offset, numAsString.charCodeAt(i)); offset++; | ||
view.setUint8(offset, str.charCodeAt(i)); offset++; | ||
} | ||
return offset; | ||
}; |
Sorry, the diff of this file is not supported yet
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
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
13945
15
349
56
4
1