code: function(languageSlug, projectSlug, resourceSlug, progressCallback) {
          // support passing args as an object
          if(languageSlug != null && typeof languageSlug == 'object') {
              resourceSlug = languageSlug.resourceSlug;
              projectSlug = languageSlug.projectSlug;
              languageSlug = languageSlug.languageSlug;
          }
  
          // get the legacy data as if it were a real resource container
          return downloadContainer_Future(languageSlug, projectSlug, resourceSlug, progressCallback)
              .then(function(path) {
                  // migrate to resource container
                  let resource;
                  try {
                      resource = library.public_getters.getResource(languageSlug, projectSlug, resourceSlug);
                  } catch (err) {
                      return Promise.reject(err);
                  }
  
                  if(!resource) return Promise.reject(new Error('Unknown resource'));
  
                  // remove import flag
                  let containerFormat = getResourceContainerFormat(resource.formats);
                  if(!containerFormat) return Promise.reject(new Error('Unknown resource format'));
                  containerFormat.imported = 0;
                  resource.formats = [containerFormat];
  
                  try {
                      library.addResource(resource, resource.project_id);
                  } catch (err) {
                      rimraf.sync(path);
                      return Promise.reject(err);
                  }
  
                  let data = fs.readFileSync(path, {encoding: 'utf8'});
  
                  // clean downloaded file
                  rimraf.sync(path);
                  return convertLegacyResourceToContainer(languageSlug, projectSlug, resourceSlug, data);
              });
      }
docs: Downloads a resource container.
  Note: You may provide a single object parameter if you prefer
  
  TRICKY: to keep the interface stable we've abstracted some things.
  once the api supports real resource containers this entire method can go away and be replace
  with downloadContainer_Future (which should be renamed to downloadContainer).
  convertLegacyResourceToContainer will also become deprecated at that time though it may be handy to keep around.
  
  @param languageSlug {string}
  @param projectSlug {string}
  @param resourceSlug {string}
  @param progressCallback {function} receives download progress updates
  @returns {Promise.<Container>} The new container