function resolvePerBundleAddonCacheUtil(project) {
  const relativePathToUtil =
    project.pkg && project.pkg['ember-addon'] && project.pkg['ember-addon'].perBundleAddonCacheUtil;

  if (typeof relativePathToUtil === 'string') {
    const absolutePathToUtil = path.resolve(project.root, relativePathToUtil);

    if (!fs.existsSync(absolutePathToUtil)) {
      throw new Error(
        `[ember-cli] the provided \`${relativePathToUtil}\` for \`ember-addon.perBundleAddonCacheUtil\` does not exist`
      );
    }

    return require(absolutePathToUtil);
  }

  return {
    allowCachingPerBundle: defaultAllowCachingPerBundle,
  };
}
Resolves the perBundleAddonCacheUtil; this prefers the custom provided version by
the consuming application, and defaults to an internal implementation here.

@method resolvePerBundleAddonCacheUtil
@param {Project} project
@return {{allowCachingPerBundle: Function}}