Skip to content

Commit 970f178

Browse files
authored
Improve typescript support for filtered results for basic gtfs queries (#174) (#175)
1 parent 90a24f8 commit 970f178

31 files changed

+156
-150
lines changed

src/lib/gtfs/agencies.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
Agency,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all agencies that match the query parameters.
1717
*/
18-
export function getAgencies(
18+
export function getAgencies<Fields extends keyof Agency>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getAgencies(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as Agency[];
34+
.all() as QueryResult<Agency, Fields>[];
3535
}

src/lib/gtfs/areas.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
Area,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all areas that match the query parameters.
1717
*/
18-
export function getAreas(
18+
export function getAreas<Fields extends keyof Area>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getAreas(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as Area[];
34+
.all() as QueryResult<Area, Fields>[];
3535
}

src/lib/gtfs/attributions.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
Attribution,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all attributions that match the query parameters.
1717
*/
18-
export function getAttributions(
18+
export function getAttributions<Fields extends keyof Attribution>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getAttributions(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as Attribution[];
34+
.all() as QueryResult<Attribution, Fields>[];
3535
}

src/lib/gtfs/booking-rules.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
BookingRule,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all booking rules that match the query parameters.
1717
*/
18-
export function getBookingRules(
18+
export function getBookingRules<Fields extends keyof BookingRule>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getBookingRules(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as BookingRule[];
34+
.all() as QueryResult<BookingRule, Fields>[];
3535
}

src/lib/gtfs/calendar-dates.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
CalendarDate,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of calendarDates that match the query parameters.
1717
*/
18-
export function getCalendarDates(
18+
export function getCalendarDates<Fields extends keyof CalendarDate>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getCalendarDates(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as CalendarDate[];
34+
.all() as QueryResult<CalendarDate, Fields>[];
3535
}

src/lib/gtfs/calendars.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
Calendar,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -16,9 +16,9 @@ import {
1616
/*
1717
* Returns an array of calendars that match the query parameters.
1818
*/
19-
export function getCalendars(
19+
export function getCalendars<Fields extends keyof Calendar>(
2020
query: SqlWhere = {},
21-
fields: SqlSelect = [],
21+
fields: Fields[] = [],
2222
orderBy: SqlOrderBy = [],
2323
options: QueryOptions = {},
2424
) {
@@ -32,7 +32,7 @@ export function getCalendars(
3232
.prepare(
3333
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3434
)
35-
.all() as Calendar[];
35+
.all() as QueryResult<Calendar, Fields>[];
3636
}
3737

3838
/*

src/lib/gtfs/fare-attributes.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
FareAttribute,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all fare attributes that match the query parameters.
1717
*/
18-
export function getFareAttributes(
18+
export function getFareAttributes<Fields extends keyof FareAttribute>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getFareAttributes(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as FareAttribute[];
34+
.all() as QueryResult<FareAttribute, Fields>[];
3535
}

src/lib/gtfs/fare-leg-rules.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
FareLegRule,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all fare leg rules that match the query parameters.
1717
*/
18-
export function getFareLegRules(
18+
export function getFareLegRules<Fields extends keyof FareLegRule>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getFareLegRules(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as FareLegRule[];
34+
.all() as QueryResult<FareLegRule, Fields>[];
3535
}

src/lib/gtfs/fare-media.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
FareMedia,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all fare media that match the query parameters.
1717
*/
18-
export function getFareMedia(
18+
export function getFareMedia<Fields extends keyof FareMedia>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getFareMedia(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as FareMedia[];
34+
.all() as QueryResult<FareMedia, Fields>[];
3535
}

src/lib/gtfs/fare-products.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
FareProduct,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all fare products that match the query parameters.
1717
*/
18-
export function getFareProducts(
18+
export function getFareProducts<Fields extends keyof FareProduct>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getFareProducts(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as FareProduct[];
34+
.all() as QueryResult<FareProduct, Fields>[];
3535
}

src/lib/gtfs/fare-rules.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
FareRule,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all fare rules that match the query parameters.
1717
*/
18-
export function getFareRules(
18+
export function getFareRules<Fields extends keyof FareRule>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getFareRules(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as FareRule[];
34+
.all() as QueryResult<FareRule, Fields>[];
3535
}

src/lib/gtfs/fare-transfer-rules.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
FareTransferRule,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all fare transfer rules that match the query parameters.
1717
*/
18-
export function getFareTransferRules(
18+
export function getFareTransferRules<Fields extends keyof FareTransferRule>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getFareTransferRules(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as FareTransferRule[];
34+
.all() as QueryResult<FareTransferRule, Fields>[];
3535
}

src/lib/gtfs/feed-info.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {
1+
import type {
22
FeedInfo,
33
QueryOptions,
44
SqlOrderBy,
5-
SqlSelect,
5+
QueryResult,
66
SqlWhere,
77
} from '../../types/global_interfaces.ts';
88
import { openDb } from '../db.ts';
@@ -15,9 +15,9 @@ import {
1515
/*
1616
* Returns an array of all feed info that match the query parameters.
1717
*/
18-
export function getFeedInfo(
18+
export function getFeedInfo<Fields extends keyof FeedInfo>(
1919
query: SqlWhere = {},
20-
fields: SqlSelect = [],
20+
fields: Fields[] = [],
2121
orderBy: SqlOrderBy = [],
2222
options: QueryOptions = {},
2323
) {
@@ -31,5 +31,5 @@ export function getFeedInfo(
3131
.prepare(
3232
`${selectClause} FROM ${tableName} ${whereClause} ${orderByClause};`,
3333
)
34-
.all() as FeedInfo[];
34+
.all() as QueryResult<FeedInfo, Fields>[];
3535
}

0 commit comments

Comments
 (0)