()
| 170 | await downloadFileIfMissingOrChanged(font.url, filePath); |
| 171 | } |
| 172 | } |
| 173 | } |
| 174 | |
| 175 | async function getQuoteGen(): Promise<any> { |
| 176 | if (!quoteGenPromise) { |
| 177 | quoteGenPromise = (async () => { |
| 178 | await ensureQuoteAssets(); |
| 179 | requireOrInstall("canvas"); |
| 180 | requireOrInstall("sharp"); |
| 181 | // vendor/ pulls these in at module load (quote-generate/index.js requires |
| 182 | // telegraf; avatar.js requires lru-cache + runes; media.js requires jimp + |
| 183 | // smartcrop-sharp; emoji-db.js requires emoji-db). They are not declared in |
| 184 | // the host package.json, so install on demand or generate.js fails to load. |
| 185 | for (const dep of QUOTE_VENDOR_NPM_DEPS) requireOrInstall(dep); |
| 186 | return require("./quote/generate"); |
| 187 | })(); |
| 188 | } |
| 189 | return quoteGenPromise; |
| 190 | } |
no test coverage detected