Skip to content

Commit 0e445a4

Browse files
committed
fix: use require.resolve to find angular version
1 parent d782e66 commit 0e445a4

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

src/helpers/validateAngularVersion.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1+
const { readJSON } = require('fs-extra')
12
const { satisfies } = require('semver')
23

3-
// Ensure site is using Angular v17+.
4-
const validateAngularVersion = async function ({ run }) {
5-
const { stdout, exitCode } = await run('node', ['-p', "require('@angular/core/package.json').version"], {
6-
stdio: 'pipe',
7-
})
8-
if (exitCode !== 0) {
9-
console.warn('Could not determine Angular version. This package only supports Angular v17+.')
4+
/**
5+
* Ensure site is using Angular v17+.
6+
* @param {string} root
7+
* @returns {Promise<boolean>}
8+
*/
9+
const validateAngularVersion = async function (root) {
10+
// eslint-disable-next-line n/no-missing-require
11+
const packagePath = require.resolve('@angular/core/package.json', { paths: [root] })
12+
if (!packagePath) {
13+
console.warn('This site does not seem to be using Angular.')
1014
return false
1115
}
12-
// adding -rc to allow prereleases of v17 as well
13-
const isValidVersion = satisfies(stdout, '^17.0.0-rc')
14-
if (!isValidVersion) {
16+
17+
const { version } = await readJSON(packagePath)
18+
if (!satisfies(version, '^17.0.0-rc')) {
1519
console.warn(`This site does not seem to be using Angular 17.`)
1620
return false
1721
}

src/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ const validateAngularVersion = require('./helpers/validateAngularVersion')
66
let isValidAngularProject = true
77

88
module.exports = {
9-
async onPreBuild({ utils, netlifyConfig }) {
10-
const { failPlugin } = utils.build
11-
isValidAngularProject = await validateAngularVersion({ failPlugin, run: utils.run })
9+
async onPreBuild({ netlifyConfig }) {
10+
const siteRoot = getAngularRoot({ netlifyConfig })
11+
isValidAngularProject = await validateAngularVersion(siteRoot)
1212
if (!isValidAngularProject) {
1313
console.warn('Skipping build plugin.')
1414
return

0 commit comments

Comments
 (0)