(parser: IObjectParserProp<any>)
| 31 | } |
| 32 | |
| 33 | function parseMetaEditMeta(parser: IObjectParserProp<any>) : MetaEditMeta { |
| 34 | const parsed: MetaEditMeta = { |
| 35 | id: '', |
| 36 | }; |
| 37 | |
| 38 | parser.prop('id', v => parsed.id = str(v)); |
| 39 | parser.prop('title', v => parsed.title = str(v), true); |
| 40 | parser.prop('alternateTitles', v => parsed.alternateTitles = str(v), true); |
| 41 | parser.prop('series', v => parsed.series = str(v), true); |
| 42 | parser.prop('developer', v => parsed.developer = str(v), true); |
| 43 | parser.prop('publisher', v => parsed.publisher = str(v), true); |
| 44 | parser.prop('playMode', v => parsed.playMode = str(v), true); |
| 45 | parser.prop('status', v => parsed.status = str(v), true); |
| 46 | parser.prop('notes', v => parsed.notes = str(v), true); |
| 47 | parser.prop('source', v => parsed.source = str(v), true); |
| 48 | parser.prop('releaseDate', v => parsed.releaseDate = str(v), true); |
| 49 | parser.prop('version', v => parsed.version = str(v), true); |
| 50 | parser.prop('originalDescription', v => parsed.originalDescription = str(v), true); |
| 51 | parser.prop('language', v => parsed.language = str(v), true); |
| 52 | parser.prop('library', v => parsed.library = str(v), true); |
| 53 | parser.prop('platform', v => parsed.platforms?.push(str(v))); |
| 54 | |
| 55 | parser.prop('platforms', v => parsed.platforms = (v !== undefined) ? [] : undefined, true).arrayRaw(v => { |
| 56 | if (!parsed.platforms) { throw new Error('"parsed.tags" is missing (bug)'); } |
| 57 | parsed.platforms.push(str(v)); |
| 58 | }); |
| 59 | parser.prop('tags', v => parsed.tags = (v !== undefined) ? [] : undefined, true).arrayRaw(v => { |
| 60 | if (!parsed.tags) { throw new Error('"parsed.tags" is missing (bug)'); } |
| 61 | parsed.tags.push(str(v)); |
| 62 | }); |
| 63 | |
| 64 | return parsed; |
| 65 | } |
| 66 | |
| 67 | type LoadedMetaEditFile = { |
| 68 | filename: string; |
no test coverage detected