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 11import { Module } from '@nestjs/common' ;
22
3+ import { AnanatawaLoader } from './ananatawa_loader.js' ;
34import { AnthonyMaysLoader } from './anthony_mays_loader.js' ;
45
56export const Loaders = Symbol . for ( 'Loaders' ) ;
67
7- const LOADER_PROVIDERS = [ AnthonyMaysLoader ] ;
8+ const LOADER_PROVIDERS = [ AnthonyMaysLoader , AnanatawaLoader ] ;
9+
810
911@Module ( {
1012 providers : [
You can’t perform that action at this time.
0 commit comments