angular-three-plugin 4.0.0-next.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/generators.json +16 -0
- package/package.json +36 -0
- package/src/generators/init/compat.d.ts +2 -0
- package/src/generators/init/compat.js +6 -0
- package/src/generators/init/compat.js.map +1 -0
- package/src/generators/init/files/scene-graph.ts__tmpl__ +29 -0
- package/src/generators/init/init.d.ts +6 -0
- package/src/generators/init/init.js +236 -0
- package/src/generators/init/init.js.map +1 -0
- package/src/generators/init/schema.json +37 -0
- package/src/generators/init/utils.d.ts +5 -0
- package/src/generators/init/utils.js +38 -0
- package/src/generators/init/utils.js.map +1 -0
- package/src/index.d.ts +0 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -0
- package/src/utils.d.ts +2 -0
- package/src/utils.js +33 -0
- package/src/utils.js.map +1 -0
- package/src/versions.d.ts +32 -0
- package/src/versions.js +36 -0
- package/src/versions.js.map +1 -0
package/README.md
ADDED
package/generators.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generators": {
|
|
3
|
+
"init": {
|
|
4
|
+
"factory": "./src/generators/init/init",
|
|
5
|
+
"schema": "./src/generators/init/schema.json",
|
|
6
|
+
"description": "init generator"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"schematics": {
|
|
10
|
+
"init": {
|
|
11
|
+
"factory": "./src/generators/init/compat",
|
|
12
|
+
"schema": "./src/generators/init/schema.json",
|
|
13
|
+
"description": "init generator"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "angular-three-plugin",
|
|
3
|
+
"version": "4.0.0-next.20",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"type": "commonjs",
|
|
8
|
+
"main": "./src/index.js",
|
|
9
|
+
"types": "./src/index.d.ts",
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@nx/devkit": "^20.0.0",
|
|
12
|
+
"nx": "^20.0.0",
|
|
13
|
+
"ts-morph": "^25.0.0",
|
|
14
|
+
"tslib": "^2.3.0"
|
|
15
|
+
},
|
|
16
|
+
"generators": "./generators.json",
|
|
17
|
+
"schematics": "./generators.json",
|
|
18
|
+
"nx-migrations": {
|
|
19
|
+
"migrations": "./migrations.json",
|
|
20
|
+
"packageGroup": [
|
|
21
|
+
"angular-three-soba",
|
|
22
|
+
"angular-three-postprocessing",
|
|
23
|
+
"angular-three-cannon",
|
|
24
|
+
"angular-three-rapier"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"ng-update": {
|
|
28
|
+
"migrations": "./migrations.json",
|
|
29
|
+
"packageGroup": [
|
|
30
|
+
"angular-three-soba",
|
|
31
|
+
"angular-three-postprocessing",
|
|
32
|
+
"angular-three-cannon",
|
|
33
|
+
"angular-three-rapier"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/init/compat.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,iCAAmC;AAEnC,kBAAe,IAAA,2BAAkB,EAAC,cAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, Component, viewChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { extend, injectBeforeRender } from 'angular-three';
|
|
3
|
+
import { Mesh, BoxGeometry, MeshBasicMaterial } from 'three';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'app-scene-graph',
|
|
7
|
+
template: `
|
|
8
|
+
<ngt-mesh #mesh>
|
|
9
|
+
<ngt-box-geometry />
|
|
10
|
+
<ngt-mesh-basic-material color="hotpink" />
|
|
11
|
+
</ngt-mesh>
|
|
12
|
+
`,
|
|
13
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
14
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15
|
+
})
|
|
16
|
+
export class SceneGraph {
|
|
17
|
+
private meshRef = viewChild.required<ElementRef<Mesh>>('mesh');
|
|
18
|
+
|
|
19
|
+
constructor() {
|
|
20
|
+
extend({ Mesh, BoxGeometry, MeshBasicMaterial });
|
|
21
|
+
|
|
22
|
+
injectBeforeRender(({ delta }) => {
|
|
23
|
+
const mesh = this.meshRef().nativeElement;
|
|
24
|
+
mesh.rotation.x += delta;
|
|
25
|
+
mesh.rotation.y += delta;
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
export interface InitGeneratorSchema {
|
|
3
|
+
sceneGraph: 'append' | 'replace' | 'generate-only' | 'none';
|
|
4
|
+
}
|
|
5
|
+
export declare function initGenerator(tree: Tree, options: InitGeneratorSchema): Promise<() => void>;
|
|
6
|
+
export default initGenerator;
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initGenerator = initGenerator;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const enquirer_1 = require("enquirer");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const ts_morph_1 = require("ts-morph");
|
|
8
|
+
const utils_1 = require("../../utils");
|
|
9
|
+
const versions_1 = require("../../versions");
|
|
10
|
+
const utils_2 = require("./utils");
|
|
11
|
+
// TODO: (chau) add tests when there are better testing strategy for prompt
|
|
12
|
+
async function initGenerator(tree, options) {
|
|
13
|
+
devkit_1.logger.log('[NGT] Initializing Angular Three...');
|
|
14
|
+
const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
|
|
15
|
+
let version = packageJson['dependencies']?.['angular-three'] || packageJson['devDependencies']?.['angular-three'];
|
|
16
|
+
if (version) {
|
|
17
|
+
devkit_1.logger.info(`[NGT] Angular Three is already installed: ${version}.`);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, { 'angular-three': version, three: versions_1.THREE_VERSION, ngxtension: versions_1.NGXTENSION_VERSION }, { '@types/three': versions_1.THREE_TYPE_VERSION });
|
|
21
|
+
devkit_1.logger.info('[NGT] Turning on skipLibCheck...');
|
|
22
|
+
const baseTsConfigPath = tree.exists('tsconfig.base.json') ? 'tsconfig.base.json' : 'tsconfig.json';
|
|
23
|
+
(0, devkit_1.updateJson)(tree, baseTsConfigPath, (json) => {
|
|
24
|
+
if (!('skipLibCheck' in json.compilerOptions) || json.compilerOptions?.skipLibCheck === false) {
|
|
25
|
+
json.compilerOptions.skipLibCheck = true;
|
|
26
|
+
}
|
|
27
|
+
return json;
|
|
28
|
+
});
|
|
29
|
+
(0, utils_1.addMetadataJson)(tree, 'angular-three/metadata.json');
|
|
30
|
+
const tsProject = new ts_morph_1.Project({
|
|
31
|
+
useInMemoryFileSystem: true,
|
|
32
|
+
skipAddingFilesFromTsConfig: true,
|
|
33
|
+
skipLoadingLibFiles: true,
|
|
34
|
+
});
|
|
35
|
+
const projects = (0, devkit_1.getProjects)(tree);
|
|
36
|
+
const applications = {};
|
|
37
|
+
for (const project of projects.values()) {
|
|
38
|
+
if (!project.sourceRoot || project.projectType !== 'application')
|
|
39
|
+
continue;
|
|
40
|
+
applications[project.name] = project;
|
|
41
|
+
}
|
|
42
|
+
const { appName } = await (0, enquirer_1.prompt)({
|
|
43
|
+
type: 'select',
|
|
44
|
+
message: 'Which application to continue with the set up?',
|
|
45
|
+
name: 'appName',
|
|
46
|
+
choices: Object.keys(applications),
|
|
47
|
+
});
|
|
48
|
+
const app = applications[appName];
|
|
49
|
+
const mainTsPath = (0, node_path_1.join)(app.sourceRoot, 'main.ts');
|
|
50
|
+
if (!tree.exists(mainTsPath)) {
|
|
51
|
+
devkit_1.logger.info(`[NGT] Could not locate main.ts for ${app}`);
|
|
52
|
+
return await (0, utils_2.stopSetup)(tree, `Could not locate main.ts for ${app}`);
|
|
53
|
+
}
|
|
54
|
+
const mainTsContent = tree.read(mainTsPath, 'utf8');
|
|
55
|
+
if (!mainTsContent.includes('bootstrapApplication')) {
|
|
56
|
+
return await (0, utils_2.stopSetup)(tree, `Could not locate bootstrapApplication in ${mainTsPath}`);
|
|
57
|
+
}
|
|
58
|
+
const mainSourceFile = tsProject.createSourceFile(mainTsPath, mainTsContent, {
|
|
59
|
+
overwrite: true,
|
|
60
|
+
scriptKind: ts_morph_1.ScriptKind.TS,
|
|
61
|
+
});
|
|
62
|
+
const expressionStatement = mainSourceFile.getStatement((statement) => ts_morph_1.Node.isExpressionStatement(statement));
|
|
63
|
+
let maybeBootstrapCall = expressionStatement.getExpression();
|
|
64
|
+
let foundBootstrapCall = false;
|
|
65
|
+
while (!foundBootstrapCall) {
|
|
66
|
+
const expression = 'getExpression' in maybeBootstrapCall && typeof maybeBootstrapCall['getExpression'] === 'function'
|
|
67
|
+
? maybeBootstrapCall.getExpression()
|
|
68
|
+
: null;
|
|
69
|
+
if (!expression) {
|
|
70
|
+
return await (0, utils_2.stopSetup)(tree, `Could not locate bootstrapApplication in ${mainTsPath}`);
|
|
71
|
+
}
|
|
72
|
+
if (ts_morph_1.Node.isCallExpression(maybeBootstrapCall) &&
|
|
73
|
+
ts_morph_1.Node.isIdentifier(expression) &&
|
|
74
|
+
expression.getText() === 'bootstrapApplication') {
|
|
75
|
+
foundBootstrapCall = true;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
maybeBootstrapCall = expression;
|
|
79
|
+
}
|
|
80
|
+
const bootstrapCall = maybeBootstrapCall;
|
|
81
|
+
const [_, configArgument] = bootstrapCall.getArguments();
|
|
82
|
+
if (!configArgument) {
|
|
83
|
+
return await (0, utils_2.stopSetup)(tree, `Could not locate config argument for bootstrapApplication in ${mainTsPath}`);
|
|
84
|
+
}
|
|
85
|
+
// if configArgument is a external ApplicationConfig
|
|
86
|
+
if (ts_morph_1.Node.isIdentifier(configArgument)) {
|
|
87
|
+
if (configArgument.getText() !== 'appConfig') {
|
|
88
|
+
return await (0, utils_2.stopSetup)(tree, `Non-default config in ${mainTsPath} as second argument to bootstrapApplication is not appConfig. Please add "provideNgtRenderer()" to your bootstrapApplication configuration`);
|
|
89
|
+
}
|
|
90
|
+
// find the appConfig import
|
|
91
|
+
const appConfigImport = mainSourceFile.getImportDeclaration((importDeclaration) => {
|
|
92
|
+
return importDeclaration.getModuleSpecifierValue() === './app/app.config';
|
|
93
|
+
});
|
|
94
|
+
if (!appConfigImport) {
|
|
95
|
+
return await (0, utils_2.stopSetup)(tree, `Non-default config in ${mainTsPath} as external config import path is not ./app/app.config. Please add "provideNgtRenderer()" to your bootstrapApplication configuration`);
|
|
96
|
+
}
|
|
97
|
+
const appConfigPath = (0, node_path_1.join)(app.sourceRoot, 'app', 'app.config.ts');
|
|
98
|
+
if (!tree.exists(appConfigPath)) {
|
|
99
|
+
return await (0, utils_2.stopSetup)(tree, `Could not locate app.config.ts for ${app}`);
|
|
100
|
+
}
|
|
101
|
+
const appConfigContent = tree.read(appConfigPath, 'utf8');
|
|
102
|
+
const appConfigSourceFile = tsProject.createSourceFile(appConfigPath, appConfigContent, {
|
|
103
|
+
overwrite: true,
|
|
104
|
+
scriptKind: ts_morph_1.ScriptKind.TS,
|
|
105
|
+
});
|
|
106
|
+
const appConfigVariable = appConfigSourceFile.getVariableDeclaration('appConfig');
|
|
107
|
+
if (!appConfigVariable) {
|
|
108
|
+
return await (0, utils_2.stopSetup)(tree, `Could not locate appConfig variable in ${appConfigPath}`);
|
|
109
|
+
}
|
|
110
|
+
const configObject = appConfigVariable.getInitializer();
|
|
111
|
+
if (!configObject || !ts_morph_1.Node.isObjectLiteralExpression(configObject)) {
|
|
112
|
+
return await (0, utils_2.stopSetup)(tree, `Could not locate appConfig object in ${appConfigPath}`);
|
|
113
|
+
}
|
|
114
|
+
const endSetup = await (0, utils_2.handleAppConfig)(tree, configObject, appConfigSourceFile);
|
|
115
|
+
if (endSetup) {
|
|
116
|
+
return await endSetup();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (ts_morph_1.Node.isObjectLiteralExpression(configArgument)) {
|
|
120
|
+
const endSetup = await (0, utils_2.handleAppConfig)(tree, configArgument, mainSourceFile);
|
|
121
|
+
if (endSetup) {
|
|
122
|
+
return await endSetup();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (options.sceneGraph === 'none') {
|
|
126
|
+
return await (0, utils_2.finishSetup)(tree);
|
|
127
|
+
}
|
|
128
|
+
const { path: sceneGraphPath } = await (0, enquirer_1.prompt)({
|
|
129
|
+
type: 'input',
|
|
130
|
+
name: 'path',
|
|
131
|
+
message: `Where to generate the SceneGraph component (from ${app.sourceRoot}) ?`,
|
|
132
|
+
result(value) {
|
|
133
|
+
if (value.endsWith('.ts')) {
|
|
134
|
+
value = value.slice(0, -3);
|
|
135
|
+
}
|
|
136
|
+
return (0, node_path_1.join)(app.sourceRoot, value);
|
|
137
|
+
},
|
|
138
|
+
validate(value) {
|
|
139
|
+
if (tree.exists(value + '.ts')) {
|
|
140
|
+
return `${value}.ts already exists.`;
|
|
141
|
+
}
|
|
142
|
+
return true;
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
(0, devkit_1.generateFiles)(tree, (0, node_path_1.join)(__dirname, 'files'), sceneGraphPath, { tmpl: '' });
|
|
146
|
+
if (options.sceneGraph === 'generate-only') {
|
|
147
|
+
return await (0, utils_2.finishSetup)(tree);
|
|
148
|
+
}
|
|
149
|
+
const { componentPath } = await (0, enquirer_1.prompt)({
|
|
150
|
+
type: 'input',
|
|
151
|
+
message: `Enter the path to the component (from ${app.sourceRoot})`,
|
|
152
|
+
name: 'componentPath',
|
|
153
|
+
validate(value) {
|
|
154
|
+
if (!value.endsWith('.ts') || !tree.exists(value)) {
|
|
155
|
+
return `[NGT] Please use the path to the component TS file.`;
|
|
156
|
+
}
|
|
157
|
+
return true;
|
|
158
|
+
},
|
|
159
|
+
result(value) {
|
|
160
|
+
return (0, node_path_1.join)(app.sourceRoot, value);
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
const componentContent = tree.read(componentPath, 'utf-8');
|
|
164
|
+
const componentSourceFile = tsProject.createSourceFile(componentPath, componentContent, {
|
|
165
|
+
overwrite: true,
|
|
166
|
+
scriptKind: ts_morph_1.ScriptKind.TS,
|
|
167
|
+
});
|
|
168
|
+
const decorators = componentSourceFile.getChildrenOfKind(ts_morph_1.SyntaxKind.Decorator);
|
|
169
|
+
const componentDecorators = decorators.filter((decorator) => decorator.getName() === 'Component');
|
|
170
|
+
if (componentDecorators.length !== 1) {
|
|
171
|
+
return await (0, utils_2.stopSetup)(tree, `There are no Component or more than one Component in ${componentPath}`);
|
|
172
|
+
}
|
|
173
|
+
// standalone is true or not exist
|
|
174
|
+
const isStandalone = componentContent.includes(`standalone: true`) || !componentContent.includes('standalone');
|
|
175
|
+
if (!isStandalone) {
|
|
176
|
+
return await (0, utils_2.stopSetup)(tree, `Component at ${componentPath} must be a standalone component.`);
|
|
177
|
+
}
|
|
178
|
+
const componentDecorator = componentDecorators[0];
|
|
179
|
+
const componentMetadata = componentDecorator.getArguments()[0];
|
|
180
|
+
const templateUrlMetadata = componentMetadata.getFirstChild((node) => {
|
|
181
|
+
return ts_morph_1.Node.isPropertyAssignment(node) && node.getName() === 'templateUrl';
|
|
182
|
+
});
|
|
183
|
+
if (templateUrlMetadata) {
|
|
184
|
+
const templateUrl = templateUrlMetadata.getInitializer().getText();
|
|
185
|
+
const templateUrlPath = (0, node_path_1.join)(componentPath, templateUrl);
|
|
186
|
+
const templateContent = tree.read(templateUrlPath, 'utf-8');
|
|
187
|
+
tree.write(templateUrlPath, options.sceneGraph === 'replace'
|
|
188
|
+
? `<ngt-canvas>
|
|
189
|
+
<app-scene-graph *canvasContent />
|
|
190
|
+
</ngt-canvas>`
|
|
191
|
+
: `${templateContent}
|
|
192
|
+
<ngt-canvas>
|
|
193
|
+
<app-scene-graph *canvasContent />
|
|
194
|
+
</ngt-canvas>`);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
const templateMetadata = componentMetadata.getFirstChild((node) => {
|
|
198
|
+
return ts_morph_1.Node.isPropertyAssignment(node) && node.getName() === 'template';
|
|
199
|
+
});
|
|
200
|
+
templateMetadata.setInitializer((writer) => {
|
|
201
|
+
if (options.sceneGraph === 'append') {
|
|
202
|
+
writer.write(templateMetadata.getInitializer().getText());
|
|
203
|
+
writer.newLineIfLastNot();
|
|
204
|
+
}
|
|
205
|
+
writer.writeLine('<ngt-canvas>');
|
|
206
|
+
writer.withIndentationLevel(2, () => {
|
|
207
|
+
writer.writeLine('<app-scene-graph *canvasContent />');
|
|
208
|
+
});
|
|
209
|
+
writer.writeLine(`</ngt-canvas>`);
|
|
210
|
+
writer.newLineIfLastNot();
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
// update import statements
|
|
214
|
+
componentSourceFile.addImportDeclarations([
|
|
215
|
+
{ moduleSpecifier: 'angular-three/dom', namedImports: ['NgtCanvas'] },
|
|
216
|
+
{ moduleSpecifier: (0, node_path_1.relative)(componentPath, sceneGraphPath), namedImports: ['SceneGraph'] },
|
|
217
|
+
]);
|
|
218
|
+
// update imports array
|
|
219
|
+
const importsMetadata = componentMetadata.getFirstChild((node) => {
|
|
220
|
+
return ts_morph_1.Node.isPropertyAssignment(node) && node.getName() === 'imports';
|
|
221
|
+
});
|
|
222
|
+
if (importsMetadata) {
|
|
223
|
+
const currentImportsExpression = importsMetadata.getInitializer();
|
|
224
|
+
currentImportsExpression.addElements(['NgtCanvas', 'SceneGraph']);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
componentMetadata.addPropertyAssignment({
|
|
228
|
+
name: 'imports',
|
|
229
|
+
initializer: `['NgtCanvas', 'SceneGraph']`,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
await componentSourceFile.save();
|
|
233
|
+
return await (0, utils_2.finishSetup)(tree);
|
|
234
|
+
}
|
|
235
|
+
exports.default = initGenerator;
|
|
236
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/init/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cli": "nx",
|
|
3
|
+
"$id": "Init",
|
|
4
|
+
"title": "Init Angular Three",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"sceneGraph": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Generate a getting started SceneGraph component",
|
|
10
|
+
"enum": ["append", "replace", "generate-only", "none"],
|
|
11
|
+
"default": "generate-only",
|
|
12
|
+
"alias": "sg",
|
|
13
|
+
"x-prompt": {
|
|
14
|
+
"message": "How would you like to generate a SceneGraph component?",
|
|
15
|
+
"type": "list",
|
|
16
|
+
"items": [
|
|
17
|
+
{
|
|
18
|
+
"value": "append",
|
|
19
|
+
"label": "Append to parent component template"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"value": "replace",
|
|
23
|
+
"label": "Replace parent component template"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"value": "generate-only",
|
|
27
|
+
"label": "Generate a SceneGraph component but do not write to template"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"none": "none",
|
|
31
|
+
"label": "Do not generate a SceneGraph component"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import { ObjectLiteralExpression, SourceFile } from 'ts-morph';
|
|
3
|
+
export declare function stopSetup(tree: Tree, message: string): Promise<() => void>;
|
|
4
|
+
export declare function finishSetup(tree: Tree): Promise<() => void>;
|
|
5
|
+
export declare function handleAppConfig(tree: Tree, config: ObjectLiteralExpression, sf: SourceFile): Promise<void | (() => Promise<() => void>)>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stopSetup = stopSetup;
|
|
4
|
+
exports.finishSetup = finishSetup;
|
|
5
|
+
exports.handleAppConfig = handleAppConfig;
|
|
6
|
+
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const ts_morph_1 = require("ts-morph");
|
|
8
|
+
async function stopSetup(tree, message) {
|
|
9
|
+
devkit_1.logger.info(`[NGT] ${message}. Stopping setup`);
|
|
10
|
+
return await finishSetup(tree);
|
|
11
|
+
}
|
|
12
|
+
async function finishSetup(tree) {
|
|
13
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
14
|
+
return () => {
|
|
15
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
async function handleAppConfig(tree, config, sf) {
|
|
19
|
+
// add angular-three/dom import
|
|
20
|
+
sf.addImportDeclaration({ moduleSpecifier: 'angular-three/dom', namedImports: ['provideNgtRenderer'] });
|
|
21
|
+
const providersProperty = config.getProperty((property) => {
|
|
22
|
+
return ts_morph_1.Node.isPropertyAssignment(property) && property.getName() === 'providers';
|
|
23
|
+
});
|
|
24
|
+
if (!providersProperty) {
|
|
25
|
+
config.addPropertyAssignment({
|
|
26
|
+
name: 'providers',
|
|
27
|
+
initializer: `[provideNgtRenderer()]`,
|
|
28
|
+
});
|
|
29
|
+
return await sf.save();
|
|
30
|
+
}
|
|
31
|
+
const providersArray = providersProperty.getInitializerIfKind(ts_morph_1.SyntaxKind.ArrayLiteralExpression);
|
|
32
|
+
if (!providersArray) {
|
|
33
|
+
return async () => await stopSetup(tree, `Could not locate providers array`);
|
|
34
|
+
}
|
|
35
|
+
providersArray.addElement('provideNgtRenderer()');
|
|
36
|
+
return await sf.save();
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/init/utils.ts"],"names":[],"mappings":";;AAGA,8BAGC;AAED,kCAKC;AAED,0CAyBC;AAxCD,uCAA4E;AAC5E,uCAAqG;AAE9F,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAAe;IAC1D,eAAM,CAAC,IAAI,CAAC,SAAS,OAAO,kBAAkB,CAAC,CAAC;IAChD,OAAO,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,IAAU;IAC3C,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACX,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,IAAU,EAAE,MAA+B,EAAE,EAAc;IAChG,+BAA+B;IAC/B,EAAE,CAAC,oBAAoB,CAAC,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAExG,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAkC,EAAE;QACzF,OAAO,eAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxB,MAAM,CAAC,qBAAqB,CAAC;YAC5B,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wBAAwB;SACrC,CAAC,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,cAAc,GAAI,iBAAwC,CAAC,oBAAoB,CACpF,qBAAU,CAAC,sBAAsB,CACjC,CAAC;IACF,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,OAAO,KAAK,IAAI,EAAE,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;IAC9E,CAAC;IAED,cAAc,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAClD,OAAO,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
package/src/index.d.ts
ADDED
|
File without changes
|
package/src/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/plugin/src/index.ts"],"names":[],"mappings":""}
|
package/src/utils.d.ts
ADDED
package/src/utils.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addMetadataJson = addMetadataJson;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
function addMetadataJson(tree, metadataJsonPath) {
|
|
6
|
+
if (!metadataJsonPath.includes('node_modules')) {
|
|
7
|
+
metadataJsonPath = `./node_modules/${metadataJsonPath}`;
|
|
8
|
+
}
|
|
9
|
+
// add metadata.json to vscode settings if exists
|
|
10
|
+
const vscodeSettingsPath = '.vscode/settings.json';
|
|
11
|
+
if (!tree.exists('.vscode')) {
|
|
12
|
+
return devkit_1.logger.info(`[NGT] .vscode directory not found.
|
|
13
|
+
If you are using VSCode, add "${metadataJsonPath}" to "html.customData" in ".vscode/settings.json"
|
|
14
|
+
to enable TypeScript type definitions for Angular Three elements.
|
|
15
|
+
`);
|
|
16
|
+
}
|
|
17
|
+
devkit_1.logger.info('[NGT] Enabling typings support for VSCode...');
|
|
18
|
+
if (!tree.exists(vscodeSettingsPath)) {
|
|
19
|
+
(0, devkit_1.writeJson)(tree, vscodeSettingsPath, {});
|
|
20
|
+
}
|
|
21
|
+
(0, devkit_1.updateJson)(tree, vscodeSettingsPath, (json) => {
|
|
22
|
+
if (json['html.customData'] &&
|
|
23
|
+
Array.isArray(json['html.customData']) &&
|
|
24
|
+
!json['html.customData'].includes(metadataJsonPath)) {
|
|
25
|
+
json['html.customData'].push(metadataJsonPath);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
json['html.customData'] = [metadataJsonPath];
|
|
29
|
+
}
|
|
30
|
+
return json;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=utils.js.map
|
package/src/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../libs/plugin/src/utils.ts"],"names":[],"mappings":";;AAEA,0CAoCC;AAtCD,uCAAsE;AAEtE,SAAgB,eAAe,CAAC,IAAU,EAAE,gBAAwB;IACnE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAChD,gBAAgB,GAAG,kBAAkB,gBAAgB,EAAE,CAAC;IACzD,CAAC;IAED,iDAAiD;IACjD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;IAEnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,eAAM,CAAC,IAAI,CACjB;gCAC6B,gBAAgB;;CAE/C,CACE,CAAC;IACH,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAE5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACtC,IAAA,kBAAS,EAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAA,mBAAU,EAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7C,IACC,IAAI,CAAC,iBAAiB,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAClD,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const ANGULAR_THREE_VERSION = "^4.0.0";
|
|
2
|
+
export declare const THREE_VERSION = "^0.173.0";
|
|
3
|
+
export declare const THREE_TYPE_VERSION = "^0.173.0";
|
|
4
|
+
export declare const NGXTENSION_VERSION = "^4.0.0";
|
|
5
|
+
export declare const PEER_DEPENDENCIES: {
|
|
6
|
+
'angular-three-soba': {
|
|
7
|
+
'three-stdlib': string;
|
|
8
|
+
'@pmndrs/vanilla': string;
|
|
9
|
+
'@monogrid/gainmap-js': string;
|
|
10
|
+
'camera-controls': string;
|
|
11
|
+
'hls.js': string;
|
|
12
|
+
maath: string;
|
|
13
|
+
meshline: string;
|
|
14
|
+
'stats-gl': string;
|
|
15
|
+
'three-custom-shader-material': string;
|
|
16
|
+
'three-mesh-bvh': string;
|
|
17
|
+
'troika-three-text': string;
|
|
18
|
+
};
|
|
19
|
+
'angular-three-rapier': {
|
|
20
|
+
'@dimforge/rapier3d-compat': string;
|
|
21
|
+
};
|
|
22
|
+
'angular-three-postprocessing': {
|
|
23
|
+
maath: string;
|
|
24
|
+
n8ao: string;
|
|
25
|
+
postprocessing: string;
|
|
26
|
+
};
|
|
27
|
+
'angular-three-cannon': {
|
|
28
|
+
'@pmndrs/cannon-worker-api': string;
|
|
29
|
+
'cannon-es': string;
|
|
30
|
+
'cannon-es-debugger': string;
|
|
31
|
+
};
|
|
32
|
+
};
|
package/src/versions.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PEER_DEPENDENCIES = exports.NGXTENSION_VERSION = exports.THREE_TYPE_VERSION = exports.THREE_VERSION = exports.ANGULAR_THREE_VERSION = void 0;
|
|
4
|
+
exports.ANGULAR_THREE_VERSION = '^4.0.0';
|
|
5
|
+
exports.THREE_VERSION = '^0.173.0';
|
|
6
|
+
exports.THREE_TYPE_VERSION = '^0.173.0';
|
|
7
|
+
exports.NGXTENSION_VERSION = '^4.0.0';
|
|
8
|
+
exports.PEER_DEPENDENCIES = {
|
|
9
|
+
'angular-three-soba': {
|
|
10
|
+
'three-stdlib': '^2.0.0',
|
|
11
|
+
'@pmndrs/vanilla': '^1.20.0',
|
|
12
|
+
'@monogrid/gainmap-js': '^3.0.0',
|
|
13
|
+
'camera-controls': '^2.8.0',
|
|
14
|
+
'hls.js': '^1.5.0',
|
|
15
|
+
maath: '~0.10.0',
|
|
16
|
+
meshline: '^3.1.0',
|
|
17
|
+
'stats-gl': '^2.0.0',
|
|
18
|
+
'three-custom-shader-material': '~6.3.0',
|
|
19
|
+
'three-mesh-bvh': '~0.9.0',
|
|
20
|
+
'troika-three-text': '~0.52.0',
|
|
21
|
+
},
|
|
22
|
+
'angular-three-rapier': {
|
|
23
|
+
'@dimforge/rapier3d-compat': '~0.14.0',
|
|
24
|
+
},
|
|
25
|
+
'angular-three-postprocessing': {
|
|
26
|
+
maath: '~0.10.0',
|
|
27
|
+
n8ao: '~1.9.0',
|
|
28
|
+
postprocessing: '^6.0.0',
|
|
29
|
+
},
|
|
30
|
+
'angular-three-cannon': {
|
|
31
|
+
'@pmndrs/cannon-worker-api': '^2.0.0',
|
|
32
|
+
'cannon-es': '^0.20.0',
|
|
33
|
+
'cannon-es-debugger': '^1.0.0',
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../libs/plugin/src/versions.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACjC,QAAA,aAAa,GAAG,UAAU,CAAC;AAC3B,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAChC,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAE9B,QAAA,iBAAiB,GAAG;IAChC,oBAAoB,EAAE;QACrB,cAAc,EAAE,QAAQ;QACxB,iBAAiB,EAAE,SAAS;QAC5B,sBAAsB,EAAE,QAAQ;QAChC,iBAAiB,EAAE,QAAQ;QAC3B,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,8BAA8B,EAAE,QAAQ;QACxC,gBAAgB,EAAE,QAAQ;QAC1B,mBAAmB,EAAE,SAAS;KAC9B;IACD,sBAAsB,EAAE;QACvB,2BAA2B,EAAE,SAAS;KACtC;IACD,8BAA8B,EAAE;QAC/B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,QAAQ;KACxB;IACD,sBAAsB,EAAE;QACvB,2BAA2B,EAAE,QAAQ;QACrC,WAAW,EAAE,SAAS;QACtB,oBAAoB,EAAE,QAAQ;KAC9B;CACD,CAAC"}
|