UNPKG

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.

54 lines • 2.04 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { Expose, plainToInstance, Transform, Type } from 'class-transformer'; import DAT from '../dat.js'; import Game from '../game.js'; import Header from '../logiqx/header.js'; /** * MAME-schema DAT that documents {@link Game}s. */ export default class MameDAT extends DAT { constructor(machine) { super(); this.machine = machine ?? []; this.generateGameNamesToParents(); } /** * Construct a {@link DAT} from a generic object, such as one from reading an XML file. */ static fromObject(obj) { return plainToInstance(MameDAT, obj, { enableImplicitConversion: true, excludeExtraneousValues: true, }).generateGameNamesToParents(); } getHeader() { return new Header({ name: this.build ?? 'MAME', }); } getGames() { if (Array.isArray(this.machine)) { return this.machine; } return [this.machine]; } } __decorate([ Expose(), __metadata("design:type", String) ], MameDAT.prototype, "build", void 0); __decorate([ Expose(), Type(() => Game), Transform(({ value }) => value ?? []), __metadata("design:type", Object) ], MameDAT.prototype, "machine", void 0); //# sourceMappingURL=mameDat.js.map