parse-zonetab

Parse zone.tab file

Usage no npm install needed!

<script type="module">
  import parseZonetab from 'https://cdn.skypack.dev/parse-zonetab';
</script>

README

parse-zonetab

NPM version Build Status Coverage Status Dependency Status devDependency 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.