Skip to content

shinnn/parse-zonetab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

parse-zonetab

NPM version Build Status Coverage Status dependencies Status devDependencies Status

A Node module to parse zone.tab file

const parseZonetab = require('parse-zonetab');

const source = `
#
# tz zone descriptions
#
AD	+4230+00131	Europe/Andorra
AE	+2518+05518	Asia/Dubai
AF	+3431+06912	Asia/Kabul
AG	+1703-06148	America/Antigua
AI	+1812-06304	America/Anguilla`;

parseZonetab(source).then(rows => {
  rows; /* => [
    {
      countryCode: 'AD',
      coordinate: {
        latitude: {sign: '+', degree: 42, minute: 30},
        longitude: {sign: '+', degree: 1, minute: 31}
      },
      id: 'Europe/Andorra'
    },
    {
      countryCode: 'AE',
      coordinate: {
        latitude: {sign: '+', degree: 25, minute: 18},
        longitude: {sign: '+', degree: 55, minute: 18}
      }
      id: 'Asia/Dubai'
    },
    ...
  ] */
});

Installation

Use npm.

npm install parse-zonetab

API

const parseZonetab = require('parse-zonetab');

parseZonetab(source)

source: Buffer, String or Stream
Return: Promise

It takes zone.tab file data and returns a promise for an array of parsed rows each of whom is in the form:

{
  countryCode: <string>,
  coordinate: {
    latitude: {
      sign: <string> ('+' or '-'),
      degree: <int>,
      minute: <int>,
      [second: <int>] (if available)
    },
    longitude: {
      sign: <string> ('+' or '-'),
      degree: <int>,
      minute: <int>,
      [second: <int>] (if available)
    }
  },
  id: <string>,
  [comment: <string>] (if available)
}

Related project

  • get-zonetab - get the latest zone.tab file form IANA Time Zone Database

License

Copyright (c) 2016 Shinnosuke Watanabe

Licensed under the MIT License.

About

Parse zone.tab file

Resources

License

Stars

Watchers

Forks

Packages

No packages published