Files
mpcfill-pdf/mpcfill.js
orion kindel ae5193700a init
2025-11-06 15:16:08 -06:00

57 lines
1.0 KiB
JavaScript

import {XMLParser} from 'fast-xml-parser'
/**
* @typedef {{
* id: string,
* slots: number,
* name: string,
* query: string
* }} XMLDumpCard
*/
/**
* @typedef {{
* order: {
* details: { quantity: number },
* fronts: { card: Array<XMLDumpCard> },
* backs: { card: Array<XMLDumpCard> },
* cardback: string
* }
* }} XMLDump
*/
/**
* @typedef {{ dpi: number, extension: string }} Card
*/
/**
* @param {String | Uint8Array} xml
* @returns {XMLDump}
*/
const readDump = xml => {
const parser = new XMLParser()
return parser.parse(xml, false)
}
/**
* @param {Array<string>} ids
* @returns {Promise<{[key: string]: Card}>}
*/
const cards = async (...ids) =>
fetch(
'https://mpcfill.com/2/cards/',
{
method: 'POST',
body: JSON.stringify({
cardIdentifiers: ids
}),
headers: {
'Content-Type': 'application/json'
}
}
)
.then(/** @returns {Promise<{results: {[key: string]: Card}}>} */ a => a.json())
.then(a => a.results)
export { cards, readDump }