@analogjs/vite-plugin-angular 2.0.0-alpha.9 → 2.0.0-beta.2
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 +9 -5
- package/src/index.d.ts +0 -2
- package/src/index.js +0 -2
- package/src/index.js.map +1 -1
- package/src/lib/angular-pending-tasks.plugin.js +2 -1
- package/src/lib/angular-pending-tasks.plugin.js.map +1 -1
- package/src/lib/angular-storybook-plugin.d.ts +2 -2
- package/src/lib/angular-storybook-plugin.js +11 -4
- package/src/lib/angular-storybook-plugin.js.map +1 -1
- package/src/lib/angular-vite-plugin.d.ts +13 -23
- package/src/lib/angular-vite-plugin.js +190 -214
- package/src/lib/angular-vite-plugin.js.map +1 -1
- package/src/lib/component-resolvers.js +1 -1
- package/src/lib/component-resolvers.js.map +1 -1
- package/src/lib/host.d.ts +0 -5
- package/src/lib/host.js +5 -80
- package/src/lib/host.js.map +1 -1
- package/src/lib/live-reload-plugin.d.ts +6 -0
- package/src/lib/live-reload-plugin.js +63 -0
- package/src/lib/live-reload-plugin.js.map +1 -0
- package/src/lib/models.d.ts +11 -0
- package/src/lib/models.js +2 -0
- package/src/lib/models.js.map +1 -0
- package/src/lib/nx-folder-plugin.d.ts +7 -0
- package/src/lib/nx-folder-plugin.js +18 -0
- package/src/lib/nx-folder-plugin.js.map +1 -0
- package/src/lib/plugins/file-replacements.plugin.d.ts +12 -0
- package/src/lib/plugins/file-replacements.plugin.js +64 -0
- package/src/lib/plugins/file-replacements.plugin.js.map +1 -0
- package/src/lib/tools/README.md +3 -0
- package/src/lib/tools/builders.json +15 -0
- package/src/lib/tools/package.json +8 -0
- package/src/lib/tools/src/builders/vite/schema.d.ts +6 -0
- package/src/lib/tools/src/builders/vite/schema.json +39 -0
- package/src/lib/tools/src/builders/vite/vite-build.impl.d.ts +2 -0
- package/src/lib/tools/src/builders/vite/vite-build.impl.js +38 -0
- package/src/lib/tools/src/builders/vite/vite-build.impl.js.map +1 -0
- package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.d.ts +2 -0
- package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js +62 -0
- package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js.map +1 -0
- package/src/lib/tools/src/builders/vite-dev-server/schema.d.ts +5 -0
- package/src/lib/tools/src/builders/vite-dev-server/schema.json +25 -0
- package/src/lib/tools/src/index.d.ts +0 -0
- package/src/lib/tools/src/index.js +1 -0
- package/src/lib/tools/src/index.js.map +1 -0
- package/src/lib/utils/devkit.js +3 -11
- package/src/lib/utils/devkit.js.map +1 -1
- package/src/lib/utils/hmr-candidates.js +40 -12
- package/src/lib/utils/hmr-candidates.js.map +1 -1
- package/esbuild.d.ts +0 -3
- package/esbuild.js +0 -31
- package/esbuild.js.map +0 -1
- package/src/lib/authoring/analog.d.ts +0 -1
- package/src/lib/authoring/analog.js +0 -550
- package/src/lib/authoring/analog.js.map +0 -1
- package/src/lib/authoring/constants.d.ts +0 -26
- package/src/lib/authoring/constants.js +0 -47
- package/src/lib/authoring/constants.js.map +0 -1
- package/src/lib/authoring/frontmatter.d.ts +0 -2
- package/src/lib/authoring/frontmatter.js +0 -26
- package/src/lib/authoring/frontmatter.js.map +0 -1
- package/src/lib/authoring/markdown-transform.d.ts +0 -4
- package/src/lib/authoring/markdown-transform.js +0 -19
- package/src/lib/authoring/markdown-transform.js.map +0 -1
- package/src/lib/authoring/marked-setup.service.d.ts +0 -23
- package/src/lib/authoring/marked-setup.service.js +0 -118
- package/src/lib/authoring/marked-setup.service.js.map +0 -1
|
@@ -1,550 +0,0 @@
|
|
|
1
|
-
import { Node, Project, Scope, SyntaxKind, VariableDeclarationKind, } from 'ts-morph';
|
|
2
|
-
import { DEFINE_METADATA, HOOKS_MAP, INVALID_METADATA_PROPERTIES, ON_DESTROY, ON_INIT, OUTPUT_FROM_OBSERVABLE, REQUIRED_SIGNALS_MAP, ROUTE_META, SCRIPT_TAG_REGEX, SIGNALS_MAP, STYLE_TAG_REGEX, TEMPLATE_TAG_REGEX, } from './constants.js';
|
|
3
|
-
export function compileAnalogFile(filePath, fileContent, shouldFormat = false) {
|
|
4
|
-
const componentName = filePath.split('/').pop()?.split('.')[0];
|
|
5
|
-
if (!componentName) {
|
|
6
|
-
throw new Error(`[Analog] Missing component name ${filePath}`);
|
|
7
|
-
}
|
|
8
|
-
const [fileName, className] = [
|
|
9
|
-
toFileName(componentName),
|
|
10
|
-
toClassName(componentName),
|
|
11
|
-
];
|
|
12
|
-
const isMarkdown = fileContent.includes('lang="md"');
|
|
13
|
-
const [scriptContent, styleContent] = [
|
|
14
|
-
SCRIPT_TAG_REGEX.exec(fileContent)?.pop()?.trim() || '',
|
|
15
|
-
STYLE_TAG_REGEX.exec(fileContent)?.pop()?.trim() || '',
|
|
16
|
-
];
|
|
17
|
-
const templateContentMatches = TEMPLATE_TAG_REGEX.exec(fileContent) ?? [];
|
|
18
|
-
const templateAttributeString = templateContentMatches[2]?.trim().replace(/\n/g, '') ?? '';
|
|
19
|
-
let templateContent = '';
|
|
20
|
-
if (!isMarkdown) {
|
|
21
|
-
templateContent = templateContentMatches[3]?.trim() || '';
|
|
22
|
-
}
|
|
23
|
-
let ngType;
|
|
24
|
-
if (templateContent || isMarkdown) {
|
|
25
|
-
ngType = 'Component';
|
|
26
|
-
}
|
|
27
|
-
else if (scriptContent && !templateContent) {
|
|
28
|
-
ngType = scriptContent.includes('templateUrl') ? 'Component' : 'Directive';
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
throw new Error(`[Analog] Cannot determine entity type ${filePath}`);
|
|
32
|
-
}
|
|
33
|
-
const entityName = `${className}Analog${ngType}`;
|
|
34
|
-
const componentMetadata = (() => {
|
|
35
|
-
if (ngType === 'Component') {
|
|
36
|
-
const items = ['changeDetection: ChangeDetectionStrategy.OnPush'];
|
|
37
|
-
if (isMarkdown) {
|
|
38
|
-
items.push(`templateUrl: \`virtual-analog:${filePath.replace('.ts', '')}\``);
|
|
39
|
-
}
|
|
40
|
-
else if (templateContent) {
|
|
41
|
-
items.push(`template: \`${templateContent}\``);
|
|
42
|
-
}
|
|
43
|
-
if (styleContent) {
|
|
44
|
-
items.push(`styles: \`${styleContent.replaceAll('\n', '')}\``);
|
|
45
|
-
}
|
|
46
|
-
if (templateAttributeString) {
|
|
47
|
-
const attributes = parseAttributes(templateAttributeString);
|
|
48
|
-
items.push(`host: ${JSON.stringify(attributes)}`);
|
|
49
|
-
}
|
|
50
|
-
return items.join(',\n ');
|
|
51
|
-
}
|
|
52
|
-
return '';
|
|
53
|
-
})();
|
|
54
|
-
const source = `
|
|
55
|
-
import { ${ngType}${ngType === 'Component' ? ', ChangeDetectionStrategy' : ''} } from '@angular/core';
|
|
56
|
-
|
|
57
|
-
@${ngType}({
|
|
58
|
-
standalone: true,
|
|
59
|
-
selector: '${fileName},${className}',
|
|
60
|
-
${componentMetadata}
|
|
61
|
-
})
|
|
62
|
-
export default class ${entityName} {
|
|
63
|
-
constructor() {}
|
|
64
|
-
}`;
|
|
65
|
-
// the `.analog` file
|
|
66
|
-
if (scriptContent) {
|
|
67
|
-
const project = new Project({ useInMemoryFileSystem: true });
|
|
68
|
-
return processAnalogScript(filePath, project.createSourceFile(filePath, scriptContent), project.createSourceFile(`${filePath}.virtual.ts`, source), ngType, entityName, shouldFormat);
|
|
69
|
-
}
|
|
70
|
-
return source;
|
|
71
|
-
}
|
|
72
|
-
function processAnalogScript(fileName, ngSourceFile, targetSourceFile, ngType, entityName, isProd) {
|
|
73
|
-
const targetClass = targetSourceFile.getClass((classDeclaration) => classDeclaration.getName() === entityName);
|
|
74
|
-
if (!targetClass) {
|
|
75
|
-
throw new Error(`[Analog] Missing class ${fileName}`);
|
|
76
|
-
}
|
|
77
|
-
const targetMetadata = targetClass.getDecorator(ngType);
|
|
78
|
-
if (!targetMetadata) {
|
|
79
|
-
throw new Error(`[Analog] Missing metadata ${fileName}`);
|
|
80
|
-
}
|
|
81
|
-
const targetMetadataArguments = targetMetadata.getArguments()[0];
|
|
82
|
-
if (!Node.isObjectLiteralExpression(targetMetadataArguments)) {
|
|
83
|
-
throw new Error(`[Analog] invalid metadata arguments ${fileName}`);
|
|
84
|
-
}
|
|
85
|
-
const targetConstructor = targetClass.getConstructors()[0], targetConstructorBody = targetConstructor.getBody();
|
|
86
|
-
if (!Node.isBlock(targetConstructorBody)) {
|
|
87
|
-
throw new Error(`[Analog] invalid constructor body ${fileName}`);
|
|
88
|
-
}
|
|
89
|
-
const sourceSyntaxList = ngSourceFile.getChildren()[0]; // SyntaxList
|
|
90
|
-
if (!Node.isSyntaxList(sourceSyntaxList)) {
|
|
91
|
-
throw new Error(`[Analog] invalid source syntax list ${fileName}`);
|
|
92
|
-
}
|
|
93
|
-
const importAttributes = {
|
|
94
|
-
imports: [],
|
|
95
|
-
viewProviders: [],
|
|
96
|
-
providers: [],
|
|
97
|
-
exposes: [],
|
|
98
|
-
};
|
|
99
|
-
let destructuredCount = 0;
|
|
100
|
-
const memberRegistry = new Map(), pendingOperations = [];
|
|
101
|
-
for (const node of sourceSyntaxList.getChildren()) {
|
|
102
|
-
// Handle import statements
|
|
103
|
-
if (Node.isImportDeclaration(node)) {
|
|
104
|
-
let importStruct = node.getStructure();
|
|
105
|
-
// turns import './foo.analog' into import FooAnalogComponent from './foo.analog';
|
|
106
|
-
if (!importStruct.namedImports?.length &&
|
|
107
|
-
!importStruct.defaultImport &&
|
|
108
|
-
(importStruct.moduleSpecifier.endsWith('.analog') ||
|
|
109
|
-
importStruct.moduleSpecifier.endsWith('.ag'))) {
|
|
110
|
-
const generatedName = importStruct.moduleSpecifier.replace(/[^a-zA-Z]/g, '');
|
|
111
|
-
node.setDefaultImport(generatedName);
|
|
112
|
-
importStruct = node.getStructure();
|
|
113
|
-
}
|
|
114
|
-
const { attributes, namedImports, defaultImport } = importStruct;
|
|
115
|
-
const passThroughAttributes = [];
|
|
116
|
-
let foundAttribute = '';
|
|
117
|
-
for (const attribute of attributes || []) {
|
|
118
|
-
if (attribute.name === 'analog') {
|
|
119
|
-
const value = attribute.value.replaceAll("'", '').replaceAll('"', '');
|
|
120
|
-
if (!(value in importAttributes)) {
|
|
121
|
-
throw new Error(`[Analog] Invalid Analog import attribute ${value} in ${fileName}`);
|
|
122
|
-
}
|
|
123
|
-
foundAttribute = value;
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
passThroughAttributes.push(attribute);
|
|
127
|
-
}
|
|
128
|
-
if (foundAttribute) {
|
|
129
|
-
if (defaultImport)
|
|
130
|
-
importAttributes[foundAttribute].push(defaultImport);
|
|
131
|
-
if (namedImports && Array.isArray(namedImports)) {
|
|
132
|
-
const namedImportStructures = namedImports.filter((namedImport) => typeof namedImport === 'object');
|
|
133
|
-
const importNames = namedImportStructures.map((namedImport) => namedImport.alias ?? namedImport.name);
|
|
134
|
-
importAttributes[foundAttribute].push(...importNames);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
// copy the import to the target `.analog.ts` file
|
|
138
|
-
targetSourceFile.addImportDeclaration({
|
|
139
|
-
...importStruct,
|
|
140
|
-
attributes: passThroughAttributes.length
|
|
141
|
-
? passThroughAttributes
|
|
142
|
-
: undefined,
|
|
143
|
-
});
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
const nodeFullText = node.getFullText();
|
|
147
|
-
// variable statement
|
|
148
|
-
if (Node.isVariableStatement(node)) {
|
|
149
|
-
// NOTE: we do not support multiple declarations (i.e: const a, b, c)
|
|
150
|
-
const declaration = node.getDeclarations()[0], isLet = node.getDeclarationKind() === VariableDeclarationKind.Let, hasExportKeyword = node.hasExportKeyword();
|
|
151
|
-
// if exportable, we need to add it to the target file immediately
|
|
152
|
-
if (hasExportKeyword) {
|
|
153
|
-
targetSourceFile.addStatements(nodeFullText);
|
|
154
|
-
}
|
|
155
|
-
const name = declaration.getName(), initializer = declaration.getInitializer(), nameNode = declaration.getNameNode();
|
|
156
|
-
if (Node.isArrayBindingPattern(nameNode) ||
|
|
157
|
-
Node.isObjectBindingPattern(nameNode)) {
|
|
158
|
-
// destructuring
|
|
159
|
-
// NOTE: we do not support nested destructuring
|
|
160
|
-
// this also gets rid of OmittedExpression (i.e: skipped elements in array destructuring)
|
|
161
|
-
const bindingElements = nameNode.getDescendantsOfKind(SyntaxKind.BindingElement);
|
|
162
|
-
// nothing to do here
|
|
163
|
-
if (bindingElements.length <= 0)
|
|
164
|
-
continue;
|
|
165
|
-
destructuredCount += 1;
|
|
166
|
-
// add a virtual class property for the destructuring initializer
|
|
167
|
-
const destructuredVirtualName = `__destructured${destructuredCount}`;
|
|
168
|
-
memberRegistry.set(destructuredVirtualName, {
|
|
169
|
-
name: destructuredVirtualName,
|
|
170
|
-
isVirtual: true,
|
|
171
|
-
initializer,
|
|
172
|
-
isLet: false,
|
|
173
|
-
hasExportKeyword: false,
|
|
174
|
-
});
|
|
175
|
-
for (const bindingElement of bindingElements) {
|
|
176
|
-
const bindingName = bindingElement.getName(), bindingPropertyName = bindingElement
|
|
177
|
-
.getPropertyNameNode()
|
|
178
|
-
?.getText(), bindingInitializer = bindingElement.getInitializer(), bindingDotDotDot = bindingElement.getDotDotDotToken();
|
|
179
|
-
// rest element
|
|
180
|
-
if (bindingDotDotDot) {
|
|
181
|
-
memberRegistry.set(bindingName, {
|
|
182
|
-
name: bindingName,
|
|
183
|
-
isLet: false,
|
|
184
|
-
hasExportKeyword: false,
|
|
185
|
-
initializer: (writer) => {
|
|
186
|
-
// for rest, we'll write an iife
|
|
187
|
-
writer.write(`(() => {
|
|
188
|
-
const ${nameNode.getFullText()} = this.${destructuredVirtualName};
|
|
189
|
-
return ${bindingName};
|
|
190
|
-
})()`);
|
|
191
|
-
},
|
|
192
|
-
});
|
|
193
|
-
continue;
|
|
194
|
-
}
|
|
195
|
-
// regular destructured element
|
|
196
|
-
memberRegistry.set(bindingName, {
|
|
197
|
-
name: bindingName,
|
|
198
|
-
isLet: false,
|
|
199
|
-
hasExportKeyword: false,
|
|
200
|
-
initializer: (writer) => {
|
|
201
|
-
const propertyAccess = `this.${destructuredVirtualName}.${bindingPropertyName ?? bindingName}`;
|
|
202
|
-
// using `=== undefined` to strictly follow destructuring rule
|
|
203
|
-
if (bindingInitializer) {
|
|
204
|
-
writer.write(`${propertyAccess} === undefined ? ${bindingInitializer.getText()} : ${propertyAccess}`);
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
writer.write(propertyAccess);
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
continue;
|
|
213
|
-
}
|
|
214
|
-
memberRegistry.set(name, {
|
|
215
|
-
name,
|
|
216
|
-
initializer,
|
|
217
|
-
isLet,
|
|
218
|
-
hasExportKeyword,
|
|
219
|
-
});
|
|
220
|
-
continue;
|
|
221
|
-
}
|
|
222
|
-
// function declaration
|
|
223
|
-
if (Node.isFunctionDeclaration(node)) {
|
|
224
|
-
const functionName = node.getName();
|
|
225
|
-
if (!functionName)
|
|
226
|
-
continue;
|
|
227
|
-
const hasExportKeyword = node.hasExportKeyword();
|
|
228
|
-
if (hasExportKeyword) {
|
|
229
|
-
targetSourceFile.addStatements(nodeFullText);
|
|
230
|
-
}
|
|
231
|
-
pendingOperations.push(() => {
|
|
232
|
-
if (hasExportKeyword) {
|
|
233
|
-
targetClass.addProperty({
|
|
234
|
-
name: functionName,
|
|
235
|
-
initializer: functionName,
|
|
236
|
-
isReadonly: true,
|
|
237
|
-
scope: Scope.Protected,
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
targetConstructor.addStatements([
|
|
242
|
-
// bring the function over
|
|
243
|
-
nodeFullText,
|
|
244
|
-
// assign class property
|
|
245
|
-
`this.${functionName} = ${functionName}.bind(this);`,
|
|
246
|
-
]);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
continue;
|
|
250
|
-
}
|
|
251
|
-
// expression statement
|
|
252
|
-
if (Node.isExpressionStatement(node)) {
|
|
253
|
-
const expression = node.getExpression();
|
|
254
|
-
if (!Node.isCallExpression(expression))
|
|
255
|
-
continue;
|
|
256
|
-
// cifs, effects, top-level function calls
|
|
257
|
-
const fnName = expression.getExpression().getText();
|
|
258
|
-
if (fnName === DEFINE_METADATA) {
|
|
259
|
-
const metadata = expression.getArguments()[0];
|
|
260
|
-
const metadataProperties = metadata
|
|
261
|
-
.getPropertiesWithComments()
|
|
262
|
-
.filter((property) => Node.isPropertyAssignment(property) &&
|
|
263
|
-
!INVALID_METADATA_PROPERTIES.includes(property.getName()));
|
|
264
|
-
if (metadataProperties.length === 0)
|
|
265
|
-
continue;
|
|
266
|
-
processMetadata(metadataProperties, targetMetadataArguments, targetClass);
|
|
267
|
-
continue;
|
|
268
|
-
}
|
|
269
|
-
if (fnName === ON_INIT || fnName === ON_DESTROY) {
|
|
270
|
-
const initFunction = expression.getArguments()[0];
|
|
271
|
-
if (!Node.isFunctionLikeDeclaration(initFunction))
|
|
272
|
-
continue;
|
|
273
|
-
pendingOperations.push(() => {
|
|
274
|
-
// add the function to constructor
|
|
275
|
-
targetConstructor.addStatements(`this.${fnName} = ${initFunction.getText()}`);
|
|
276
|
-
// add life-cycle method to class
|
|
277
|
-
targetClass.addMethod({
|
|
278
|
-
name: HOOKS_MAP[fnName],
|
|
279
|
-
statements: `this.${fnName}();`,
|
|
280
|
-
});
|
|
281
|
-
});
|
|
282
|
-
continue;
|
|
283
|
-
}
|
|
284
|
-
// other function calls
|
|
285
|
-
pendingOperations.push(() => targetConstructor.addStatements(nodeFullText));
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
const gettersSetters = [];
|
|
289
|
-
for (const member of memberRegistry.values()) {
|
|
290
|
-
const { isLet, hasExportKeyword, name, initializer, isVirtual = false, } = member;
|
|
291
|
-
if (isLet && hasExportKeyword) {
|
|
292
|
-
console.warn(`[Analog] let variable cannot be exported: ${name}`);
|
|
293
|
-
continue;
|
|
294
|
-
}
|
|
295
|
-
if (isLet) {
|
|
296
|
-
targetConstructor.addStatements((writer) => {
|
|
297
|
-
writer.write(`let ${name}`);
|
|
298
|
-
if (initializer) {
|
|
299
|
-
if (typeof initializer === 'function') {
|
|
300
|
-
initializer(writer);
|
|
301
|
-
}
|
|
302
|
-
else {
|
|
303
|
-
writer.write(`=${initializer.getText()}`);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
writer.write(';');
|
|
307
|
-
});
|
|
308
|
-
// push to gettersSetters
|
|
309
|
-
gettersSetters.push({
|
|
310
|
-
propertyName: name,
|
|
311
|
-
isFunction: !!initializer &&
|
|
312
|
-
typeof initializer !== 'function' &&
|
|
313
|
-
Node.isFunctionLikeDeclaration(initializer),
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
else {
|
|
317
|
-
targetClass.addProperty({
|
|
318
|
-
name,
|
|
319
|
-
initializer: (writer) => {
|
|
320
|
-
if (typeof initializer === 'function') {
|
|
321
|
-
initializer(writer);
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
if (hasExportKeyword) {
|
|
325
|
-
writer.write(name);
|
|
326
|
-
}
|
|
327
|
-
else {
|
|
328
|
-
processInitializer(writer, name, memberRegistry, initializer);
|
|
329
|
-
}
|
|
330
|
-
},
|
|
331
|
-
isReadonly: hasExportKeyword || isVirtual,
|
|
332
|
-
scope: hasExportKeyword
|
|
333
|
-
? Scope.Protected
|
|
334
|
-
: isVirtual
|
|
335
|
-
? Scope.Private
|
|
336
|
-
: undefined,
|
|
337
|
-
});
|
|
338
|
-
if (name !== ROUTE_META && !isVirtual) {
|
|
339
|
-
targetConstructor.addStatements((writer) => {
|
|
340
|
-
writer.write(`const ${name} = this.${name};`);
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
for (const call of pendingOperations) {
|
|
346
|
-
call();
|
|
347
|
-
}
|
|
348
|
-
if (ngType === 'Component') {
|
|
349
|
-
if (importAttributes['viewProviders'].length) {
|
|
350
|
-
processArrayLiteralMetadata(targetMetadataArguments, 'viewProviders', importAttributes['viewProviders']);
|
|
351
|
-
}
|
|
352
|
-
if (importAttributes['imports'].length) {
|
|
353
|
-
processArrayLiteralMetadata(targetMetadataArguments, 'imports', importAttributes['imports']);
|
|
354
|
-
}
|
|
355
|
-
if (importAttributes['exposes'].length) {
|
|
356
|
-
const exposes = importAttributes['exposes'].map((item) => ({
|
|
357
|
-
name: item.trim(),
|
|
358
|
-
initializer: item.trim(),
|
|
359
|
-
scope: Scope.Protected,
|
|
360
|
-
isReadonly: true,
|
|
361
|
-
}));
|
|
362
|
-
targetClass.addProperties(exposes);
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
if (importAttributes['providers'].length) {
|
|
366
|
-
processArrayLiteralMetadata(targetMetadataArguments, 'providers', importAttributes['providers']);
|
|
367
|
-
}
|
|
368
|
-
if (gettersSetters.length) {
|
|
369
|
-
targetConstructor.addStatements(`
|
|
370
|
-
Object.defineProperties(this, {
|
|
371
|
-
${gettersSetters.reduce((acc, { isFunction, propertyName }) => {
|
|
372
|
-
acc += `${propertyName}: {set(v){${propertyName}=v;}${isFunction
|
|
373
|
-
? `value: ${propertyName}.bind(this)`
|
|
374
|
-
: `get(){return ${propertyName}}`}},\n`;
|
|
375
|
-
return acc;
|
|
376
|
-
}, '')}
|
|
377
|
-
})`);
|
|
378
|
-
}
|
|
379
|
-
if (!isProd) {
|
|
380
|
-
// PROD probably does not need this
|
|
381
|
-
targetSourceFile.formatText({ ensureNewLineAtEndOfFile: true });
|
|
382
|
-
}
|
|
383
|
-
// remove all empty lines
|
|
384
|
-
return targetSourceFile.getText(false).replace(/\n\s*\n/g, '\n');
|
|
385
|
-
}
|
|
386
|
-
function processInitializer(writer, name, memberRegistry, initializer) {
|
|
387
|
-
if (!initializer) {
|
|
388
|
-
console.warn(`[Analog] const variable must have an initializer: ${name}`);
|
|
389
|
-
return;
|
|
390
|
-
}
|
|
391
|
-
if (Node.isCallExpression(initializer)) {
|
|
392
|
-
const expression = initializer.getExpression(), expressionText = expression.getText();
|
|
393
|
-
if (REQUIRED_SIGNALS_MAP[expressionText] || SIGNALS_MAP[expressionText]) {
|
|
394
|
-
if (expressionText === OUTPUT_FROM_OBSERVABLE) {
|
|
395
|
-
writer.write(processCallExpressionOrPropertyAccessExpressionForClassMember(initializer, memberRegistry));
|
|
396
|
-
return;
|
|
397
|
-
}
|
|
398
|
-
writer.write(initializer.getText());
|
|
399
|
-
return;
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
writer.write(processCallExpressionOrPropertyAccessExpressionForClassMember(initializer, memberRegistry));
|
|
403
|
-
}
|
|
404
|
-
function processCallExpressionOrPropertyAccessExpressionForClassMember(initializer, memberRegistry) {
|
|
405
|
-
if (Node.isCallExpression(initializer)) {
|
|
406
|
-
const currentExpression = initializer.getExpression();
|
|
407
|
-
let deepestExpression = currentExpression;
|
|
408
|
-
// find deepest expression
|
|
409
|
-
// i.e: route.snapshot.paramMap.get('id') -> route is the deepest expression
|
|
410
|
-
while (Node.isPropertyAccessExpression(deepestExpression)) {
|
|
411
|
-
deepestExpression = deepestExpression.getExpression();
|
|
412
|
-
}
|
|
413
|
-
let fullExpressionText = currentExpression.getText();
|
|
414
|
-
if (Node.isIdentifier(deepestExpression) &&
|
|
415
|
-
memberRegistry.has(deepestExpression.getText())) {
|
|
416
|
-
// if it's part of the classMembers, add `this.`
|
|
417
|
-
fullExpressionText = `this.${fullExpressionText}`;
|
|
418
|
-
}
|
|
419
|
-
// process arguments of the call expression
|
|
420
|
-
const args = initializer.getArguments().map((arg) => {
|
|
421
|
-
// if it's part of the classMembers, add `this.`
|
|
422
|
-
if (Node.isIdentifier(arg) && memberRegistry.has(arg.getText())) {
|
|
423
|
-
return `this.${arg.getText()}`;
|
|
424
|
-
}
|
|
425
|
-
// recurse if needs to
|
|
426
|
-
if (Node.isPropertyAccessExpression(arg) || Node.isCallExpression(arg)) {
|
|
427
|
-
return processCallExpressionOrPropertyAccessExpressionForClassMember(arg, memberRegistry);
|
|
428
|
-
}
|
|
429
|
-
// otherwise just reutrn
|
|
430
|
-
return arg.getText();
|
|
431
|
-
});
|
|
432
|
-
return `${fullExpressionText}(${args.join(', ')})`;
|
|
433
|
-
}
|
|
434
|
-
if (Node.isPropertyAccessExpression(initializer)) {
|
|
435
|
-
let deepestExpression = initializer.getExpression();
|
|
436
|
-
// find deepest expression
|
|
437
|
-
// i.e: route.snapshot.paramMap -> route is the deepest expression
|
|
438
|
-
while (Node.isPropertyAccessExpression(deepestExpression)) {
|
|
439
|
-
deepestExpression = deepestExpression.getExpression();
|
|
440
|
-
}
|
|
441
|
-
if (Node.isIdentifier(deepestExpression) &&
|
|
442
|
-
memberRegistry.has(deepestExpression.getText())) {
|
|
443
|
-
return `this.${initializer.getText()}`;
|
|
444
|
-
}
|
|
445
|
-
return initializer.getText();
|
|
446
|
-
}
|
|
447
|
-
return initializer.getText();
|
|
448
|
-
}
|
|
449
|
-
function processArrayLiteralMetadata(targetMetadataArguments, metadataName, items) {
|
|
450
|
-
let metadata = targetMetadataArguments.getProperty(metadataName);
|
|
451
|
-
if (!metadata) {
|
|
452
|
-
metadata = targetMetadataArguments.addPropertyAssignment({
|
|
453
|
-
name: metadataName,
|
|
454
|
-
initializer: '[]',
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
const initializer = Node.isPropertyAssignment(metadata) && metadata.getInitializer();
|
|
458
|
-
if (initializer && Node.isArrayLiteralExpression(initializer)) {
|
|
459
|
-
initializer.addElements(items);
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
function processMetadata(metadataProperties, targetMetadataArguments, targetClass) {
|
|
463
|
-
metadataProperties.forEach((property) => {
|
|
464
|
-
const propertyInitializer = property.getInitializer();
|
|
465
|
-
if (propertyInitializer) {
|
|
466
|
-
const propertyName = property.getName(), propertyInitializerText = propertyInitializer.getText();
|
|
467
|
-
if (propertyName === 'selector') {
|
|
468
|
-
// remove the existing selector
|
|
469
|
-
targetMetadataArguments.getProperty('selector')?.remove();
|
|
470
|
-
// add the new selector
|
|
471
|
-
targetMetadataArguments.addPropertyAssignment({
|
|
472
|
-
name: 'selector',
|
|
473
|
-
initializer: propertyInitializerText,
|
|
474
|
-
});
|
|
475
|
-
}
|
|
476
|
-
else if (propertyName === 'exposes') {
|
|
477
|
-
// for exposes we're going to add the property to the class so they are accessible on the template
|
|
478
|
-
// parse the initializer to get the item in the exposes array
|
|
479
|
-
const exposes = propertyInitializerText
|
|
480
|
-
.replace(/[[\]]/g, '')
|
|
481
|
-
.split(',')
|
|
482
|
-
.map((item) => ({
|
|
483
|
-
name: item.trim(),
|
|
484
|
-
initializer: item.trim(),
|
|
485
|
-
scope: Scope.Protected,
|
|
486
|
-
isReadonly: true,
|
|
487
|
-
}));
|
|
488
|
-
targetClass.addProperties(exposes);
|
|
489
|
-
}
|
|
490
|
-
else {
|
|
491
|
-
targetMetadataArguments.addPropertyAssignment({
|
|
492
|
-
name: propertyName,
|
|
493
|
-
initializer: propertyInitializerText,
|
|
494
|
-
});
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
});
|
|
498
|
-
}
|
|
499
|
-
/**
|
|
500
|
-
* Hyphenated to UpperCamelCase
|
|
501
|
-
*/
|
|
502
|
-
function toClassName(str) {
|
|
503
|
-
return toCapitalCase(toPropertyName(str));
|
|
504
|
-
}
|
|
505
|
-
/**
|
|
506
|
-
* Hyphenated to lowerCamelCase
|
|
507
|
-
*/
|
|
508
|
-
function toPropertyName(str) {
|
|
509
|
-
return str
|
|
510
|
-
.replace(/([^a-zA-Z0-9])+(.)?/g, (_, __, chr) => chr ? chr.toUpperCase() : '')
|
|
511
|
-
.replace(/[^a-zA-Z\d]/g, '')
|
|
512
|
-
.replace(/^([A-Z])/, (m) => m.toLowerCase())
|
|
513
|
-
.replace(/^\d+/, '');
|
|
514
|
-
}
|
|
515
|
-
/**
|
|
516
|
-
* Upper camelCase to lowercase, hyphenated
|
|
517
|
-
*/
|
|
518
|
-
function toFileName(str) {
|
|
519
|
-
return str
|
|
520
|
-
.replace(/([a-z\d])([A-Z])/g, '$1_$2')
|
|
521
|
-
.toLowerCase()
|
|
522
|
-
.replace(/(?!^[_])[ _]/g, '-')
|
|
523
|
-
.replace(/^\d+-?/, '');
|
|
524
|
-
}
|
|
525
|
-
/**
|
|
526
|
-
* Capitalizes the first letter of a string
|
|
527
|
-
*/
|
|
528
|
-
function toCapitalCase(str) {
|
|
529
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
530
|
-
}
|
|
531
|
-
/**
|
|
532
|
-
* Parses the attribute string and returns a key-value pair
|
|
533
|
-
*
|
|
534
|
-
* @param attributeString
|
|
535
|
-
*/
|
|
536
|
-
function parseAttributes(attributeString) {
|
|
537
|
-
const attributes = {};
|
|
538
|
-
const pattern = /([^\s"'=]+)=?(?:(["'])(.*?\2)|(.+?))(?=\s|$)/g; // Regex to capture key-value pairs
|
|
539
|
-
let match;
|
|
540
|
-
while ((match = pattern.exec(attributeString)) !== null) {
|
|
541
|
-
const [, key, , quotedValue, unquotedValue] = match;
|
|
542
|
-
let value = quotedValue || unquotedValue || ''; // Use quoted or unquoted value
|
|
543
|
-
if (value.endsWith('"')) {
|
|
544
|
-
value = value.slice(0, -1);
|
|
545
|
-
}
|
|
546
|
-
attributes[key.trim()] = value.trim();
|
|
547
|
-
}
|
|
548
|
-
return attributes;
|
|
549
|
-
}
|
|
550
|
-
//# sourceMappingURL=analog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analog.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/authoring/analog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export declare const INVALID_METADATA_PROPERTIES: string[];
|
|
2
|
-
export declare const SCRIPT_TAG_REGEX: RegExp;
|
|
3
|
-
export declare const TEMPLATE_TAG_REGEX: RegExp;
|
|
4
|
-
export declare const STYLE_TAG_REGEX: RegExp;
|
|
5
|
-
export declare const FRONTMATTER_REGEX: RegExp;
|
|
6
|
-
export declare const ON_INIT = "onInit";
|
|
7
|
-
export declare const ON_DESTROY = "onDestroy";
|
|
8
|
-
export declare const DEFINE_METADATA = "defineMetadata";
|
|
9
|
-
export declare const ROUTE_META = "routeMeta";
|
|
10
|
-
export declare const INPUT = "input";
|
|
11
|
-
export declare const OUTPUT = "output";
|
|
12
|
-
export declare const OUTPUT_FROM_OBSERVABLE = "outputFromObservable";
|
|
13
|
-
export declare const MODEL = "model";
|
|
14
|
-
export declare const INPUT_REQUIRED = "input.required";
|
|
15
|
-
export declare const VIEW_CHILD = "viewChild";
|
|
16
|
-
export declare const VIEW_CHILD_REQUIRED = "viewChild.required";
|
|
17
|
-
export declare const VIEW_CHILDREN = "viewChildren";
|
|
18
|
-
export declare const CONTENT_CHILD = "contentChild";
|
|
19
|
-
export declare const CONTENT_CHILD_REQUIRED = "contentChild.required";
|
|
20
|
-
export declare const CONTENT_CHILDREN = "contentChildren";
|
|
21
|
-
export declare const HOOKS_MAP: {
|
|
22
|
-
readonly onInit: "ngOnInit";
|
|
23
|
-
readonly onDestroy: "ngOnDestroy";
|
|
24
|
-
};
|
|
25
|
-
export declare const SIGNALS_MAP: Record<string, string>;
|
|
26
|
-
export declare const REQUIRED_SIGNALS_MAP: Record<string, string>;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export const INVALID_METADATA_PROPERTIES = [
|
|
2
|
-
'template',
|
|
3
|
-
'standalone',
|
|
4
|
-
'changeDetection',
|
|
5
|
-
'styles',
|
|
6
|
-
'outputs',
|
|
7
|
-
'inputs',
|
|
8
|
-
];
|
|
9
|
-
export const SCRIPT_TAG_REGEX = /<script lang="ts">([\s\S]*?)<\/script>/i;
|
|
10
|
-
export const TEMPLATE_TAG_REGEX = /(<template(?:\s+([^>]*?))?>)([\s\S]*?)<\/template>/i;
|
|
11
|
-
export const STYLE_TAG_REGEX = /<style>([\s\S]*?)<\/style>/i;
|
|
12
|
-
export const FRONTMATTER_REGEX = /^\s*---[\s\S]*?---/;
|
|
13
|
-
export const ON_INIT = 'onInit';
|
|
14
|
-
export const ON_DESTROY = 'onDestroy';
|
|
15
|
-
export const DEFINE_METADATA = 'defineMetadata';
|
|
16
|
-
export const ROUTE_META = 'routeMeta';
|
|
17
|
-
export const INPUT = 'input';
|
|
18
|
-
export const OUTPUT = 'output';
|
|
19
|
-
export const OUTPUT_FROM_OBSERVABLE = 'outputFromObservable';
|
|
20
|
-
export const MODEL = 'model';
|
|
21
|
-
export const INPUT_REQUIRED = 'input.required';
|
|
22
|
-
export const VIEW_CHILD = 'viewChild';
|
|
23
|
-
export const VIEW_CHILD_REQUIRED = 'viewChild.required';
|
|
24
|
-
export const VIEW_CHILDREN = 'viewChildren';
|
|
25
|
-
export const CONTENT_CHILD = 'contentChild';
|
|
26
|
-
export const CONTENT_CHILD_REQUIRED = 'contentChild.required';
|
|
27
|
-
export const CONTENT_CHILDREN = 'contentChildren';
|
|
28
|
-
export const HOOKS_MAP = {
|
|
29
|
-
[ON_INIT]: 'ngOnInit',
|
|
30
|
-
[ON_DESTROY]: 'ngOnDestroy',
|
|
31
|
-
};
|
|
32
|
-
export const SIGNALS_MAP = {
|
|
33
|
-
[INPUT]: 'input',
|
|
34
|
-
[OUTPUT]: 'output',
|
|
35
|
-
[OUTPUT_FROM_OBSERVABLE]: 'outputFromObservable',
|
|
36
|
-
[MODEL]: 'model',
|
|
37
|
-
[VIEW_CHILD]: 'viewChild',
|
|
38
|
-
[VIEW_CHILDREN]: 'viewChildren',
|
|
39
|
-
[CONTENT_CHILD]: 'contentChild',
|
|
40
|
-
[CONTENT_CHILDREN]: 'contentChildren',
|
|
41
|
-
};
|
|
42
|
-
export const REQUIRED_SIGNALS_MAP = {
|
|
43
|
-
[INPUT_REQUIRED]: 'input.required',
|
|
44
|
-
[VIEW_CHILD_REQUIRED]: 'viewChild.required',
|
|
45
|
-
[CONTENT_CHILD_REQUIRED]: 'contentChild.required',
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/authoring/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,QAAQ;IACR,SAAS;IACT,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,yCAAyC,CAAC;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAC7B,qDAAqD,CAAC;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AACtC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAC7D,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,CAAC,OAAO,CAAC,EAAE,UAAU;IACrB,CAAC,UAAU,CAAC,EAAE,aAAa;CACnB,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,CAAC,KAAK,CAAC,EAAE,OAAO;IAChB,CAAC,MAAM,CAAC,EAAE,QAAQ;IAClB,CAAC,sBAAsB,CAAC,EAAE,sBAAsB;IAChD,CAAC,KAAK,CAAC,EAAE,OAAO;IAChB,CAAC,UAAU,CAAC,EAAE,WAAW;IACzB,CAAC,aAAa,CAAC,EAAE,cAAc;IAC/B,CAAC,aAAa,CAAC,EAAE,cAAc;IAC/B,CAAC,gBAAgB,CAAC,EAAE,iBAAiB;CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,CAAC,cAAc,CAAC,EAAE,gBAAgB;IAClC,CAAC,mBAAmB,CAAC,EAAE,oBAAoB;IAC3C,CAAC,sBAAsB,CAAC,EAAE,uBAAuB;CAClD,CAAC"}
|