nl_tokens: Writes the system to the cache
pl_tokens: async function genesis ( system ) { log . i ( ' [Save Cache]' . padStart ( 80 , '=' ) ) ; log . i ( 'Genesis Compile Start:' ) ; let cacheState = null ; if ( fs . existsSync ( CacheDir ) ) cacheState = 'exists' ; cacheInterface = new CacheInterface ( { path : CacheDir , log } ) ; cleanCache ( ) ; log . i ( 'Saving modules and updating dependencies ...' ) ; await cacheModules ( system . ModCache ) ; if ( ! ( __options . state == 'updateOnly' ) ) { log . i ( 'Saving entities ...' ) ; await cacheApexes ( system . Apex , system . Config . Modules ) ; } Stop ( ) ; ///////////////////////////////////////////////////////////// // //	Only helper functions beyond this point of this scope // /**
  			*  Remove the cache if it currently exists in the given directory	
  			*/ function cleanCache ( ) { // Remove the provided cache directory if ( __options . state == 'development' && cacheState ) { __options . <mask> = 'updateOnly' ; return ; } log . v ( 'Removing the old cache.' ) ; cacheInterface . clean ( ) ; } /**
  			 * Write the modules to the cache
  			 * @param {Object} ModCache 	//the set of module zips required for this system
  			 */ async function cacheModules ( ModCache ) { let timer = log . time ( 'cacheModules' ) ; let ModulePromiseArray = [ ] ; for ( let folder in ModCache ) { ModulePromiseArray . push ( new Promise ( async ( res ) => { await cacheInterface . addModule ( folder , ModCache [ folder ] ) ; log . v ( ` ${ folder } ` ) ; res ( ) ; } ) ) ; } await Promise . all ( ModulePromiseArray ) ; log . timeEnd ( timer ) ; } /**
  			 * Write the module Apexes to the cache
  			 * @param {Object} Apexes 						//The id:Pid of each apex
  			 * @param {Object} ModuleDefinitions 	//the id:ModuleDefinition from Config
  			 */ async function cacheApexes ( Apexes , ModuleDefinitions ) { let ModulePromiseArray = [ ] ; for ( let moduleId in Apexes ) { ModulePromiseArray . push ( await cacheInterface . createInstance ( ModuleDefinitions [ moduleId ] , Apexes [ moduleId ] ) ) ; } await Promise . all ( ModulePromiseArray ) ; } /**
  			 * Resolves the main promise created during genesis call
  			 */ async function Stop ( ) { log . i ( ` ${ new Date ( ) . toString ( ) } ` ) ; log . i ( ' [Finished]' . padStart ( 80 , '=' ) ) ; for ( const xgrl in BrokerCache ) { const broker = BrokerCache [ xgrl ] ; broker . cleanup ( ) ; } log . timeEnd ( compileTimer ) ; resolveMain ( ) ; } }