Skip to content

Commit

Permalink
0.3.0 - Updated export structures (#5)
Browse files Browse the repository at this point in the history
* Updated import path

* Updated folder and export structures

* Updated documents
  • Loading branch information
ponlawat-w authored Dec 10, 2023
1 parent c612638 commit 2a43df6
Show file tree
Hide file tree
Showing 31 changed files with 315 additions and 205 deletions.
1 change: 1 addition & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Publish
on:
push:
branches: master
workflow_dispatch:
jobs:
unit-tests:
name: Unit Tests
Expand Down
2 changes: 1 addition & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Splited IO classes between `fs` dependent (for Node) and `fs` independent (for Browser).
Updated export structures
42 changes: 36 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,37 @@ npm i gtfs-io

```ts
// Synchronously
import { GTFSFeedReaderFromFile } from 'gtfs-io';
import { GTFSFeedReaderFromFile, GTFSFeedReaderFromMemory } from 'gtfs-io';
const reader = GTFSFeedReaderFromFile.fromZip('gtfs.zip');
const reader = GTFSFeedReaderFromFile.fromDirectory('path/to/dir');
const reader = GTFSFeedReaderFromMemory.fromZip(zipBuffer);
// OR
import { GTFSFeedReader } from 'gtfs-io/io/file';
const reader = GTFSFeedReader.fromZip('gtfs.zip');
const reader = GTFSFeedReader.fromDirectory('path/to/dir');
// OR
import { GTFSFeedReader } from 'gtfs-io/io/memory';
const reader = GTFSFeedReader.fromZip(zipBuffer);
// THEN
const feed = reader.loadFeed();
console.log(feed.stops[0].stop_id);
console.log(feed.trips[1].trip_id);

// ===

// Asynchronously
import { GTFSAsyncFeedReaderFromFile } from 'gtfs-io';
import { GTFSAsyncFeedReaderFromFile, GTFSAsyncFeedReaderFromMemory } from 'gtfs-io';
const reader = GTFSAsyncFeedReaderFromFile.fromZip('gtfs.zip');
const reader = GTFSAsyncFeedReaderFromFile.fromDirectory('path/to/dir');
const reader = GTFSAsyncFeedReaderFromMemory.fromZip(zipBuffer);
// OR
import { GTFSAsyncFeedReader } from 'gtfs-io/io/file';
const reader = GTFSAsyncFeedReader.fromZip('gtfs.zip');
const reader = GTFSAsyncFeedReader.fromDirectory('path/to/dir');
// OR
import { GTFSAsyncFeedReader } from 'gtfs-io/io/memory';
const reader = GTFSAsyncFeedReader.fromZip(zipBuffer);
// THEN
const feed = await reader.loadFeed();
console.log(feed.stops[0].stop_id);
console.log(feed.trips[1].trip_id);
Expand All @@ -44,13 +64,23 @@ const feed = new GTFSLoadedFeed({

// Synchronously
import { GTFSFeedWriterToFile } from 'gtfs-io';
GTFSFeedWriterToFile.asZip(feed, 'gtfs.zip');
GTFSFeedWriterToFile.asDirectory(feed, 'path/to/dir');
GTFSFeedWriterToFile.toZip(feed, 'gtfs.zip');
GTFSFeedWriterToFile.toDirectory(feed, 'path/to/dir');
// OR
import { GTFSFeedWriter } from 'gtfs-io/io/file';
GTFSFeedWriter.toZip(feed, 'gtfs.zip');
GTFSFeedWriter.toDirectory(feed, 'path/to/dir');

// ===

// Asynchronously
import { GTFSAsyncFeedWriterToFile } from 'gtfs-io';
await GTFSAsyncFeedWriterToFile.asZip(feed, 'gtfs.zip');
await GTFSAsyncFeedWriterToFiler.asDirectory(feed, 'path/to/dir');
await GTFSAsyncFeedWriterToFile.toZip(feed, 'gtfs.zip');
await GTFSAsyncFeedWriterToFiler.toDirectory(feed, 'path/to/dir');
// OR
import { GTFSAsyncFeedWriter } from 'gtfs-io/io/file';
await GTFSAsyncFeedWriter.toZip(feed, 'gtfs.zip');
await GTFSAsyncFeedWriter.toDirectory(feed, 'path/to/dir');
```

---
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 11 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "gtfs-io",
"type": "module",
"version": "0.2.0",
"version": "0.3.0",
"description": "IO operations for reading and writing GTFS datasets and GTFS type definitions.",
"main": "dist/index.js",
"keywords": [
Expand All @@ -28,6 +28,16 @@
"files": [
"dist/*"
],
"exports": {
".": { "default": "./dist/index.js", "types": "./dist/index.d.ts" },
"./feed": { "default": "./dist/feed.js", "types": "./dist/feed.d.ts" },
"./file-info": { "default": "./dist/file-info.js", "types": "./dist/file-info.d.ts" },
"./files": { "default": "./dist/files.js", "types": "./dist/files.d.ts" },
"./io": { "default": "./dist/io.js", "types": "./dist/io.d.ts" },
"./io/fs": { "default": "./dist/io-fs.js", "types": "./dist/io-fs.d.ts" },
"./io/memory": { "default": "./dist/io-memory.js", "types": "./dist/io-memory.d.ts" },
"./types": { "types": "./dist/types.d.ts" }
},
"license": "ISC",
"bugs": {
"url": "https://github.com/ponlawat-w/gtfs-io/issues"
Expand Down
3 changes: 3 additions & 0 deletions src/feed.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export * from './feed/iterable.js';
export * from './feed/loaded.js';
export type * from './feed/base.d.ts';
56 changes: 28 additions & 28 deletions src/feed/base.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
import { GTFS_FILES } from '../file-info.js';
import type { GTFSTableName } from '../file-info';
import type { GTFSAgency } from '../files/agency';
import type { GTFSArea } from '../files/area';
import type { GTFSAttribution } from '../files/attribution';
import type { GTFSCalendar } from '../files/calendar';
import type { GTFSCalendarDate } from '../files/calendar-date';
import type { GTFSFareAttribute } from '../files/fare-attribute';
import type { GTFSFareLegRule } from '../files/fare-leg-rule';
import type { GTFSFareMedia } from '../files/fare-media';
import type { GTFSFareProduct } from '../files/fare-product';
import type { GTFSFareRule } from '../files/fare-rule';
import type { GTFSFareTransferRule } from '../files/fare-transfer-rule';
import type { GTFSFeedInfo } from '../files/feed-info';
import type { GTFSFrequency } from '../files/frequency';
import type { GTFSLevel } from '../files/level';
import type { GTFSNetwork } from '../files/network';
import type { GTFSPathway } from '../files/pathway';
import type { GTFSRoute } from '../files/route';
import type { GTFSRouteNetwork } from '../files/route-network';
import type { GTFSShape } from '../files/shape';
import type { GTFSStop } from '../files/stop';
import type { GTFSStopArea } from '../files/stop-area';
import type { GTFSStopTime } from '../files/stop-time';
import type { GTFSTimeframe } from '../files/timeframe';
import type { GTFSTransfer } from '../files/transfer';
import type { GTFSTranslation } from '../files/translation';
import type { GTFSTrip } from '../files/trip';
import type { GTFSAsyncFileRecords, GTFSFileRecords, GTFSFileRow, GTFSIterableFeedFiles } from '../types';
import type { GTFSTableName } from '../file-info.d.ts';
import type { GTFSAgency } from '../files/agency.d.ts';
import type { GTFSArea } from '../files/area.d.ts';
import type { GTFSAttribution } from '../files/attribution.d.ts';
import type { GTFSCalendar } from '../files/calendar.d.ts';
import type { GTFSCalendarDate } from '../files/calendar-date.d.ts';
import type { GTFSFareAttribute } from '../files/fare-attribute.d.ts';
import type { GTFSFareLegRule } from '../files/fare-leg-rule.d.ts';
import type { GTFSFareMedia } from '../files/fare-media.d.ts';
import type { GTFSFareProduct } from '../files/fare-product.d.ts';
import type { GTFSFareRule } from '../files/fare-rule.d.ts';
import type { GTFSFareTransferRule } from '../files/fare-transfer-rule.d.ts';
import type { GTFSFeedInfo } from '../files/feed-info.d.ts';
import type { GTFSFrequency } from '../files/frequency.d.ts';
import type { GTFSLevel } from '../files/level.d.ts';
import type { GTFSNetwork } from '../files/network.d.ts';
import type { GTFSPathway } from '../files/pathway.d.ts';
import type { GTFSRoute } from '../files/route.d.ts';
import type { GTFSRouteNetwork } from '../files/route-network.d.ts';
import type { GTFSShape } from '../files/shape.d.ts';
import type { GTFSStop } from '../files/stop.d.ts';
import type { GTFSStopArea } from '../files/stop-area.d.ts';
import type { GTFSStopTime } from '../files/stop-time.d.ts';
import type { GTFSTimeframe } from '../files/timeframe.d.ts';
import type { GTFSTransfer } from '../files/transfer.d.ts';
import type { GTFSTranslation } from '../files/translation.d.ts';
import type { GTFSTrip } from '../files/trip.d.ts';
import type { GTFSAsyncFileRecords, GTFSFileRecords, GTFSFileRow, GTFSIterableFeedFiles } from '../types.d.ts';

/** Records Generic Type: R to be collection type, and T to be row type */
type RT<R, T extends GTFSFileRow = GTFSFileRow> =
Expand Down
4 changes: 2 additions & 2 deletions src/feed/iterable.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { GTFSFeedBase } from './base.js';
import { GTFSLoadedFeed } from './loaded.js';
import type { GTFSTableName } from '../file-info';
import type { GTFSAsyncFileRecords, GTFSFileRecords, GTFSFileRow } from '../types';
import type { GTFSTableName } from '../file-info.d.ts';
import type { GTFSAsyncFileRecords, GTFSFileRecords, GTFSFileRow } from '../types.d.ts';

/**
* GTFS Feed whoose records are iterable iterator.
Expand Down
4 changes: 2 additions & 2 deletions src/feed/loaded.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { GTFSFeedBase } from './base.js';
import { GTFSAsyncIterableFeed, GTFSIterableFeed } from './iterable.js';
import type { GTFSTableName } from '../file-info';
import type { GTFSFileRow } from '../types';
import type { GTFSTableName } from '../file-info.d.ts';
import type { GTFSFileRow } from '../types.d.ts';

/**
* GTFS Feed that is loaded into memory, records type being array.
Expand Down
41 changes: 41 additions & 0 deletions src/files.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
export { GTFSCalendarDateException } from './files/calendar-date.js';
export { GTFSCalendarAvailability } from './files/calendar.js';
export { GTFSContinuousPickupDropOff, GTFSWheelchairAccessbility } from './files/common.js';
export { GTFSFareAttributePaymentMethod, GTFSFareAttributeTransfer } from './files/fare-attribute.js';
export { GTFSFareMediaType } from './files/fare-media.js';
export { GTFSFareTransferRuleDurationLimit, GTFSFareTransferRuleType } from './files/fare-transfer-rule.js';
export { GTFSFrequncyExactTimes } from './files/frequency.js';
export { GTFSPathwayMode, GTFSPathwayDirection } from './files/pathway.js';
export { GTFSRouteType } from './files/route.js';
export { GTFSStopTimePickupDropOff, GTFSStopTimeTimepoint } from './files/stop-time.js';
export { GTFSStopLocationType } from './files/stop.js';
export { GTFSTranferType } from './files/transfer.js';
export { GTFSTripDirection, GTFSTripBikesAllowed } from './files/trip.js';

export type * from './files/agency.d.ts';
export type * from './files/area.d.ts';
export type * from './files/attribution.d.ts';
export type * from './files/calendar-date.d.ts';
export type * from './files/calendar.d.ts';
export type * from './files/common.d.ts';
export type * from './files/fare-attribute.d.ts';
export type * from './files/fare-leg-rule.d.ts';
export type * from './files/fare-media.d.ts';
export type * from './files/fare-product.d.ts';
export type * from './files/fare-rule.d.ts';
export type * from './files/fare-transfer-rule.d.ts';
export type * from './files/feed-info.d.ts';
export type * from './files/frequency.d.ts';
export type * from './files/level.d.ts';
export type * from './files/network.d.ts';
export type * from './files/pathway.d.ts';
export type * from './files/route-network.d.ts';
export type * from './files/route.d.ts';
export type * from './files/shape.d.ts';
export type * from './files/stop-area.d.ts';
export type * from './files/stop-time.d.ts';
export type * from './files/stop.d.ts';
export type * from './files/timeframe.d.ts';
export type * from './files/transfer.d.ts';
export type * from './files/translation.d.ts';
export type * from './files/trip.d.ts';
2 changes: 1 addition & 1 deletion src/files/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { GTFSContinuousPickupDropOff } from './common';
import type { GTFSContinuousPickupDropOff } from './common.d.ts';

/** Indicates the type of transportation used on a route. */
export enum GTFSRouteType {
Expand Down
2 changes: 1 addition & 1 deletion src/files/stop-time.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { GTFSContinuousPickupDropOff } from './common';
import type { GTFSContinuousPickupDropOff } from './common.d.ts';

/** Indicates pickup / drop off method. */
export enum GTFSStopTimePickupDropOff {
Expand Down
2 changes: 1 addition & 1 deletion src/files/stop.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { GTFSWheelchairAccessbility } from './common';
import type { GTFSWheelchairAccessbility } from './common.d.ts';

/** Location Type */
export enum GTFSStopLocationType {
Expand Down
2 changes: 1 addition & 1 deletion src/files/translation.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { GTFSTableName } from '../file-info';
import type { GTFSTableName } from '../file-info.d.ts';

type TranslationByRecordID = {
/** Defines the record that corresponds to the field to be translated. */
Expand Down
2 changes: 1 addition & 1 deletion src/files/trip.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { GTFSWheelchairAccessbility } from './common';
import type { GTFSWheelchairAccessbility } from './common.d.ts';

/** Indicates the direction of travel for a trip. */
export enum GTFSTripDirection {
Expand Down
119 changes: 64 additions & 55 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,57 +1,66 @@
export { GTFSFileIO, GTFSAsyncFileIO } from './io/file/main.js';
export * from './io/feed/file.js';
export { GTFSFeedReaderFromFile, GTFSAsyncFeedReaderFromFile } from './io/feed/reader-fs.js';
export { GTFSFeedReaderFromMemory, GTFSAsyncFeedReaderFromMemory } from './io/feed/reader-memory.js';
export { GTFSFeedWriter, GTFSAsyncFeedWriter } from './io/feed/writer.js';
export { GTFSFeedWriterToFile, GTFSAsyncFeedWriterToFile } from './io/feed/writer-fs.js';

export * from './feed/iterable.js';
export * from './feed/loaded.js';
export * from './feed.js';
export * from './file-info.js';
export * from './files.js';
export * from './io.js';

export { GTFSCalendarDateException } from './files/calendar-date.js';
export { GTFSCalendarAvailability } from './files/calendar.js';
export { GTFSContinuousPickupDropOff, GTFSWheelchairAccessbility } from './files/common.js';
export { GTFSFareAttributePaymentMethod, GTFSFareAttributeTransfer } from './files/fare-attribute.js';
export { GTFSFareMediaType } from './files/fare-media.js';
export { GTFSFareTransferRuleDurationLimit, GTFSFareTransferRuleType } from './files/fare-transfer-rule.js';
export { GTFSFrequncyExactTimes } from './files/frequency.js';
export { GTFSPathwayMode, GTFSPathwayDirection } from './files/pathway.js';
export { GTFSRouteType } from './files/route.js';
export { GTFSStopTimePickupDropOff, GTFSStopTimeTimepoint } from './files/stop-time.js';
export { GTFSStopLocationType } from './files/stop.js';
export { GTFSTranferType } from './files/transfer.js';
export { GTFSTripDirection, GTFSTripBikesAllowed } from './files/trip.js';

export type * from './file-info';
export type * from './types';

export type * from './io/file/types';

export type * from './files/agency';
export type * from './files/area';
export type * from './files/attribution';
export type * from './files/calendar-date';
export type * from './files/calendar';
export type * from './files/common';
export type * from './files/fare-attribute';
export type * from './files/fare-leg-rule';
export type * from './files/fare-media';
export type * from './files/fare-product';
export type * from './files/fare-rule';
export type * from './files/fare-transfer-rule';
export type * from './files/feed-info';
export type * from './files/frequency';
export type * from './files/level';
export type * from './files/network';
export type * from './files/pathway';
export type * from './files/route-network';
export type * from './files/route';
export type * from './files/shape';
export type * from './files/stop-area';
export type * from './files/stop-time';
export type * from './files/stop';
export type * from './files/timeframe';
export type * from './files/transfer';
export type * from './files/translation';
export type * from './files/trip';
export type * from './feed.d.ts';
export type * from './file-info.d.ts';
export type * from './files.d.ts';
export type * from './io.d.ts';
export type * from './types.d.ts';

// export * from './feed/iterable.js';
// export * from './feed/loaded.js';

// export { GTFSCalendarDateException } from './files/calendar-date.js';
// export { GTFSCalendarAvailability } from './files/calendar.js';
// export { GTFSContinuousPickupDropOff, GTFSWheelchairAccessbility } from './files/common.js';
// export { GTFSFareAttributePaymentMethod, GTFSFareAttributeTransfer } from './files/fare-attribute.js';
// export { GTFSFareMediaType } from './files/fare-media.js';
// export { GTFSFareTransferRuleDurationLimit, GTFSFareTransferRuleType } from './files/fare-transfer-rule.js';
// export { GTFSFrequncyExactTimes } from './files/frequency.js';
// export { GTFSPathwayMode, GTFSPathwayDirection } from './files/pathway.js';
// export { GTFSRouteType } from './files/route.js';
// export { GTFSStopTimePickupDropOff, GTFSStopTimeTimepoint } from './files/stop-time.js';
// export { GTFSStopLocationType } from './files/stop.js';
// export { GTFSTranferType } from './files/transfer.js';
// export { GTFSTripDirection, GTFSTripBikesAllowed } from './files/trip.js';

// export { GTFSFileIO, GTFSAsyncFileIO } from './io/file/main.js';

// export { GTFSFeedReader as GTFSFeedReaderFromMemory, GTFSAsyncFeedReader as GTFSAsyncFeedReaderFromMemory } from './io/feed/reader-memory.js';
// export { GTFSFeedReader as GTFSFeedReaderFromFile, GTFSAsyncFeedReader as GTFSAsyncFeedReaderFromFile } from './io/feed/reader-fs.js';
// export { GTFSFeedWriter as GTFSFeedWriterToMemory, GTFSAsyncFeedWriter as GTFSAsyncFeedWriterToMemory } from './io/feed/writer-memory.js';
// export { GTFSFeedWriter as GTFSFeedWriterToFile, GTFSAsyncFeedWriter as GTFSAsyncFeedWriterToFile } from './io/feed/writer-fs.js';

// export type * from './feed/base.d.ts';

// export type * from './files/agency.d.ts';
// export type * from './files/area.d.ts';
// export type * from './files/attribution.d.ts';
// export type * from './files/calendar-date.d.ts';
// export type * from './files/calendar.d.ts';
// export type * from './files/common.d.ts';
// export type * from './files/fare-attribute.d.ts';
// export type * from './files/fare-leg-rule.d.ts';
// export type * from './files/fare-media.d.ts';
// export type * from './files/fare-product.d.ts';
// export type * from './files/fare-rule.d.ts';
// export type * from './files/fare-transfer-rule.d.ts';
// export type * from './files/feed-info.d.ts';
// export type * from './files/frequency.d.ts';
// export type * from './files/level.d.ts';
// export type * from './files/network.d.ts';
// export type * from './files/pathway.d.ts';
// export type * from './files/route-network.d.ts';
// export type * from './files/route.d.ts';
// export type * from './files/shape.d.ts';
// export type * from './files/stop-area.d.ts';
// export type * from './files/stop-time.d.ts';
// export type * from './files/stop.d.ts';
// export type * from './files/timeframe.d.ts';
// export type * from './files/transfer.d.ts';
// export type * from './files/translation.d.ts';
// export type * from './files/trip.d.ts';

// export type * from './io/file/types.d.ts';
Loading

0 comments on commit 2a43df6

Please sign in to comment.