File tree Expand file tree Collapse file tree 2 files changed +48
-1
lines changed
lesson_10/libraries/src/loaders Expand file tree Collapse file tree 2 files changed +48
-1
lines changed Original file line number Diff line number Diff line change
1
+ import csv from 'csv-parser' ;
2
+ import fs from 'fs' ;
3
+ import { Credit , MediaItem } from '../models/index.js' ;
4
+ import { Loader } from './loader.js' ;
5
+
6
+ export class AnanatawasLoader implements Loader {
7
+ getLoaderName ( ) : string {
8
+ return 'ananatawa' ;
9
+ }
10
+
11
+ async loadData ( ) : Promise < MediaItem [ ] > {
12
+ const credits = await this . loadCredits ( ) ;
13
+ const mediaItems = await this . loadMediaItems ( ) ;
14
+
15
+ console . log (
16
+ `Loaded ${ credits . length } credits and ${ mediaItems . length } media items` ,
17
+ ) ;
18
+
19
+ return [ ...mediaItems . values ( ) ] ;
20
+ }
21
+
22
+ async loadMediaItems ( ) : Promise < MediaItem [ ] > {
23
+ const credits = [ ] ;
24
+ const readable = fs
25
+ . createReadStream ( 'data/media_items.csv' , 'utf-8' )
26
+ . pipe ( csv ( ) ) ;
27
+ for await ( const row of readable ) {
28
+ const { media_item_id, role, name } = row ;
29
+ credits . push ( new Credit ( media_item_id , name , role ) ) ;
30
+ }
31
+ return [ ] ;
32
+ }
33
+
34
+ async loadCredits ( ) : Promise < Credit [ ] > {
35
+ const credits = [ ] ;
36
+ const readable = fs
37
+ . createReadStream ( 'data/credits.csv' , 'utf-8' )
38
+ . pipe ( csv ( ) ) ;
39
+ for await ( const row of readable ) {
40
+ const { media_item_id, role, name } = row ;
41
+ credits . push ( new Credit ( media_item_id , name , role ) ) ;
42
+ }
43
+ return credits ;
44
+ }
45
+ }
Original file line number Diff line number Diff line change 1
1
import { Module } from '@nestjs/common' ;
2
2
3
+ import { AnanatawaLoader } from './ananatawa_loader.js' ;
3
4
import { AnthonyMaysLoader } from './anthony_mays_loader.js' ;
4
5
5
6
export const Loaders = Symbol . for ( 'Loaders' ) ;
6
7
7
- const LOADER_PROVIDERS = [ AnthonyMaysLoader ] ;
8
+ const LOADER_PROVIDERS = [ AnthonyMaysLoader , AnanatawaLoader ] ;
9
+
8
10
9
11
@Module ( {
10
12
providers : [
You can’t perform that action at this time.
0 commit comments