Browse Source

Remove my 'make-table-of-contents' script (no longer needed)

Mike MacCana 1 year ago
parent
commit
e698265bc8
1 changed files with 0 additions and 52 deletions
  1. 0 52
      make-table-of-contents.ts

+ 0 - 52
make-table-of-contents.ts

@@ -1,52 +0,0 @@
-// Usage: esrun make-table-of-contents.ts
-import { readdir } from 'node:fs/promises';
-const log = console.log;
-
-// A serial async map function (because we like do things in order and performance doesn't matter)
-const asyncMap = async (array, asyncFunction) => {
-  for (const item of array) {
-    await asyncFunction(item);
-  }
-};
-
-const PROJECT_TYPES = ['anchor', 'native', 'seahorse', 'solidity'];
-const CATEGORIES = ['basics', 'tokens', 'tokens/token-2022', 'compression', 'oracles'];
-
-interface LinkMap {
-  [key: string]: boolean;
-}
-
-// Loop through the folders in CATEGORIES
-await asyncMap(CATEGORIES, async (category) => {
-  const path = `./${category}`;
-  const exampleFolders = (await readdir(path, { withFileTypes: true })).filter((item) => item.isDirectory()).map((dir) => dir.name);
-  log(`\n\n### ${category}`);
-  await asyncMap(exampleFolders, async (exampleFolder) => {
-    // Check if the folder has a subfolder that matches a project type ('anchor', 'native' etc...)
-    const projectTypeFolders = (await readdir(`./${category}/${exampleFolder}`, { withFileTypes: true }))
-      .filter((item) => item.isDirectory())
-      .filter((dir) => PROJECT_TYPES.includes(dir.name));
-
-    // If there are no subfolders that match a project type, we can skip this folder - it's not example code
-    if (projectTypeFolders.length === 0) {
-      return;
-    }
-    log(`\n#### ${exampleFolder}`);
-
-    // We can now create a map of the project types that are present in the example folder
-    const linkMap: LinkMap = {};
-    PROJECT_TYPES.forEach((projectType) => {
-      linkMap[projectType] = projectTypeFolders.some((dir) => dir.name === projectType);
-    });
-
-    const links: Array<string> = [];
-    // Go through the link map add a string link to the folder if the linkmap value is true
-    for (const [projectType, exists] of Object.entries(linkMap)) {
-      const link = `./${category}/${exampleFolder}/${projectType}`;
-      if (exists) {
-        links.push(`[${projectType}](${link})`);
-      }
-    }
-    log(links.join(', '));
-  });
-});