mirror of
https://github.com/Dvorinka/excalidraw-full.git
synced 2026-06-03 22:02:57 +00:00
fix: convert cf-kv and excalidraw-libraries from submodules to regular files
- Remove stale cloudflare-worker submodule entry from .gitmodules - Remove .git dirs from cf-kv and excalidraw-libraries so Git tracks them as regular files - Fixes 'No url found for submodule path cf-kv' CI error
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { readFile, writeFile } from "fs/promises";
|
||||
|
||||
const PATH_LIBRARIES = "./libraries.json";
|
||||
|
||||
const libraries = JSON.parse(await readFile(PATH_LIBRARIES, "utf8"));
|
||||
|
||||
for (const lib of libraries) {
|
||||
if (lib.version === 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const libraryData = JSON.parse(
|
||||
await readFile(`libraries/` + lib.source, "utf8"),
|
||||
);
|
||||
lib.itemNames = libraryData.libraryItems.reduce((acc, item) => {
|
||||
if (item.name) {
|
||||
acc.push(item.name);
|
||||
}
|
||||
return acc;
|
||||
}, []);
|
||||
}
|
||||
|
||||
await writeFile(PATH_LIBRARIES, JSON.stringify(libraries, null, 2));
|
||||
@@ -0,0 +1,43 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user