SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%
1.5 KB · 22 lines typescript
Raw Blame History
1import { readFileSync } from 'node:fs';2import path from 'node:path';3import { listFixtures, loadFixture } from '@rareindex/connectors/testing';4import { localMeta } from '../_lib/local-meta.js';5const root = '/Users/simon-pierreboucher/Desktop/Projets/apps-web/rareindex/connectors';6const MODULES: Record<string, string> = { mycomicshop: 'scrapfly/mycomicshop', 'entertainment-earth': 'scrapfly/entertainment-earth', 'miniature-market': 'api/miniature-market', videogametrader: 'api/videogametrader', 'mattel-creations': 'api/mattel-creations', comiclink: 'scrapfly/comiclink', gcd: 'api/gcd' };7for (const id of process.argv.slice(2)) {8  const meta = localMeta(JSON.parse(readFileSync(path.join(root, MODULES[id]!, 'meta.json'), 'utf8')));9  const mod = await import(path.join(root, MODULES[id]!, 'index.ts'));10  const c = mod.default(meta);11  for (const name of listFixtures(id)) {12    const out = await c.normalize(loadFixture(id, name).raw);13    console.log(`\n=== ${id}/${name}: ${out.length} records`);14    for (const r of out.slice(0, Number(process.env.N ?? 3))) {15      const { attributes, grade, condition, ...rest } = r as any;16      const { metadata, identifiers, ...a } = attributes ?? {};17      const compact = Object.fromEntries(Object.entries({ ...rest, ...Object.fromEntries(Object.entries(a).filter(([, v]) => v !== null)), identifiers, grade, condition, metadata }).filter(([k]) => !['connectorId', 'sourceId', 'parserVersion', 'observedAt', 'imageUrls', 'description'].includes(k)));18      console.log(JSON.stringify(compact));19    }20  }21}22