UNPKG

accelerator-core

Version:

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

58 lines (51 loc) 1.6 kB
import { error, } from 'colorful-logging'; import * as fs from 'fs-extra'; import { getAutogeneratedFileWarningText, } from './functions/getAutogeneratedFileWarningText'; import { getAuthoredAssetObjectDefinitions, } from './functions/getAuthoredAssetObjectDefinitions'; import { getAuthoredImportsMetadata, } from './functions/getAuthoredImportsMetadata'; import { getHotReloadAcceptor, } from './functions/getHotReloadAcceptor'; import * as path from 'path'; import { scrapeAssets, } from './functions/scrapeAssets'; import { setUnhandledRejectionEvent, } from './functions/setUnhandledRejectionEvent'; setUnhandledRejectionEvent(); const authoredPluginsDir = path.join(__dirname, '..', 'plugins'); (async () => { try { const files = await scrapeAssets(authoredPluginsDir); const { importPaths, imports, registry, } = getAuthoredImportsMetadata(files); const manifestStr = getAutogeneratedFileWarningText() + '\n\nimport { IPluginManifestItem } from \'../src/plugins/IPluginManifestItem\';\n' + imports.join('\n') + '\n\nconst manifest: readonly IPluginManifestItem[] = [\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(authoredPluginsDir, 'plugins-manifest.ts'); await fs.writeFile(manifestPath, manifestStr); } catch (err) { error(err); process.exit(1); } })();