Skip to content

Commit ca6b313

Browse files
fix(qwik-nx): preset generator should check for the presense of peerDeps (#91)
1 parent 0d63e9c commit ca6b313

File tree

3 files changed

+31
-6
lines changed

3 files changed

+31
-6
lines changed

packages/qwik-nx/src/generators/preset/generator.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,17 @@ import generator from './generator';
55
import { QwikWorkspacePresetGeneratorSchema } from './schema';
66
import { Linter } from '@nrwl/linter';
77

8+
// eslint-disable-next-line @typescript-eslint/no-var-requires
9+
const devkit = require('@nrwl/devkit');
10+
const getInstalledNxVersionModule = require('../../utils/get-installed-nx-version');
11+
812
describe('preset generator', () => {
13+
jest.spyOn(devkit, 'ensurePackage').mockReturnValue(Promise.resolve());
14+
15+
jest
16+
.spyOn(getInstalledNxVersionModule, 'getInstalledNxVersion')
17+
.mockReturnValue('15.6.0');
18+
919
let appTree: Tree;
1020
const options: QwikWorkspacePresetGeneratorSchema = {
1121
name: 'test',
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
import { Tree } from '@nrwl/devkit';
1+
import { ensurePackage, Tree } from '@nrwl/devkit';
22
import { QwikWorkspacePresetGeneratorSchema } from './schema';
3-
import applicationGenerator from '../application/generator';
3+
import { appGenerator } from '../application/generator';
4+
import { getInstalledNxVersion } from '../../utils/get-installed-nx-version';
45

56
export default async function (
67
tree: Tree,
78
options: QwikWorkspacePresetGeneratorSchema
89
) {
10+
await ensurePackage(tree, '@nrwl/vite', getInstalledNxVersion(tree));
11+
912
options.directory = '';
1013
options.name = options.qwikAppName ?? options.name;
1114
options.style = options.qwikAppStyle ?? options.style;
12-
return applicationGenerator(tree, options);
15+
return appGenerator(tree, options);
1316
}
Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11
import { readJson, Tree } from '@nrwl/devkit';
2+
import { PackageJson } from 'nx/src/utils/package-json';
3+
4+
function readNxVersion(packageJson: PackageJson) {
5+
return (
6+
packageJson?.devDependencies?.['nx'] ??
7+
packageJson?.dependencies?.['nx'] ??
8+
packageJson?.devDependencies?.['@nrwl/workspace'] ??
9+
packageJson?.dependencies?.['@nrwl/workspace']
10+
);
11+
}
212

313
export function getInstalledNxVersion(tree: Tree): string {
4-
const pkgJson = readJson(tree, 'package.json');
5-
if (pkgJson.devDependencies && pkgJson.devDependencies['@nrwl/workspace']) {
6-
return pkgJson.devDependencies['@nrwl/workspace'];
14+
const pkgJson: PackageJson = readJson(tree, 'package.json');
15+
const version = readNxVersion(pkgJson);
16+
17+
if (version) {
18+
return version;
719
}
820
throw new Error('Could not resolve nx version from the package.json');
921
}

0 commit comments

Comments
 (0)