@itentialopensource/adapter-godaddy
Version:
This adapter integrates with system described as: GoDaddy REST API v1 and v2.
64 lines (58 loc) • 2.24 kB
JavaScript
const { execSync } = require('child_process');
const fs = require('fs');
const semver = require('semver');
const axios = require('axios');
const packageJson = require('../package.json');
const localEngineVer = packageJson.engineVersion;
const localUtils = execSync('npm list @itentialopensource/adapter-utils', { encoding: 'utf-8' });
const localUtilsVer = localUtils.split('@').pop().replace(/(\r\n|\n|\r| )/gm, '');
/**
* @summary Makes a GET call using axios
*
* @function get
* @param {String} url - url to make the call to
*/
function get(url) {
const config = {
method: 'get',
url
};
return axios(config);
}
/**
* @summary Checks if adapter can be migrated using migration package
*
* @function migratePossible
*/
function migratePossible() {
const adapterTestUnit = fs.readFileSync('./test/unit/adapterTestUnit.js', { encoding: 'utf-8' });
const readme = fs.readFileSync('./README.md', { encoding: 'utf-8' });
return packageJson.keywords !== null && adapterTestUnit.indexOf('DO NOT REMOVE THIS COMMENT BLOCK') !== -1
&& readme.indexOf('available at ') !== -1 && readme.indexOf('You will need to change the credentials and possibly the host information below.') !== -1;
}
/**
* @summary Checks if adapter is up-to-date or if migration is needed
*
* @function migrateNeeded
*/
async function migrateNeeded() {
const engineUrl = 'https://adapters.itential.io/engineVersion';
const utilsUrl = 'https://registry.npmjs.org/@itentialopensource/adapter-utils';
const latestEngineVer = (await get(engineUrl)).data;
const latestUtilsVer = (await get(utilsUrl)).data['dist-tags'].latest;
return semver.lt(localEngineVer, latestEngineVer) || semver.lt(localUtilsVer, latestUtilsVer);
}
// Main Script
if (migratePossible()) {
migrateNeeded().then((needed) => {
if (needed) {
console.log('Migration is needed and possible -- go to dev site to download migration package');
} else {
console.log('Migration is possible but not needed at the current time.');
}
}).catch((error) => {
console.log('Could not get latest engine or utils version.', error.message);
});
} else {
console.log('Migration is not possible. Please contact Itential support for assistance');
}