JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 14
  • Score
    100M100P100Q41446F
  • License MIT

Package Exports

  • espi-parser

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (espi-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

espi-parser

The parser which convert ESPI(Energy Service Provider Interface) XML Data to JSON with namespace removed keys.

Setup

npm install espi-parser

Usage

const util = require('util');
const espiParser = require('espi-parser');

const exampleXml = `
<ns3:entry xmlns:espi="http://naesb.org/espi" xmlns:ns3="http://www.w3.org/2005/Atom">
  <ns3:id>urn:uuid:e0383570-16b1-4ab9-8642-fdb7e89660db</ns3:id>
  <ns3:link href="https://services.greenbuttondata.org/DataCustodian/espi/1_1/resource/Subscription/1/UsagePoint/1/MeterReading/1/IntervalBlock" rel="up"/>
  <ns3:link href="https://services.greenbuttondata.org/DataCustodian/espi/1_1/resource/Subscription/1/UsagePoint/1/MeterReading/1/IntervalBlock/1" rel="self"/>
  <ns3:title></ns3:title>
  <ns3:content>
    <espi:IntervalBlock>
      <espi:interval>
        <espi:duration>2678400</espi:duration>
        <espi:start>1357016400</espi:start>
      </espi:interval>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357016400</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357102800</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357189200</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357275600</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>203931</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357362000</espi:start>
        </espi:timePeriod>
        <espi:value>25662</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>203931</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357448400</espi:start>
        </espi:timePeriod>
        <espi:value>25662</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357534800</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357621200</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357707600</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357794000</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357880400</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>203931</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1357966800</espi:start>
        </espi:timePeriod>
        <espi:value>25662</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>203931</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358053200</espi:start>
        </espi:timePeriod>
        <espi:value>25662</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358139600</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358226000</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358312400</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358398800</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358485200</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>203931</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358571600</espi:start>
        </espi:timePeriod>
        <espi:value>25662</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>203931</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358658000</espi:start>
        </espi:timePeriod>
        <espi:value>25662</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358744400</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358830800</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1358917200</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1359003600</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1359090000</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>203931</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1359176400</espi:start>
        </espi:timePeriod>
        <espi:value>25662</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>203931</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1359262800</espi:start>
        </espi:timePeriod>
        <espi:value>25662</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1359349200</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1359435600</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1359522000</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
      <espi:IntervalReading>
        <espi:cost>256347</espi:cost>
        <espi:timePeriod>
          <espi:duration>86400</espi:duration>
          <espi:start>1359608400</espi:start>
        </espi:timePeriod>
        <espi:value>21021</espi:value>
      </espi:IntervalReading>
    </espi:IntervalBlock>
  </ns3:content>
  <ns3:published>2013-02-01T05:00:00Z</ns3:published>
  <ns3:updated>2013-02-01T05:00:00Z</ns3:updated>
</ns3:entry>

`;

const json = espiParser(exampleXml);

console.log(util.inspect(json, { depth: Infinity }));

It will be print:

{ entry:
       { id: 'urn:uuid:e0383570-16b1-4ab9-8642-fdb7e89660db',
         links:
          [ { href: 'https://services.greenbuttondata.org/DataCustodian/espi/1_1/resource/Subscription/1/UsagePoint/1/MeterReading/1/IntervalBlock',
              rel: 'up' },
            { href: 'https://services.greenbuttondata.org/DataCustodian/espi/1_1/resource/Subscription/1/UsagePoint/1/MeterReading/1/IntervalBlock/1',
              rel: 'self' } ],
         title: {},
         content:
          { IntervalBlock:
             { interval: { duration: '2678400', start: '1357016400' },
               IntervalReadings:
                [ { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357016400' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357102800' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357189200' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357275600' },
                    value: '21021' },
                  { cost: '203931',
                    timePeriod: { duration: '86400', start: '1357362000' },
                    value: '25662' },
                  { cost: '203931',
                    timePeriod: { duration: '86400', start: '1357448400' },
                    value: '25662' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357534800' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357621200' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357707600' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357794000' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1357880400' },
                    value: '21021' },
                  { cost: '203931',
                    timePeriod: { duration: '86400', start: '1357966800' },
                    value: '25662' },
                  { cost: '203931',
                    timePeriod: { duration: '86400', start: '1358053200' },
                    value: '25662' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1358139600' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1358226000' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1358312400' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1358398800' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1358485200' },
                    value: '21021' },
                  { cost: '203931',
                    timePeriod: { duration: '86400', start: '1358571600' },
                    value: '25662' },
                  { cost: '203931',
                    timePeriod: { duration: '86400', start: '1358658000' },
                    value: '25662' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1358744400' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1358830800' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1358917200' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1359003600' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1359090000' },
                    value: '21021' },
                  { cost: '203931',
                    timePeriod: { duration: '86400', start: '1359176400' },
                    value: '25662' },
                  { cost: '203931',
                    timePeriod: { duration: '86400', start: '1359262800' },
                    value: '25662' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1359349200' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1359435600' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1359522000' },
                    value: '21021' },
                  { cost: '256347',
                    timePeriod: { duration: '86400', start: '1359608400' },
                    value: '21021' } ] } },
         published: '2013-02-01T05:00:00Z',
         updated: '2013-02-01T05:00:00Z' } }