@tmlmobilidade/types
Version:
This package provides shared Zod validation schemas and their corresponding TypeScript types for use across projects. All types are automatically inferred from the schemas to ensure full type safety and reduce maintenance overhead.
121 lines (120 loc) • 4.58 kB
TypeScript
import { type GTFS_Binary, type GTFS_Ternary } from './common.js';
/**
* Represents a GTFS (General Transit Feed Specification) Location Type.
* This type is used to categorize the location based on its function in the transit system.
* Each location type corresponds to a specific role, such as a stop, station, or boarding area.
* The values are defined according to the GTFS specification.
*/
export type GTFS_LocationType = 0 | 1 | 2 | 3 | 4;
/**
* Validates and transforms a value into a GTFS Location Type.
* It accepts numeric or string representations of location types.
* @param value The value to validate and transform.
* @returns A GTFS Location Type value (0-4).
* @throws Error if the value is not a valid GTFS Location type representation.
*/
export declare function validateGtfsLocationType(value?: number | string): GTFS_LocationType;
/**
* Represents a stop in the GTFS (General Transit Feed Specification) format.
* A stop is a group of trips that operate on a specific path or service,
* typically identified by a unique stop ID. Each stop can have various attributes
* such as agency ID, stop color, long name, short name, and type of service.
*/
export interface GTFS_Stop {
level_id?: string;
location_type: GTFS_LocationType;
parent_station?: string;
platform_code?: string;
stop_code: string;
stop_desc?: string;
stop_id: string;
stop_lat: number;
stop_lon: number;
stop_name: string;
stop_timezone?: string;
stop_url?: string;
wheelchair_boarding?: GTFS_Ternary;
zone_id?: string;
}
/**
* Represents a raw stop in the GTFS format.
* This interface is used to parse raw data from GTFS files, where fields may be optional
* or represented as strings. It is typically used for data ingestion before validation
* and transformation into the `GTFS_Stop` format.
*/
export interface GTFS_Stop_Raw {
level_id?: string;
location_type?: string;
parent_station?: string;
platform_code?: string;
stop_code?: string;
stop_desc?: string;
stop_id?: string;
stop_lat?: string;
stop_lon?: string;
stop_name?: string;
stop_timezone?: string;
stop_url?: string;
wheelchair_boarding?: string;
zone_id?: string;
}
/**
* Validates and transforms a raw GTFS stop into the GTFS_Stop format.
* This function checks the types of fields, converts boolean strings to boolean values,
* and ensures that required fields are present.
* @param rawData The raw trip data to validate and transform.
* @returns A validated GTFS_Stop object.
*/
export declare function validateGtfsStop(rawData: GTFS_Stop_Raw): GTFS_Stop;
/**
* Extended version of the GTFS_Stop interface that
* should be used for working with the GTFS-TML standard.
*/
export interface GTFS_Stop_Extended extends GTFS_Stop {
has_bench?: GTFS_Binary;
has_network_map?: GTFS_Binary;
has_pip_real_time?: GTFS_Binary;
has_schedules?: GTFS_Binary;
has_shelter?: GTFS_Binary;
has_stop_sign?: GTFS_Binary;
has_tariffs_information?: GTFS_Binary;
municipality_id?: string;
parish_id?: string;
public_visible?: GTFS_Binary;
region_id?: string;
shelter_code?: string;
shelter_maintainer?: string;
stop_short_name?: string;
tts_stop_name?: string;
}
/**
* Represents a raw stop in the GTFS-TML format.
* This interface is used to parse raw data from GTFS-TML files, where fields may be optional
* or represented as strings. It is typically used for data ingestion before validation
* and transformation into the `GTFS_Stop_Extended` format.
*/
export interface GTFS_Stop_Extended_Raw extends GTFS_Stop_Raw {
has_bench?: string;
has_network_map?: string;
has_pip_real_time?: string;
has_schedules?: string;
has_shelter?: string;
has_stop_sign?: string;
has_tariffs_information?: string;
municipality_id?: string;
parish_id?: string;
public_visible?: string;
region_id?: string;
shelter_code?: string;
shelter_maintainer?: string;
stop_short_name?: string;
tts_stop_name?: string;
}
/**
* Validates and transforms raw GTFS-TML stop data into a structured GTFS_Stop_Extended object.
* This function checks the types of fields, converts boolean strings to boolean values,
* and ensures that required fields are present, including the pattern_id.
* @param rawData he raw stop data to validate and transform.
* @returns A validated GTFS_Stop_Extended object.
*/
export declare function validateGtfsStopExtended(rawData: GTFS_Stop_Extended_Raw): GTFS_Stop_Extended;