const __ = require('./lib/Extensions'); import * as fs from 'fs'; import fetch from 'node-fetch'; import { c } from './lib/Log'; import __rootDir from './lib/RootDirFinder'; (async () => { const response = await fetch(`http://pouet.eastus.cloudapp.azure.com:8080/personality/all?all=true`, { method: 'POST', }); const personas = (await response.json()).personality as string[]; c.debug(`Personas from server: ${personas.length}`); c.debug(`Deduped: ${ (new Set(personas)).size }`); const o: Obj = {}; for (const persona of personas) { const slug = persona .replace(/\W/g, '-') .replace(/-+$/, "") // <- trim trailing dash .replace(/--+/g, "-") // <- never allow more than one consecutive dash ; o[slug] = persona; } c.debug( `After slugification: ${ (new Set(Object.keys(o))).size }` ); await fs.promises.writeFile( __rootDir+`/server/data/personas.json`, JSON.stringify(o, null, 2) ); process.exit(); })();