mapbox-file-sniff
v0.5.3
Published
Detects type of spatial file
Readme

Mapbox File Sniff 
Node module that returns spatial filetype.
Install
With npm:
npm install -g mapbox-file-sniffJavascript example
var filesniffer = require('mapbox-file-sniff');
var buffer = fs.readFileSync('path/to/data/file.geojson');
filesniffer.sniff(buffer, function(err, filetype){
console.log(filetype); // => 'geojson'
});
filesniffer.waft(buffer, function(err, protocol) {
console.log(protocol); // 'omnivore:'
});
filesniffer.quaff('path/to/data/file.geojson', true, function(err, protocol) {
console.log(protocol); // => 'geojson'
});CLI example
$ mapbox-file-type path/to/data/file.geojson
# geojson
$ mapbox-file-protocol path/to/data/file.geojson
# omnivore:buffer: Buffer object of file contents (at least length 300)
API
sniff(buffer, callback)
Returns a string for the following filetypes:
- Zipped shapefile:
zip - Unziped shapefile:
shp - GPX:
gpx - KML:
kml - GeoJSON:
geojson - GeoTIFF:
tif - Mbtiles:
mbtiles - TileJSON:
tilejson - Serialtiles:
serialtiles - tm2z:
tm2z - csv:
csv
waft(buffer, callback)
Returns a string for the following tilelive protocols:
omnivore:tilelive-omnivorembtiles:node-mbtilestilejson:node-tilejsonserialtiles: special casetm2z: tilelive-vector
quaff(filepath, protocol, callback)
A wrapper around waft and sniff that lets you pass in a file path (read as a buffer) and protocol to either return the protocol (waft) or the file type (sniff).
Tests
Full test suite:
npm test
Run an individual test:
tape test/name.of.test.js
