diff --git a/scripts/peer-api-check.js b/scripts/peer-api-check.js index 63196c362a..dbb4002c3a 100644 --- a/scripts/peer-api-check.js +++ b/scripts/peer-api-check.js @@ -14,23 +14,29 @@ * limitations under the License. */ -const fs = require('fs'); -const os = require('os'); const path = require('path'); - const appRoot = process.cwd(); - const packageJsonUrl = path.resolve(`${appRoot}/package.json`); const pjson = require(packageJsonUrl); -if (pjson.dependencies && pjson.dependencies["@opentelemetry/api"]) - throw new Error(`Package ${pjson.name} depends on API but it should be a peer dependency`); +if (pjson.dependencies && pjson.dependencies['@opentelemetry/api']) { + throw new Error(`Package ${pjson.name} depends on API but it should be a peer dependency`); +} -const peerVersion = pjson.peerDependencies && pjson.peerDependencies["@opentelemetry/api"] -const devVersion = pjson.devDependencies && pjson.devDependencies["@opentelemetry/api"] +const peerVersion = pjson.peerDependencies && pjson.peerDependencies['@opentelemetry/api']; +const devVersion = pjson.devDependencies && pjson.devDependencies['@opentelemetry/api']; if (peerVersion) { - if (peerVersion !== `^${devVersion}`) { - throw new Error(`Package ${pjson.name} depends on peer API version ${peerVersion} but version ${devVersion} in development`); - } - console.log(`${pjson.name} OK`); + // error if not pinned + if (!/^[0-9]/.test(devVersion)) { + throw new Error( + `Package ${pjson.name} does't have API version pinned in dev dependencies: ${devVersion}` + ); + } + if (peerVersion !== `^${devVersion}`) { + throw new Error( + `Package ${pjson.name} depends on peer API version ${peerVersion} ` + + `but version ${devVersion} in development` + ); + } + console.log(`${pjson.name} OK`); }