app
Adom Symbol
Public Made by Adomby adom
KiCad symbol creator with interactive viewer and delivery to KiCad/Fusion 360
/**
* Metadata JSON Generator
*
* Creates the -metadata.json file from structured symbol data.
* This is the single source of truth for the Adom Viewer hover data.
*/
/**
* Generate metadata JSON object from structured symbol input.
*
* @param {object} input
* @param {string} input.symbolName
* @param {string} input.manufacturer
* @param {string} input.package
* @param {string} input.description
* @param {string} input.datasheetUrl
* @param {Array<{name: string, number: string, type: string, group?: string, description: string}>} input.pins
* @param {Array<{name: string, description: string}>} [input.groups]
* @returns {object} Metadata JSON object
*/
export function generateMetadata(input) {
const { symbolName, manufacturer, package: pkg, description, datasheetUrl, pins, groups } = input;
const pinDescriptions = {};
for (const pin of pins) {
pinDescriptions[pin.name] = pin.description || '';
}
const groupDescriptions = {};
if (groups) {
for (const group of groups) {
groupDescriptions[group.name] = group.description || '';
}
}
return {
symbolName,
manufacturer: manufacturer || '',
package: pkg || '',
description: description || '',
datasheetUrl: datasheetUrl || '',
pinCount: pins.length,
pinDescriptions,
groupDescriptions,
};
}