mirror of
https://github.com/excalidraw/excalidraw-libraries.git
synced 2026-05-17 13:30:41 +00:00
10749c511d
Co-authored-by: dwelle <luzar.david@gmail.com>
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
const librariesList = require("../libraries.json");
|
|
|
|
const red = (str) => (process.env.CI ? `\x1b[31m${str}\x1b[0m` : str);
|
|
|
|
const assertNonEmpty = (lib, field) => {
|
|
if (!lib[field]) {
|
|
throw new Error(red(`"${lib.source}" doesn't have "${field}" field set.`));
|
|
}
|
|
};
|
|
|
|
const assertUniqueIds = () => {
|
|
const ids = new Set();
|
|
const duplicateIds = [];
|
|
for (const lib of librariesList) {
|
|
if (!lib.id) {
|
|
continue;
|
|
}
|
|
if (ids.has(lib.id)) {
|
|
duplicateIds.push(lib.id);
|
|
}
|
|
ids.add(lib.id);
|
|
}
|
|
if (duplicateIds.length) {
|
|
throw new Error(red(`Found duplicate ids: "${duplicateIds.join(`", "`)}"`));
|
|
}
|
|
};
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
for (const lib of librariesList) {
|
|
assertNonEmpty(lib, "name");
|
|
assertNonEmpty(lib, "description");
|
|
assertNonEmpty(lib, "version");
|
|
assertNonEmpty(lib, "source");
|
|
assertNonEmpty(lib, "preview");
|
|
assertNonEmpty(lib, "created");
|
|
assertNonEmpty(lib, "updated");
|
|
assertNonEmpty(lib, "authors");
|
|
// TODO re-enable once we add missing item names for old libs
|
|
// assertNonEmpty(lib, "itemNames");
|
|
}
|
|
|
|
assertUniqueIds();
|