accelerator-core
Version:
[](https://travis-ci.org/furkleindustries/accelerator-core)
59 lines (52 loc) • 1.69 kB
JavaScript
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);
}
})();