code: function AssetManager(generator, config, logger, document, renderManager) {
          events.EventEmitter.call(this);
  
          this._generator = generator;
          this._config = config;
          this._logger = logger;
          this._document = document;
          this._metaDataRoot = config["meta-data-root"] || META_PLUGIN_ID;
  
          this._renderManager = renderManager;
          this._fileManager = new FileManager(generator, config, logger);
          this._errorManager = new ErrorManager(generator, config, logger, this._fileManager);
  
          this._handleChange = this._handleChange.bind(this);
          this._handleCompsChange = this._handleCompsChange.bind(this);
      }
docs: The asset manager maintains a set of assets for a given document. On
  initialization, it parses the layers' names into a set of components,
  requests renderings of each of those components from the render manager,
  and organizes the rendered assets into the appropriate files and folders.
  When the document changes, it requests that the appropriate components be
  re-rendered or moved into the right place. It also manages error reporting.
  
  @constructor
  @param {Generator} generator
  @param {object} config
  @param {Logger} logger
  @param {Document} document
  @param {RenderManager} renderManager