gis-tools-ts
Version:
A collection of geospatial tools primarily designed for WGS84, Web Mercator, and S2.
104 lines • 3.05 kB
JavaScript
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