@analogjs/vite-plugin-angular 0.2.0-alpha.0 → 0.2.0-alpha.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@analogjs/vite-plugin-angular",
3
3
  "description": "Vite Plugin for Angular",
4
- "version": "0.2.0-alpha.0",
4
+ "version": "0.2.0-alpha.3",
5
5
  "keywords": [
6
6
  "vite-plugin",
7
7
  "angular"
@@ -1,10 +1,9 @@
1
- import { BundleStylesheetOptions } from '@angular-devkit/build-angular/src/builders/browser-esbuild/stylesheets';
2
1
  import * as ts from 'typescript';
3
2
  import { Plugin } from 'vite';
4
3
  interface PluginOptions {
5
4
  tsconfig: string;
6
- sourcemap: boolean;
7
- advancedOptimizations: boolean;
5
+ mode: string;
6
+ workspaceRoot: string;
8
7
  }
9
8
  interface EmitFileResult {
10
9
  content?: string;
@@ -13,6 +12,6 @@ interface EmitFileResult {
13
12
  hash?: Uint8Array;
14
13
  }
15
14
  declare type FileEmitter = (file: string) => Promise<EmitFileResult | undefined>;
16
- export declare function angular(pluginOptions?: PluginOptions, styleOptions?: BundleStylesheetOptions): Plugin;
15
+ export declare function angular(pluginOptions?: PluginOptions): Plugin[];
17
16
  export declare function createFileEmitter(program: ts.BuilderProgram, transformers?: ts.CustomTransformers, onAfterEmit?: (sourceFile: ts.SourceFile) => void): FileEmitter;
18
17
  export {};
@@ -4,16 +4,15 @@ exports.createFileEmitter = exports.angular = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const core_1 = require("@babel/core");
6
6
  const application_1 = require("@angular-devkit/build-angular/src/babel/presets/application");
7
+ const webpack_loader_1 = require("@angular-devkit/build-angular/src/babel/webpack-loader");
7
8
  const ts = require("typescript");
8
9
  const compiler_plugin_1 = require("@angular-devkit/build-angular/src/builders/browser-esbuild/compiler-plugin");
9
10
  const load_esm_1 = require("@angular-devkit/build-angular/src/utils/load-esm");
11
+ const component_resolvers_1 = require("./component-resolvers");
10
12
  function angular(pluginOptions = {
11
13
  tsconfig: './tsconfig.app.json',
12
- sourcemap: false,
13
- advancedOptimizations: false,
14
- }, styleOptions = {
15
- optimization: false,
16
- sourcemap: true,
14
+ mode: 'development',
15
+ workspaceRoot: process.cwd()
17
16
  }) {
18
17
  // The file emitter created during `onStart` that will be used during the build in `onLoad` callbacks for TS files
19
18
  let fileEmitter;
@@ -29,109 +28,213 @@ function angular(pluginOptions = {
29
28
  let builderProgram;
30
29
  let watchMode = false;
31
30
  let sourceFileCache = new SourceFileCache();
32
- return {
33
- name: '@analogjs/vite-plugin-angular',
34
- config(config, { command }) {
35
- watchMode = command === 'serve';
36
- return {
37
- optimizeDeps: {
38
- exclude: ['rxjs'],
39
- esbuildOptions: {
40
- plugins: [
41
- (0, compiler_plugin_1.createCompilerPlugin)({
42
- tsconfig: pluginOptions.tsconfig,
43
- sourcemap: pluginOptions.sourcemap,
44
- advancedOptimizations: pluginOptions.advancedOptimizations,
45
- }, {
46
- sourcemap: styleOptions.sourcemap,
47
- optimization: styleOptions.optimization,
48
- }),
49
- ],
50
- },
51
- },
52
- };
53
- },
54
- buildStart() {
55
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
56
- compilerCli = yield (0, load_esm_1.loadEsmModule)('@angular/compiler-cli');
57
- const { options: tsCompilerOptions, rootNames: rn } = compilerCli.readConfiguration(pluginOptions.tsconfig, {
58
- enableIvy: true,
59
- noEmitOnError: false,
60
- suppressOutputPathCheck: true,
61
- outDir: undefined,
62
- inlineSources: pluginOptions.sourcemap,
63
- inlineSourceMap: pluginOptions.sourcemap,
64
- sourceMap: false,
65
- mapRoot: undefined,
66
- sourceRoot: undefined,
67
- declaration: false,
68
- declarationMap: false,
69
- allowEmptyCodegenFiles: false,
70
- annotationsAs: 'decorators',
71
- enableResourceInlining: false,
31
+ let isProd = pluginOptions.mode === 'production';
32
+ return [
33
+ {
34
+ name: '@analogjs/vite-plugin-angular',
35
+ config(config, { command }) {
36
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
+ watchMode = command === 'serve';
38
+ compilerCli = yield (0, load_esm_1.loadEsmModule)('@angular/compiler-cli');
39
+ return {
40
+ optimizeDeps: {
41
+ esbuildOptions: {
42
+ plugins: [
43
+ (0, compiler_plugin_1.createCompilerPlugin)({
44
+ tsconfig: pluginOptions.tsconfig,
45
+ sourcemap: !isProd,
46
+ advancedOptimizations: isProd,
47
+ }, {
48
+ workspaceRoot: pluginOptions.workspaceRoot,
49
+ sourcemap: !isProd,
50
+ optimization: isProd,
51
+ }),
52
+ ],
53
+ define: {
54
+ ngDevMode: watchMode ? JSON.stringify({}) : 'false',
55
+ ngJitMode: 'false',
56
+ ngI18nClosureMode: 'false',
57
+ },
58
+ },
59
+ },
60
+ };
72
61
  });
73
- rootNames = rn;
74
- compilerOptions = tsCompilerOptions;
75
- host = ts.createIncrementalCompilerHost(compilerOptions);
76
- // Setup source file caching and reuse cache from previous compilation if present
77
- let cache = new SourceFileCache();
78
- // Only store cache if in watch mode
79
- if (watchMode) {
80
- sourceFileCache = cache;
81
- }
82
- augmentHostWithCaching(host, cache);
83
- yield buildAndAnalyze();
84
- });
85
- },
86
- handleHotUpdate(ctx) {
87
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
88
- if (/\.[cm]?tsx?$/.test(ctx.file)) {
89
- sourceFileCache.invalidate(ctx.file);
62
+ },
63
+ buildStart() {
64
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
65
+ const { options: tsCompilerOptions, rootNames: rn } = compilerCli.readConfiguration(pluginOptions.tsconfig, {
66
+ enableIvy: true,
67
+ noEmitOnError: false,
68
+ suppressOutputPathCheck: true,
69
+ outDir: undefined,
70
+ inlineSources: !isProd,
71
+ inlineSourceMap: !isProd,
72
+ sourceMap: false,
73
+ mapRoot: undefined,
74
+ sourceRoot: undefined,
75
+ declaration: false,
76
+ declarationMap: false,
77
+ allowEmptyCodegenFiles: false,
78
+ annotationsAs: 'decorators',
79
+ enableResourceInlining: false,
80
+ });
81
+ rootNames = rn;
82
+ compilerOptions = tsCompilerOptions;
83
+ host = ts.createIncrementalCompilerHost(compilerOptions);
84
+ // Setup source file caching and reuse cache from previous compilation if present
85
+ let cache = new SourceFileCache();
86
+ // Only store cache if in watch mode
87
+ if (watchMode) {
88
+ sourceFileCache = cache;
89
+ }
90
+ augmentHostWithCaching(host, cache);
90
91
  yield buildAndAnalyze();
91
- }
92
- });
92
+ });
93
+ },
94
+ handleHotUpdate(ctx) {
95
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
96
+ if (/\.[cm]?tsx?$/.test(ctx.file)) {
97
+ sourceFileCache.invalidate(ctx.file);
98
+ yield buildAndAnalyze();
99
+ }
100
+ if (/\.(html|htm|css|less|sass|scss)$/.test(ctx.file)) {
101
+ /**
102
+ * Check to see if this was a direct request
103
+ * for an external resource (styles, html).
104
+ */
105
+ const isDirect = ctx.modules.find((mod) => { var _a; return ctx.file === mod.file && ((_a = mod.id) === null || _a === void 0 ? void 0 : _a.includes('?direct')); });
106
+ if (isDirect) {
107
+ return ctx.modules;
108
+ }
109
+ let mods = [];
110
+ ctx.modules.forEach((mod) => {
111
+ mod.importers.forEach((imp) => {
112
+ sourceFileCache.invalidate(imp.id);
113
+ ctx.server.moduleGraph.invalidateModule(imp);
114
+ mods.push(imp);
115
+ });
116
+ });
117
+ yield buildAndAnalyze();
118
+ return mods;
119
+ }
120
+ return ctx.modules;
121
+ });
122
+ },
123
+ transform(code, id) {
124
+ var _a, _b;
125
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
126
+ // Skip transforming node_modules
127
+ if (id.includes('node_modules')) {
128
+ return;
129
+ }
130
+ if (/\.[cm]?tsx?$/.test(id)) {
131
+ if ((0, component_resolvers_1.hasTemplateUrl)(code)) {
132
+ const templateUrl = (0, component_resolvers_1.resolveTemplateUrl)(code, id);
133
+ if (templateUrl) {
134
+ this.addWatchFile(templateUrl);
135
+ }
136
+ }
137
+ if ((0, component_resolvers_1.hasStyleUrls)(code)) {
138
+ const styleUrls = (0, component_resolvers_1.resolveStyleUrls)(code, id);
139
+ styleUrls.forEach((styleUrl) => {
140
+ this.addWatchFile(styleUrl);
141
+ });
142
+ }
143
+ const typescriptResult = yield fileEmitter(id);
144
+ // return fileEmitter
145
+ const data = (_a = typescriptResult === null || typescriptResult === void 0 ? void 0 : typescriptResult.content) !== null && _a !== void 0 ? _a : '';
146
+ const babelResult = yield (0, core_1.transformAsync)(data, {
147
+ filename: id,
148
+ inputSourceMap: (!isProd ? undefined : false),
149
+ sourceMaps: !isProd ? 'inline' : false,
150
+ compact: false,
151
+ configFile: false,
152
+ babelrc: false,
153
+ browserslistConfigFile: false,
154
+ plugins: [],
155
+ presets: [
156
+ [
157
+ application_1.default,
158
+ {
159
+ forceAsyncTransformation: data.includes('async'),
160
+ optimize: isProd && {},
161
+ },
162
+ ],
163
+ ],
164
+ });
165
+ return {
166
+ code: (_b = babelResult === null || babelResult === void 0 ? void 0 : babelResult.code) !== null && _b !== void 0 ? _b : '',
167
+ map: babelResult === null || babelResult === void 0 ? void 0 : babelResult.map,
168
+ };
169
+ }
170
+ return undefined;
171
+ });
172
+ },
93
173
  },
94
- transform(code, id) {
95
- var _a, _b;
96
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
97
- // Skip transforming node_modules
98
- if (id.includes('node_modules')) {
99
- return;
100
- }
101
- const typescriptResult = yield fileEmitter(id);
102
- // return fileEmitter
103
- const data = (_a = typescriptResult === null || typescriptResult === void 0 ? void 0 : typescriptResult.content) !== null && _a !== void 0 ? _a : '';
104
- if (/\.[cm]?tsx?$/.test(id)) {
105
- const babelResult = yield (0, core_1.transformAsync)(data, {
106
- filename: id,
107
- inputSourceMap: (pluginOptions.sourcemap
108
- ? undefined
109
- : false),
110
- sourceMaps: pluginOptions.sourcemap ? 'inline' : false,
111
- compact: false,
112
- configFile: false,
113
- babelrc: false,
114
- browserslistConfigFile: false,
115
- plugins: [],
116
- presets: [
117
- [
118
- application_1.default,
119
- {
120
- forceAsyncTransformation: data.includes('async'),
121
- optimize: pluginOptions.advancedOptimizations && {},
122
- },
174
+ {
175
+ name: '@analogjs/vite-plugin-angular-optimizer',
176
+ apply: 'build',
177
+ config() {
178
+ return {
179
+ esbuild: {
180
+ legalComments: isProd ? 'none' : 'external',
181
+ keepNames: false,
182
+ define: isProd
183
+ ? {
184
+ ngDevMode: 'false',
185
+ ngJitMode: 'false',
186
+ ngI18nClosureMode: 'false',
187
+ }
188
+ : undefined,
189
+ },
190
+ };
191
+ },
192
+ transform(code, id) {
193
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
194
+ if (/\.[cm]?js$/.test(id)) {
195
+ const angularPackage = /[\\/]node_modules[\\/]@angular[\\/]/.test(id);
196
+ const linkerPluginCreator = (yield (0, load_esm_1.loadEsmModule)('@angular/compiler-cli/linker/babel')).createEs2015LinkerPlugin;
197
+ const useInputSourcemap = !isProd;
198
+ const result = yield (0, core_1.transformAsync)(code, {
199
+ filename: id,
200
+ inputSourceMap: (useInputSourcemap
201
+ ? undefined
202
+ : false),
203
+ sourceMaps: !isProd ? 'inline' : false,
204
+ compact: false,
205
+ configFile: false,
206
+ babelrc: false,
207
+ browserslistConfigFile: false,
208
+ plugins: [],
209
+ presets: [
210
+ [
211
+ application_1.default,
212
+ {
213
+ angularLinker: {
214
+ shouldLink: yield (0, webpack_loader_1.requiresLinking)(id, code),
215
+ jitMode: false,
216
+ linkerPluginCreator,
217
+ },
218
+ forceAsyncTransformation: !/[\\/][_f]?esm2015[\\/]/.test(id) &&
219
+ code.includes('async'),
220
+ optimize: isProd && {
221
+ looseEnums: angularPackage,
222
+ pureTopLevel: angularPackage,
223
+ },
224
+ },
225
+ ],
123
226
  ],
124
- ],
125
- });
126
- return {
127
- code: (_b = babelResult === null || babelResult === void 0 ? void 0 : babelResult.code) !== null && _b !== void 0 ? _b : '',
128
- map: babelResult === null || babelResult === void 0 ? void 0 : babelResult.map,
129
- };
130
- }
131
- return undefined;
132
- });
227
+ });
228
+ return {
229
+ code: (result === null || result === void 0 ? void 0 : result.code) || '',
230
+ map: result === null || result === void 0 ? void 0 : result.map,
231
+ };
232
+ }
233
+ return;
234
+ });
235
+ },
133
236
  },
134
- };
237
+ ];
135
238
  /**
136
239
  * Creates a new NgtscProgram to analyze/re-analyze
137
240
  * the source files and create a file emitter.
@@ -1 +1 @@
1
- {"version":3,"file":"angular-vite-plugin.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-vite-plugin.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function hasStyleUrls(code: string): boolean;
2
+ export declare function resolveStyleUrls(code: string, id: string): string[];
3
+ export declare function hasTemplateUrl(code: string): boolean;
4
+ export declare function resolveTemplateUrl(code: string, id: string): string;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveTemplateUrl = exports.hasTemplateUrl = exports.resolveStyleUrls = exports.hasStyleUrls = void 0;
4
+ const path_1 = require("path");
5
+ const styleUrlsRE = /styleUrls\s*:\s*\[([^\[]*?)\]/;
6
+ const templateUrlRE = /\s*templateUrl\s*:\s*["|']*?["|'].*/;
7
+ function hasStyleUrls(code) {
8
+ return styleUrlsRE.test(code);
9
+ }
10
+ exports.hasStyleUrls = hasStyleUrls;
11
+ function resolveStyleUrls(code, id) {
12
+ const styleUrlsGroup = styleUrlsRE.exec(code);
13
+ if (Array.isArray(styleUrlsGroup) && styleUrlsGroup[0]) {
14
+ const styleUrls = styleUrlsGroup[0].replace(/(styleUrls|\:|\s|\[|\]|"|')/g, '');
15
+ const styleUrlPaths = (styleUrls === null || styleUrls === void 0 ? void 0 : styleUrls.split(',')) || [];
16
+ return styleUrlPaths.map(styleUrlPath => (0, path_1.resolve)((0, path_1.dirname)(id), styleUrlPath));
17
+ }
18
+ return [];
19
+ }
20
+ exports.resolveStyleUrls = resolveStyleUrls;
21
+ function hasTemplateUrl(code) {
22
+ return templateUrlRE.test(code);
23
+ }
24
+ exports.hasTemplateUrl = hasTemplateUrl;
25
+ function resolveTemplateUrl(code, id) {
26
+ const templateUrlGroup = templateUrlRE.exec(code);
27
+ let templateUrlPath = '';
28
+ if (Array.isArray(templateUrlGroup) && templateUrlGroup[0]) {
29
+ const resolvedTemplatePath = templateUrlGroup[0].replace(/templateUrl|\s|'|"|\:|,/g, '');
30
+ templateUrlPath = (0, path_1.resolve)((0, path_1.dirname)(id), resolvedTemplatePath);
31
+ }
32
+ return templateUrlPath;
33
+ }
34
+ exports.resolveTemplateUrl = resolveTemplateUrl;
35
+ //# sourceMappingURL=component-resolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-resolvers.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/component-resolvers.ts"],"names":[],"mappings":";;;AAAA,+BAAwC;AAExC,MAAM,WAAW,GAAG,+BAA+B,CAAC;AACpD,MAAM,aAAa,GAAG,qCAAqC,CAAC;AAE5D,SAAgB,YAAY,CAAC,IAAY;IACvC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAFD,oCAEC;AAED,SAAgB,gBAAgB,CAAC,IAAY,EAAE,EAAU;IACvD,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;QACtD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE,CAAC;QAElD,OAAO,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;KAC9E;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAXD,4CAWC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAFD,wCAEC;AAED,SAAgB,kBAAkB,CAAC,IAAY,EAAE,EAAU;IACzD,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElD,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE;QAC1D,MAAM,oBAAoB,GAAG,gBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC1F,eAAe,GAAG,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC;KAC9D;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAVD,gDAUC"}