accelerator-core
Version:
[](https://travis-ci.org/furkleindustries/accelerator-core)
58 lines (51 loc) • 1.62 kB
JavaScript
import {
error,
} from 'colorful-logging';
import * as fs from 'fs-extra';
import {
getAutogeneratedFileWarningText,
} from './functions/getAutogeneratedFileWarningText';
import {
getAuthoredImportsMetadata,
} from './functions/getAuthoredImportsMetadata';
import {
getHotReloadAcceptor,
} from './functions/getHotReloadAcceptor';
import {
getAuthoredAssetObjectDefinitions,
} from './functions/getAuthoredAssetObjectDefinitions';
import * as path from 'path';
import {
setUnhandledRejectionEvent,
} from './functions/setUnhandledRejectionEvent';
import {
scrapeAssets,
} from './functions/scrapeAssets';
setUnhandledRejectionEvent();
const authoredMutatorsDir = path.join(__dirname, '..', 'ink-mutators');
(async () => {
try {
const files = await scrapeAssets(authoredMutatorsDir);
const {
importPaths,
imports,
registry,
} = getAuthoredImportsMetadata(files);
const manifestStr =
getAutogeneratedFileWarningText() +
'\n\nimport { InkMutatorsManifestItem } from \'../src/mutators/InkMutatorsManifestItem\';\n\n' +
imports.join('\n') +
'\nconst manifest: readonly InkMutatorsManifestItem[] = [\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(authoredMutatorsDir, 'mutators-manifest.ts');
await fs.writeFile(manifestPath, manifestStr);
} catch (err) {
error(err);
process.exit(1);
}
})();