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.

32 lines (31 loc) • 1.4 kB
import moment from 'moment'; import Package from '../../globals/package.js'; import Header from './logiqx/header.js'; /** * Igir-generated {@link Header}. */ export default class IgirHeader extends Header { constructor(datType, originalDat, options) { const inputOptions = Object.entries(options.toObject()).filter(([key, value]) => (['merge-', 'exclude-', 'filter-', 'no-', 'only-', 'single', 'prefer-'].some((start) => key.startsWith(start)) || ['input', 'input-exclude', 'dat'].includes(key)) && value !== undefined && value !== false && value !== '' && (!Array.isArray(value) || value.length > 0)); const inputOptionsString = JSON.stringify(Object.fromEntries(inputOptions), undefined, 2); const date = moment().format('YYYYMMDD-HHmmss'); super({ name: `${originalDat.getHeader().getName().trim()} ${datType}`.trim(), description: `${originalDat.getHeader().getDescription()?.trim()} ${datType}`.trim(), version: date, date, author: Package.NAME, url: Package.HOMEPAGE, comment: [ `${datType} generated by ${Package.NAME} v${Package.VERSION}`, `Options: ${inputOptionsString}`, `Filtered DAT: ${originalDat.toString()}`, ].join('\n'), }); } }