Skip to content

Commit 6009ca0

Browse files
committed
feat(plugin): update init-soba generator to add metadata.json
1 parent d57865e commit 6009ca0

File tree

3 files changed

+38
-33
lines changed

3 files changed

+38
-33
lines changed

libs/plugin/src/generators/init-soba/generator.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { addDependenciesToPackageJson, installPackagesTask, logger, readJson, type Tree } from '@nx/devkit';
2+
import { addMetadataJson } from '../utils';
23
import {
34
ANGULAR_THREE_VERSION,
45
MESH_LINE_VERSION,
@@ -31,6 +32,8 @@ export default async function (tree: Tree) {
3132
{},
3233
);
3334

35+
addMetadataJson(tree, 'angular-three-soba/metadata.json');
36+
3437
return () => {
3538
installPackagesTask(tree);
3639
};

libs/plugin/src/generators/init/generator.ts

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
1-
import {
2-
addDependenciesToPackageJson,
3-
installPackagesTask,
4-
logger,
5-
readJson,
6-
updateJson,
7-
writeJson,
8-
type Tree,
9-
} from '@nx/devkit';
1+
import { addDependenciesToPackageJson, installPackagesTask, logger, readJson, updateJson, type Tree } from '@nx/devkit';
2+
import { addMetadataJson } from '../utils';
103
import { ANGULAR_THREE_VERSION, THREE_TYPE_VERSION, THREE_VERSION } from '../versions';
114

125
export default async function (tree: Tree) {
@@ -35,30 +28,7 @@ export default async function (tree: Tree) {
3528
return json;
3629
});
3730

38-
// add metadata.json to vscode settings if exists
39-
const vscodeSettingsPath = '.vscode/settings.json';
40-
if (tree.exists('.vscode')) {
41-
logger.info('Enabling typings support for VSCode...');
42-
if (!tree.exists(vscodeSettingsPath)) {
43-
writeJson(tree, vscodeSettingsPath, {});
44-
}
45-
updateJson(tree, vscodeSettingsPath, (json) => {
46-
if (json['html.customData'] && Array.isArray(json['html.customData'])) {
47-
json['html.customData'].push('./node_modules/angular-three/metadata.json');
48-
} else {
49-
json['html.customData'] = ['./node_modules/angular-three/metadata.json'];
50-
}
51-
52-
return json;
53-
});
54-
} else {
55-
logger.info(
56-
`.vscode/settings.json not found.
57-
If you are using VSCode, add "./node_modules/angular-three/metadata.json" to "html.customData" in ".vscode/settings.json"
58-
to enable TypeScript type definitions for Angular Three elements.
59-
`,
60-
);
61-
}
31+
addMetadataJson(tree, 'angular-three/metadata.json');
6232

6333
return () => {
6434
installPackagesTask(tree);

libs/plugin/src/generators/utils.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { logger, updateJson, writeJson, type Tree } from '@nx/devkit';
2+
3+
export function addMetadataJson(tree: Tree, metadataJsonPath: string) {
4+
if (!metadataJsonPath.includes('node_modules')) {
5+
metadataJsonPath = `./node_modules/${metadataJsonPath}`;
6+
}
7+
8+
// add metadata.json to vscode settings if exists
9+
const vscodeSettingsPath = '.vscode/settings.json';
10+
if (tree.exists('.vscode')) {
11+
logger.info('Enabling typings support for VSCode...');
12+
if (!tree.exists(vscodeSettingsPath)) {
13+
writeJson(tree, vscodeSettingsPath, {});
14+
}
15+
updateJson(tree, vscodeSettingsPath, (json) => {
16+
if (json['html.customData'] && Array.isArray(json['html.customData'])) {
17+
json['html.customData'].push(metadataJsonPath);
18+
} else {
19+
json['html.customData'] = [metadataJsonPath];
20+
}
21+
22+
return json;
23+
});
24+
} else {
25+
logger.info(
26+
`.vscode/settings.json not found.
27+
If you are using VSCode, add "${metadataJsonPath}" to "html.customData" in ".vscode/settings.json"
28+
to enable TypeScript type definitions for Angular Three elements.
29+
`,
30+
);
31+
}
32+
}

0 commit comments

Comments
 (0)