in src/platforms/index.js [31:60]
function getPlatformApi (platform, platformRootDir) {
// if platformRootDir is not specified, try to detect it first
if (!platformRootDir) {
const projectRootDir = util.isCordova();
platformRootDir = projectRootDir && path.join(projectRootDir, 'platforms', platform);
}
if (!platformRootDir) {
// If platformRootDir is still undefined, then we're probably is not inside of cordova project
throw new Error('Current location is not a Cordova project');
}
// CB-11174 Resolve symlinks first before working with root directory
platformRootDir = util.convertToRealPathSafe(platformRootDir);
// Make sure the platforms/platform folder exists
if (!fs.existsSync(platformRootDir)) {
throw new Error('The platform "' + platform + '" does not appear to have been added to this project.');
}
let platformApi;
const cached = cachedApis[platformRootDir];
const libDir = path.join(platformRootDir, 'cordova', 'Api.js');
if (cached && cached.platform === platform) {
platformApi = cached;
} else {
const PlatformApi = util.getPlatformApiFunction(libDir, platform);
platformApi = new PlatformApi(platform, platformRootDir, events);
cachedApis[platformRootDir] = platformApi;
}
return platformApi;
}