igir
Version:
🕹 A zero-setup ROM collection manager that sorts, filters, extracts or archives, patches, and reports on collections of any size on any OS.
67 lines (66 loc) • 1.67 kB
TypeScript
export interface DATProps extends CMProObject {
clrmamepro?: ClrMameProProps;
game?: GameProps | GameProps[];
resource?: ROMProps | ROMProps[];
}
export interface ClrMameProProps extends CMProObject {
name?: string;
description?: string;
category?: string;
version?: string;
forcemerging?: 'none' | 'split' | 'full';
forcezipping?: 'yes' | 'no';
date?: string;
author?: string;
homepage?: string;
url?: string;
comment?: string;
}
export interface GameProps extends CMProObject {
name?: string;
description?: string;
year?: string;
manufacturer?: string;
cloneof?: string;
romof?: string;
rom?: ROMProps | ROMProps[];
disk?: ROMProps | ROMProps[];
sample?: SampleProps | SampleProps[];
comment?: string;
genre?: string;
}
export interface ROMProps extends CMProObject {
name?: string;
size?: string;
crc?: string;
md5?: string;
sha1?: string;
}
export interface SampleProps extends CMProObject {
name: string;
}
type CMProValue = CMProObject | string | undefined;
interface CMProObject {
[key: string]: CMProValue | CMProValue[];
}
/**
* A parser for CMPRo schema DATs.
* @see http://www.logiqx.com/DatFAQs/CMPro.php
*/
export default class CMProParser {
private static readonly WHITESPACE_CHARS;
private readonly contents;
private pos;
constructor(contents: string);
/**
* Parse the CMPro DAT's file contents.
*/
parse(): DATProps;
private skipWhitespace;
private parseObject;
private parseTag;
private parseValue;
private parseQuotedString;
private parseUnquotedString;
}
export {};