File size: 1,361 Bytes
54a7dba | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | // Debug v2: seed registry with tokens.dssl, then inspect .feature-grid decls
import { parse } from '../public/dssl/parser.js';
import { resolve } from '../public/dssl/resolver.js';
import { readFileSync } from 'node:fs';
const load = (f) => {
const src = readFileSync(new URL('../public/styles/' + f, import.meta.url), 'utf8');
const { ast, errors } = parse(src, f);
return { ast, errors, src };
};
const tokens = load('tokens.dssl');
const tokDoc = resolve(tokens.ast, 'tokens.dssl', {});
const registry = { ...tokDoc.tokens };
console.log('tokens errors:', tokDoc.errors.length, '| registry size:', Object.keys(registry).length);
const home = load('home.dssl');
const doc = resolve(home.ast, 'home.dssl', registry);
console.log('home errors:', doc.errors.length);
for (const e of doc.errors) console.log(' ERR', e.file + ':' + e.line, e.message, e.hint || '');
const interesting = doc.rules.filter(r => /feature-grid|pain-grid|compare /.test(r.sel) || /^(\.compare)$/.test(r.sel));
const seen = new Set();
for (const r of interesting) {
const key = r.sel + '|' + JSON.stringify(r.media);
if (seen.has(key)) continue;
seen.add(key);
console.log('\nRULE', JSON.stringify(r.sel), 'media:', JSON.stringify(r.media), 'layer:', r.layer, 'order:', r.order);
for (const d of r.decls) console.log(' ', d.prop, '=>', JSON.stringify(d.value));
}
|