UNPKG

accelerator-core

Version:

[![Build Status](https://travis-ci.org/furkleindustries/accelerator-core.svg?branch=master)](https://travis-ci.org/furkleindustries/accelerator-core)

59 lines (52 loc) 1.69 kB
import { error, } from 'colorful-logging'; import * as fs from 'fs-extra'; import { getAuthoredAssetObjectDefinitions, } from './functions/getAuthoredAssetObjectDefinitions'; import { getAutogeneratedFileWarningText, } from './functions/getAutogeneratedFileWarningText'; import { getAuthoredImportsMetadata, } from './functions/getAuthoredImportsMetadata'; import { getHotReloadAcceptor, } from './functions/getHotReloadAcceptor'; import * as path from 'path'; import { setUnhandledRejectionEvent, } from './functions/setUnhandledRejectionEvent'; import { scrapeAssets, } from './functions/scrapeAssets'; setUnhandledRejectionEvent(); const authoredFootersDir = path.join(__dirname, '..', 'footers'); /* Collect all files within the footers directory ending in .js, .jsx, .ts, or .tsx. */ (async () => { try { const files = await scrapeAssets(authoredFootersDir); const { importPaths, imports, registry, } = getAuthoredImportsMetadata(files); const manifestStr = getAutogeneratedFileWarningText() + '\n\nimport { IFooterManifestItem } from \'../src/passages/IFooterManifestItem\';\n\n' + imports.join('\n') + '\nconst manifest: readonly IFooterManifestItem[] = [\n' + getAuthoredAssetObjectDefinitions(files).join('\n') + '\n];\n\n' + 'export default manifest;\n\n' + `export const registry = ${JSON.stringify(registry, null, 2)}\n\n` + getHotReloadAcceptor(importPaths) + '\n'; const manifestPath = path.join(authoredFootersDir, 'footers-manifest.ts'); await fs.writeFile(manifestPath, manifestStr); } catch (err) { error(err); process.exit(1); } })();