Home

Awesome

validate-fptf

Validate data in the Friendly Public Transport Format. Currently validates against Friendly Public Transport Format (FPTF) 1.2.1.

npm version build status ISC-licensed chat on gitter

Installing

npm install validate-fptf

Usage

const createValidate = require('validate-fptf')

const validate = createValidate() // you may pass in custom validators here

validate({
  type: 'journey',
  id: '12345',
  legs: [{
    origin: {
      type: 'station',
      id: '12345678',
      name: 'Foo'
    },
    destination: {
      type: 'station',
      id: '87654321',
      name: 'Bar'
    },
    departure: '2017-03-16T20:00:00+01:00',
    departurePlatform: '4-1',
    arrival: '2017-03-17T15:00:00+02:00',
    arrivalPlatform: '9',
    schedule: '1234',
    mode: 'walking',
    public: true,
    operator: 'sncf'
  }],
  price: {
    amount: 19.95,
    currency: 'EUR'
  }
})

validate({
  type: 'station',
  id: '123',
  name: 'foo',
  location: {
    type: 'location',
    latitude: 1,
    longitude: 2
  }
}, ['station', 'stop'])

API

const validate = createValidate(customValidators = {})

You may provide an object customValidators, where each key is an FPTF type, and the corresponding function validates an FPTF object of this type.

validate(item, types = allTypes, name = 'item')

validate recursively validates item. Throws an AssertionError if something is not valid FPTF 1.2.1.

To validate against one or more specific FPTF types, provide a string or an array of strings via the types parameter.

To get more meaningful assertion errors, provide the name of your item via the name parameter.

Contributing

If you have a question or have difficulties using validate-fptf, please double-check your code and setup first. If you think you have found a bug or want to propose a feature, refer to the issues page.