UNPKG

gis-tools-ts

Version:

A collection of geospatial tools primarily designed for WGS84, Web Mercator, and S2.

104 lines 3.05 kB
import { parseCSVAsRecord } from '../../'; import { parseGtfsDate } from '../utils'; /** * # Calendar Information * * **Conditionally Required** * Defines a set of dates when service is available for one or more routes. * Required unless all dates of service are defined in `calendar_dates.txt`. */ export class GTFSCalendar { /** * **Required** * Identifies a set of dates when service is available. */ serviceId; /** * **Required** * Service availability on Mondays: 0 or 1. */ monday; /** * **Required** * Service availability on Tuesdays: 0 or 1. */ tuesday; /** * **Required** * Service availability on Wednesdays: 0 or 1. */ wednesday; /** * **Required** * Service availability on Thursdays: 0 or 1. */ thursday; /** * **Required** * Service availability on Fridays: 0 or 1. */ friday; /** * **Required** * Service availability on Saturdays: 0 or 1. */ saturday; /** * **Required** * Service availability on Sundays: 0 or 1. */ sunday; /** * **Required** * Start service day (inclusive) for the interval. Format: YYYYMMDD */ startDate; /** * **Required** * End service day (inclusive) for the interval. Format: YYYYMMDD */ endDate; /** @param data - the parsed GTFS CSV data */ constructor(data) { this.serviceId = data.service_id; this.monday = data.monday !== undefined ? parseInt(data.monday, 10) : 0 /* GTFSDayAvailability.NotAvailable */; this.tuesday = data.tuesday !== undefined ? parseInt(data.tuesday, 10) : 0 /* GTFSDayAvailability.NotAvailable */; this.wednesday = data.wednesday !== undefined ? parseInt(data.wednesday, 10) : 0 /* GTFSDayAvailability.NotAvailable */; this.thursday = data.thursday !== undefined ? parseInt(data.thursday, 10) : 0 /* GTFSDayAvailability.NotAvailable */; this.friday = data.friday !== undefined ? parseInt(data.friday, 10) : 0 /* GTFSDayAvailability.NotAvailable */; this.saturday = data.saturday !== undefined ? parseInt(data.saturday, 10) : 0 /* GTFSDayAvailability.NotAvailable */; this.sunday = data.sunday !== undefined ? parseInt(data.sunday, 10) : 0 /* GTFSDayAvailability.NotAvailable */; this.startDate = parseGtfsDate(data.start_date); this.endDate = parseGtfsDate(data.end_date); } } /** * @param input - the input string to parse from * @returns - an array of Calendars */ export function parseGTFSCalendars(input) { const data = parseCSVAsRecord(input); return data.map((d) => new GTFSCalendar(d)); } //# sourceMappingURL=calendar.js.map