Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/nandenjin/twinkle-parser

Parse CSV from https://kdb.tsukuba.ac.jp to structured JSON.
https://github.com/nandenjin/twinkle-parser

cli imagine-the-future university-of-tsukuba

Last synced: about 2 months ago
JSON representation

Parse CSV from https://kdb.tsukuba.ac.jp to structured JSON.

Lists

README

        



twinkle-parser



npm version
Code Climate maintainability
Codecov


Parse CSV from https://kdb.tsukuba.ac.jp to structured JSON.


## Usage

### From CLI

#### Quick use

```shell
npx twinkle-parser data_from_kdb.csv
```

#### Global Install

```shell
# Install with NPM
npm install -g twinkle-parser

# Install with yarn
yarn add --global twinkle-parser

# Then
twinkle-parser data_from_kdb.csv
```

#### Use inside repo

```shell
# * Inside repo directory
# Install dependencies
yarn

# Parse
yarn run parse data_from_kdb.csv
```

### As API

```shell
# Install with NPM
npm install twinkle-parser

# Install with yarn
yarn add twinkle-parser
```

```js
const parse = require('twinkle-parser')
const data = parse('CSV string here') // -> KDBData
```

### CLI options

| Option | |
| --------------------------- | ----------------------------------------------------------------- |
| `-o PATH` / `--output PATH` | Export result to a file at the `PATH` instead of to stdout. |
| `-p` / `--pretty` | Prettify json output. |
| `--fields` | Fields to be included (comma-separated, specifing all if not set) |
| `-h` / `--help` | Print help & usage. |
| `-v` / `--version` | Print version info

## Output Format

```jsonc
{
"COURSE_ID": {

"title": "Twinkle",

// Class type (defined value by original data)
"type": 1,

// Course unit
"unit": 1,

// Course target grades
"targets": [1, 2],

// Terms & Modules
// 0 = Spring A, 1 = Spring B, ...
"termStr": "春AB",
"terms": [ 0, 1 ],

// Day & Period sets
"periodStr": "月1-3\n水4-6",
"periods": [
// [ Days( 0 = Sun. 1 = Mon. ... ), Periods ]
[ [ 1 ], [ 0, 1, 2 ] ],
[ [ 3 ], [ 4, 5, 6 ] ]
],

// Rooms
"rooms": [ "7A106", "7C202" ],

// Instructors
"instructors": [ "筑波 太郎" ],

// Overview & Remarks
"overview": "",
"remarks": ""

// Last update in unix time
"updatedAt": 1583390263000
}
}
```

## TypeScript Support

TypeScript supported! 🎉

```ts
// This will be imported with types
import parse from 'twinkle-parser'

// And types for output data are also available
import { KDBData, KDBCourse } from 'twinkle-parser'
```

## Contribution

Issue or PR submissions are welcome.