@analogjs/vite-plugin-angular 0.2.30-beta.2 → 0.2.30-beta.3
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/package.json +1 -1
- package/src/lib/authoring/ng.js +36 -33
- package/src/lib/authoring/ng.js.map +1 -1
package/package.json
CHANGED
package/src/lib/authoring/ng.js
CHANGED
|
@@ -6,6 +6,7 @@ const SCRIPT_TAG_REGEX = /<script lang="ts">([\s\S]*?)<\/script>/i;
|
|
|
6
6
|
const TEMPLATE_TAG_REGEX = /<template>([\s\S]*?)<\/template>/i;
|
|
7
7
|
const STYLE_TAG_REGEX = /<style>([\s\S]*?)<\/style>/i;
|
|
8
8
|
const ON_INIT = 'onInit';
|
|
9
|
+
const ON_DESTROY = 'onDestroy';
|
|
9
10
|
function processNgFile(fileName, content, isProd = false) {
|
|
10
11
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
11
12
|
const { names } = require('@nx/devkit');
|
|
@@ -20,18 +21,24 @@ function processNgFile(fileName, content, isProd = false) {
|
|
|
20
21
|
TEMPLATE_TAG_REGEX.exec(content)?.pop()?.trim() || '',
|
|
21
22
|
STYLE_TAG_REGEX.exec(content)?.pop()?.trim() || '',
|
|
22
23
|
];
|
|
24
|
+
if (!scriptContent && !templateContent) {
|
|
25
|
+
throw new Error(`[Analog] Either <script> or <template> must exist in ${fileName}`);
|
|
26
|
+
}
|
|
27
|
+
const ngType = templateContent ? 'Component' : 'Directive';
|
|
23
28
|
if (styleContent) {
|
|
24
29
|
templateContent = `<style>${styleContent.replace(/\n/g, '')}</style>
|
|
25
30
|
${templateContent}`;
|
|
26
31
|
}
|
|
27
32
|
const source = `
|
|
28
|
-
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
33
|
+
import { ${ngType}${ngType === 'Component' ? ', ChangeDetectionStrategy' : ''} } from '@angular/core';
|
|
29
34
|
|
|
30
|
-
|
|
35
|
+
@${ngType}({
|
|
31
36
|
standalone: true,
|
|
32
37
|
selector: '${componentFileName},${className},${constantName}',
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
${ngType === 'Component'
|
|
39
|
+
? `changeDetection: ChangeDetectionStrategy.OnPush,
|
|
40
|
+
template: \`${templateContent}\``
|
|
41
|
+
: ''}
|
|
35
42
|
})
|
|
36
43
|
export default class AnalogNgEntity {
|
|
37
44
|
constructor() {}
|
|
@@ -41,12 +48,12 @@ export default class AnalogNgEntity {
|
|
|
41
48
|
const project = new ts_morph_1.Project({ useInMemoryFileSystem: true });
|
|
42
49
|
project.createSourceFile(fileName, scriptContent);
|
|
43
50
|
project.createSourceFile(`${fileName}.virtual.ts`, source);
|
|
44
|
-
return processNgScript(fileName, project, isProd);
|
|
51
|
+
return processNgScript(fileName, project, ngType, isProd);
|
|
45
52
|
}
|
|
46
53
|
return source;
|
|
47
54
|
}
|
|
48
55
|
exports.processNgFile = processNgFile;
|
|
49
|
-
function processNgScript(fileName, project, isProd) {
|
|
56
|
+
function processNgScript(fileName, project, ngType, isProd) {
|
|
50
57
|
const ngSourceFile = project.getSourceFile(fileName);
|
|
51
58
|
const targetSourceFile = project.getSourceFile(`${fileName}.virtual.ts`);
|
|
52
59
|
if (!ngSourceFile || !targetSourceFile) {
|
|
@@ -56,11 +63,11 @@ function processNgScript(fileName, project, isProd) {
|
|
|
56
63
|
if (!targetClass) {
|
|
57
64
|
throw new Error(`[Analog] Missing class ${fileName}`);
|
|
58
65
|
}
|
|
59
|
-
const targetMetadata = targetClass.getDecorator(
|
|
66
|
+
const targetMetadata = targetClass.getDecorator(ngType);
|
|
60
67
|
if (!targetMetadata) {
|
|
61
68
|
throw new Error(`[Analog] Missing metadata ${fileName}`);
|
|
62
69
|
}
|
|
63
|
-
|
|
70
|
+
const targetMetadataArguments = targetMetadata.getArguments()[0];
|
|
64
71
|
if (!ts_morph_1.Node.isObjectLiteralExpression(targetMetadataArguments)) {
|
|
65
72
|
throw new Error(`[Analog] invalid metadata arguments ${fileName}`);
|
|
66
73
|
}
|
|
@@ -69,7 +76,6 @@ function processNgScript(fileName, project, isProd) {
|
|
|
69
76
|
if (!ts_morph_1.Node.isBlock(targetConstructorBody)) {
|
|
70
77
|
throw new Error(`[Analog] invalid constructor body ${fileName}`);
|
|
71
78
|
}
|
|
72
|
-
let ngType = 'Component';
|
|
73
79
|
const declarations = [];
|
|
74
80
|
ngSourceFile.forEachChild((node) => {
|
|
75
81
|
// for ImportDeclaration (e.g: import ... from ...)
|
|
@@ -119,31 +125,14 @@ function processNgScript(fileName, project, isProd) {
|
|
|
119
125
|
if (ts_morph_1.Node.isCallExpression(expression)) {
|
|
120
126
|
// hooks, effects, basically Function calls
|
|
121
127
|
const functionName = expression.getExpression().getText();
|
|
122
|
-
if (functionName
|
|
123
|
-
functionName.startsWith('define')) {
|
|
124
|
-
ngType = functionName
|
|
125
|
-
.replace('define', '')
|
|
126
|
-
.replace('Metadata', '');
|
|
128
|
+
if (functionName === 'defineMetadata') {
|
|
127
129
|
const metadata = expression.getArguments()[0];
|
|
128
|
-
|
|
129
|
-
if (ngType !== 'Component') {
|
|
130
|
-
targetMetadata.setExpression(ngType);
|
|
131
|
-
targetMetadata.addArgument(`{standalone: true}`);
|
|
132
|
-
targetMetadataArguments =
|
|
133
|
-
targetMetadata.getArguments()[0];
|
|
134
|
-
// add type import
|
|
135
|
-
targetSourceFile.addImportDeclaration({
|
|
136
|
-
moduleSpecifier: '@angular/core',
|
|
137
|
-
namedImports: [{ name: ngType }],
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
// process the metadata
|
|
141
|
-
processMetadata(metadata, targetMetadataArguments);
|
|
130
|
+
processMetadata(metadata, targetMetadataArguments, targetClass);
|
|
142
131
|
}
|
|
143
|
-
else if (functionName === ON_INIT) {
|
|
132
|
+
else if (functionName === ON_INIT || functionName === ON_DESTROY) {
|
|
144
133
|
const initFunction = expression.getArguments()[0];
|
|
145
134
|
if (ts_morph_1.Node.isArrowFunction(initFunction)) {
|
|
146
|
-
addPropertyToClass(targetClass, targetConstructor,
|
|
135
|
+
addPropertyToClass(targetClass, targetConstructor, functionName, initFunction, (propertyName, propertyInitializer) => {
|
|
147
136
|
targetConstructor.addFunction({
|
|
148
137
|
name: propertyName,
|
|
149
138
|
statements: propertyInitializer
|
|
@@ -151,7 +140,7 @@ function processNgScript(fileName, project, isProd) {
|
|
|
151
140
|
.map((statement) => statement.getText()),
|
|
152
141
|
});
|
|
153
142
|
targetClass.addMethod({
|
|
154
|
-
name: 'ngOnInit',
|
|
143
|
+
name: functionName === ON_INIT ? 'ngOnInit' : 'ngOnDestroy',
|
|
155
144
|
statements: `this.${propertyName}();`,
|
|
156
145
|
});
|
|
157
146
|
});
|
|
@@ -184,7 +173,7 @@ function processNgScript(fileName, project, isProd) {
|
|
|
184
173
|
}
|
|
185
174
|
return targetSourceFile.getText();
|
|
186
175
|
}
|
|
187
|
-
function processMetadata(metadataObject, targetMetadataArguments) {
|
|
176
|
+
function processMetadata(metadataObject, targetMetadataArguments, targetClass) {
|
|
188
177
|
metadataObject.getPropertiesWithComments().forEach((property) => {
|
|
189
178
|
if (ts_morph_1.Node.isPropertyAssignment(property)) {
|
|
190
179
|
const propertyName = property.getName();
|
|
@@ -199,7 +188,21 @@ function processMetadata(metadataObject, targetMetadataArguments) {
|
|
|
199
188
|
initializer: propertyInitializer.getText(),
|
|
200
189
|
});
|
|
201
190
|
}
|
|
202
|
-
else if (propertyName) {
|
|
191
|
+
else if (propertyName === 'exposes') {
|
|
192
|
+
// for exposes we're going to add the property to the class so they are accessible on the template
|
|
193
|
+
// parse the initializer to get the item in the exposes array
|
|
194
|
+
const exposes = propertyInitializer
|
|
195
|
+
.getText()
|
|
196
|
+
.replace(/[[\]]/g, '')
|
|
197
|
+
.split(',')
|
|
198
|
+
.map((item) => ({
|
|
199
|
+
name: item.trim(),
|
|
200
|
+
initializer: item.trim(),
|
|
201
|
+
scope: ts_morph_1.Scope.Protected,
|
|
202
|
+
}));
|
|
203
|
+
targetClass.addProperties(exposes);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
203
206
|
targetMetadataArguments.addPropertyAssignment({
|
|
204
207
|
name: propertyName,
|
|
205
208
|
initializer: propertyInitializer.getText(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/authoring/ng.ts"],"names":[],"mappings":";;;AAAA,uCAUkB;AAElB,MAAM,gBAAgB,GAAG,yCAAyC,CAAC;AACnE,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AAC/D,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAEtD,MAAM,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ng.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/authoring/ng.ts"],"names":[],"mappings":"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"}
|