@analogjs/vite-plugin-angular 1.0.0-beta.2 → 1.0.0-beta.4

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.
Files changed (40) hide show
  1. package/package.json +4 -1
  2. package/setup-vitest.js +7 -2
  3. package/setup-vitest.js.map +1 -1
  4. package/src/index.d.ts +1 -0
  5. package/src/index.js +1 -0
  6. package/src/index.js.map +1 -1
  7. package/src/lib/angular-build-optimizer-plugin.js +48 -51
  8. package/src/lib/angular-build-optimizer-plugin.js.map +1 -1
  9. package/src/lib/angular-jit-plugin.js +14 -17
  10. package/src/lib/angular-jit-plugin.js.map +1 -1
  11. package/src/lib/angular-vite-plugin.d.ts +13 -2
  12. package/src/lib/angular-vite-plugin.js +311 -248
  13. package/src/lib/angular-vite-plugin.js.map +1 -1
  14. package/src/lib/angular-vitest-plugin.js +15 -18
  15. package/src/lib/angular-vitest-plugin.js.map +1 -1
  16. package/src/lib/authoring/analog.d.ts +1 -0
  17. package/src/lib/authoring/analog.js +373 -0
  18. package/src/lib/authoring/analog.js.map +1 -0
  19. package/src/lib/authoring/constants.d.ts +20 -0
  20. package/src/lib/authoring/constants.js +38 -0
  21. package/src/lib/authoring/constants.js.map +1 -0
  22. package/src/lib/authoring/frontmatter.d.ts +1 -0
  23. package/src/lib/authoring/frontmatter.js +10 -0
  24. package/src/lib/authoring/frontmatter.js.map +1 -0
  25. package/src/lib/authoring/marked-setup.service.d.ts +19 -0
  26. package/src/lib/authoring/marked-setup.service.js +91 -0
  27. package/src/lib/authoring/marked-setup.service.js.map +1 -0
  28. package/src/lib/compiler-plugin.js +12 -15
  29. package/src/lib/compiler-plugin.js.map +1 -1
  30. package/src/lib/component-resolvers.d.ts +2 -2
  31. package/src/lib/component-resolvers.js +35 -45
  32. package/src/lib/component-resolvers.js.map +1 -1
  33. package/src/lib/host.d.ts +4 -0
  34. package/src/lib/host.js +70 -21
  35. package/src/lib/host.js.map +1 -1
  36. package/src/lib/utils/devkit.js.map +1 -1
  37. package/src/lib/utils/source-file-cache.js +5 -3
  38. package/src/lib/utils/source-file-cache.js.map +1 -1
  39. package/vite.config.js +3 -1
  40. package/vite.config.js.map +1 -1
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Credit goes to Scully for original implementation
3
+ * https://github.com/scullyio/scully/blob/main/libs/scully/src/lib/fileHanderPlugins/markdown.ts
4
+ */
5
+ import { marked } from 'marked';
6
+ import { gfmHeadingId } from 'marked-gfm-heading-id';
7
+ import { markedHighlight } from 'marked-highlight';
8
+ import 'prismjs';
9
+ import 'prismjs/components/prism-bash.js';
10
+ import 'prismjs/components/prism-css.js';
11
+ import 'prismjs/components/prism-javascript.js';
12
+ import 'prismjs/components/prism-json.js';
13
+ import 'prismjs/components/prism-markup.js';
14
+ import 'prismjs/components/prism-typescript.js';
15
+ import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';
16
+ import 'prismjs/plugins/toolbar/prism-toolbar.js';
17
+ export class MarkedSetupService {
18
+ marked;
19
+ constructor() {
20
+ const renderer = new marked.Renderer();
21
+ renderer.code = (code, lang) => {
22
+ // Escape commonly used HTML characters
23
+ // in Angular templates that cause template parse errors
24
+ // such as @, {, and ,}.
25
+ code = code.replace(/@/g, '@');
26
+ if (code.includes('>{<') || code.includes('>}<')) {
27
+ code = code
28
+ .replace(/>\{</g, '>&#x2774;<')
29
+ .replace(/>\}</g, '>&#x2775;<');
30
+ }
31
+ // Let's do a language based detection like on GitHub
32
+ // So we can still have non-interpreted mermaid code
33
+ if (lang === 'mermaid') {
34
+ return '<pre class="mermaid">' + code + '</pre>';
35
+ }
36
+ if (!lang) {
37
+ return '<pre><code>' + code + '</code></pre>';
38
+ }
39
+ const classes = lang.startsWith('diff') && Prism.languages['diff']
40
+ ? `language-${lang} diff-highlight`
41
+ : `language-${lang.replace('diff-', '')}`;
42
+ return `<pre class="${classes}"><code class="${classes}">${code}</code></pre>`;
43
+ };
44
+ marked.use(gfmHeadingId(), markedHighlight({
45
+ async: true,
46
+ highlight: (code, lang) => {
47
+ let diff = lang?.startsWith('diff-');
48
+ lang = diff ? lang.replace('diff-', '') : lang || 'typescript';
49
+ if (diff && !Prism.languages['diff']) {
50
+ diff = false;
51
+ console.warn(`Notice:
52
+ ---------------------------------------------------------------------------------------
53
+ The \`diff\` language and plugin are not available in the provided setup.
54
+ To enable it, add the following imports your \`main.ts\`:
55
+ import 'prismjs/components/prism-diff';
56
+ import 'prismjs/plugins/diff-highlight/prism-diff-highlight';
57
+ ---------------------------------------------------------------------------------------
58
+ `);
59
+ }
60
+ if (!Prism.languages[lang]) {
61
+ if (lang !== 'mermaid') {
62
+ console.warn(`Notice:
63
+ ---------------------------------------------------------------------------------------
64
+ The requested language '${lang}' is not available in the provided setup.
65
+ To enable it, add the following import your \`main.ts\`:
66
+ import 'prismjs/components/prism-${lang}';
67
+ ---------------------------------------------------------------------------------------
68
+ `);
69
+ }
70
+ return code;
71
+ }
72
+ return Prism.highlight(code, diff ? Prism.languages['diff'] : Prism.languages[lang], lang);
73
+ },
74
+ }), {
75
+ async: false,
76
+ renderer,
77
+ pedantic: false,
78
+ gfm: true,
79
+ breaks: false,
80
+ sanitize: false,
81
+ smartypants: false,
82
+ xhtml: false,
83
+ mangle: false,
84
+ });
85
+ this.marked = marked;
86
+ }
87
+ getMarkedInstance() {
88
+ return this.marked;
89
+ }
90
+ }
91
+ //# sourceMappingURL=marked-setup.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marked-setup.service.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/authoring/marked-setup.service.ts"],"names":[],"mappings":"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"}
@@ -5,25 +5,22 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
- import { __awaiter } from "tslib";
9
8
  import { JavaScriptTransformer, } from './utils/devkit.js';
10
9
  export function createCompilerPlugin(pluginOptions, isTest) {
11
- const javascriptTransformer = new JavaScriptTransformer(pluginOptions, 1);
10
+ const javascriptTransformer = new JavaScriptTransformer({ ...pluginOptions, jit: true }, 1);
12
11
  return {
13
12
  name: 'analogjs-angular-esbuild-deps-optimizer-plugin',
14
- setup(build) {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- if (!isTest) {
17
- build.onLoad({ filter: /\.[cm]?js$/ }, (args) => __awaiter(this, void 0, void 0, function* () {
18
- const contents = yield javascriptTransformer.transformFile(args.path);
19
- return {
20
- contents,
21
- loader: 'js',
22
- };
23
- }));
24
- }
25
- build.onEnd(() => javascriptTransformer.close());
26
- });
13
+ async setup(build) {
14
+ if (!isTest) {
15
+ build.onLoad({ filter: /\.[cm]?js$/ }, async (args) => {
16
+ const contents = await javascriptTransformer.transformFile(args.path);
17
+ return {
18
+ contents,
19
+ loader: 'js',
20
+ };
21
+ });
22
+ }
23
+ build.onEnd(() => javascriptTransformer.close());
27
24
  },
28
25
  };
29
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compiler-plugin.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/compiler-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;AAIH,OAAO,EAEL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,UAAU,oBAAoB,CAClC,aAAoC,EACpC,MAAe;IAEf,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO;QACL,IAAI,EAAE,gDAAgD;QAChD,KAAK,CAAC,KAAK;;gBACf,IAAI,CAAC,MAAM,EAAE;oBACX,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAO,IAAI,EAAE,EAAE;wBACpD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAEtE,OAAO;4BACL,QAAQ;4BACR,MAAM,EAAE,IAAI;yBACb,CAAC;oBACJ,CAAC,CAAA,CAAC,CAAC;iBACJ;gBAED,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC;SAAA;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"compiler-plugin.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/compiler-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAEL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,UAAU,oBAAoB,CAClC,aAAoC,EACpC,MAAe;IAEf,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CACrD,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,EAC/B,CAAC,CACF,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,gDAAgD;QACtD,KAAK,CAAC,KAAK,CAAC,KAAK;YACf,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBACpD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEtE,OAAO;wBACL,QAAQ;wBACR,MAAM,EAAE,IAAI;qBACb,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,9 +1,9 @@
1
- export declare function hasStyleUrls(code: string): boolean;
2
1
  export declare class StyleUrlsResolver {
3
2
  private readonly styleUrlsCache;
4
3
  resolve(code: string, id: string): string[];
5
4
  }
6
- export declare function hasTemplateUrl(code: string): boolean;
5
+ export declare function getStyleUrls(code: string): string[];
6
+ export declare function getTemplateUrls(code: string): string[];
7
7
  export declare class TemplateUrlsResolver {
8
8
  private readonly templateUrlsCache;
9
9
  resolve(code: string, id: string): string[];
@@ -1,24 +1,13 @@
1
1
  import { dirname, resolve } from 'path';
2
+ import { Project, SyntaxKind, } from 'ts-morph';
2
3
  import { normalizePath } from 'vite';
3
- const styleUrlsRE = /styleUrls\s*:\s*\[([^\[]*?)\]|styleUrl:\s*["'](.*?)["']/;
4
- const templateUrlRE = /templateUrl:\s*["'](.*?)["']/g;
5
- export function hasStyleUrls(code) {
6
- return styleUrlsRE.test(code);
7
- }
8
- const EMPTY_ARRAY = [];
9
4
  export class StyleUrlsResolver {
10
- constructor() {
11
- // These resolvers may be called multiple times during the same
12
- // compilation for the same files. Caching is required because these
13
- // resolvers use synchronous system calls to the filesystem, which can
14
- // degrade performance when running compilations for multiple files.
15
- this.styleUrlsCache = new Map();
16
- }
5
+ // These resolvers may be called multiple times during the same
6
+ // compilation for the same files. Caching is required because these
7
+ // resolvers use synchronous system calls to the filesystem, which can
8
+ // degrade performance when running compilations for multiple files.
9
+ styleUrlsCache = new Map();
17
10
  resolve(code, id) {
18
- const styleUrlsExecArray = styleUrlsRE.exec(code);
19
- if (styleUrlsExecArray === null) {
20
- return EMPTY_ARRAY;
21
- }
22
11
  // Given the code is the following:
23
12
  // @Component({
24
13
  // styleUrls: [
@@ -26,52 +15,53 @@ export class StyleUrlsResolver {
26
15
  // ]
27
16
  // })
28
17
  // The `matchedStyleUrls` would result in: `styleUrls: [\n './app.component.scss'\n ]`.
29
- const [matchedStyleUrls] = styleUrlsExecArray;
18
+ const matchedStyleUrls = getStyleUrls(code);
30
19
  const entry = this.styleUrlsCache.get(id);
31
20
  // We're using `matchedStyleUrls` as a key because the code may be changing continuously,
32
21
  // resulting in the resolver being called multiple times. While the code changes, the
33
22
  // `styleUrls` may remain constant, which means we should always return the previously
34
23
  // resolved style URLs.
35
- if ((entry === null || entry === void 0 ? void 0 : entry.matchedStyleUrls) === matchedStyleUrls) {
24
+ if (entry && entry.matchedStyleUrls === matchedStyleUrls) {
36
25
  return entry.styleUrls;
37
26
  }
38
- // The `styleUrls` property is an array, which means we may have a list of
39
- // CSS files provided there. Let `matchedStyleUrls` be equal to the following:
40
- // "styleUrls: [\n './app.component.scss',\n '../global.scss'\n ]"
41
- const styleUrlPaths = matchedStyleUrls
42
- .replace(/(styleUrls|\:|\s|\[|\]|"|')/g, '')
43
- .replace(/(styleUrl|:\s*["'](.*?)["'])/g, '')
44
- // The above replace will result in the following:
45
- // "./app.component.scss,../global.scss"
46
- .split(',');
47
- const styleUrls = styleUrlPaths.map((styleUrlPath) => {
27
+ const styleUrls = matchedStyleUrls.map((styleUrlPath) => {
48
28
  return `${styleUrlPath}|${normalizePath(resolve(dirname(id), styleUrlPath))}`;
49
29
  });
50
- this.styleUrlsCache.set(matchedStyleUrls, { styleUrls, matchedStyleUrls });
30
+ this.styleUrlsCache.set(id, { styleUrls, matchedStyleUrls });
51
31
  return styleUrls;
52
32
  }
53
33
  }
54
- export function hasTemplateUrl(code) {
55
- return code.includes('templateUrl:');
34
+ function getTextByProperty(name, properties) {
35
+ return properties
36
+ .filter((property) => property.getName() === name)
37
+ .map((property) => property.getInitializer()?.getText().replace(/['"]/g, ''))
38
+ .filter((url) => url !== undefined);
39
+ }
40
+ export function getStyleUrls(code) {
41
+ const project = new Project({ useInMemoryFileSystem: true });
42
+ const sourceFile = project.createSourceFile('cmp.ts', code);
43
+ const properties = sourceFile.getDescendantsOfKind(SyntaxKind.PropertyAssignment);
44
+ const styleUrl = getTextByProperty('styleUrl', properties);
45
+ const styleUrls = properties
46
+ .filter((property) => property.getName() === 'styleUrls')
47
+ .map((property) => property.getInitializer())
48
+ .flatMap((array) => array.getElements().map((el) => el.getText().replace(/['"]/g, '')));
49
+ return [...styleUrls, ...styleUrl];
50
+ }
51
+ export function getTemplateUrls(code) {
52
+ const project = new Project({ useInMemoryFileSystem: true });
53
+ const sourceFile = project.createSourceFile('cmp.ts', code);
54
+ const properties = sourceFile.getDescendantsOfKind(SyntaxKind.PropertyAssignment);
55
+ return getTextByProperty('templateUrl', properties);
56
56
  }
57
57
  export class TemplateUrlsResolver {
58
- constructor() {
59
- this.templateUrlsCache = new Map();
60
- }
58
+ templateUrlsCache = new Map();
61
59
  resolve(code, id) {
62
60
  const entry = this.templateUrlsCache.get(id);
63
- if ((entry === null || entry === void 0 ? void 0 : entry.code) === code) {
61
+ if (entry?.code === code) {
64
62
  return entry.templateUrlPaths;
65
63
  }
66
- const templateUrlGroup = Array.from(code.matchAll(templateUrlRE));
67
- const templateUrlPaths = [];
68
- if (Array.isArray(templateUrlGroup)) {
69
- templateUrlGroup.forEach((trg) => {
70
- const resolvedTemplatePath = trg[1].replace(/templateUrl|\s|'|"|\:|,/g, '');
71
- const templateUrlPath = normalizePath(resolve(dirname(id), resolvedTemplatePath).replace(/\\/g, '/'));
72
- templateUrlPaths.push(`${resolvedTemplatePath}|${templateUrlPath}`);
73
- });
74
- }
64
+ const templateUrlPaths = getTemplateUrls(code).map((url) => `${url}|${normalizePath(resolve(dirname(id), url).replace(/\\/g, '/'))}`);
75
65
  this.templateUrlsCache.set(id, { code, templateUrlPaths });
76
66
  return templateUrlPaths;
77
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"component-resolvers.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/component-resolvers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component-resolvers.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/component-resolvers.ts"],"names":[],"mappings":"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"}
package/src/lib/host.d.ts CHANGED
@@ -3,4 +3,8 @@ export declare function augmentHostWithResources(host: ts.CompilerHost, transfor
3
3
  ssr?: boolean;
4
4
  }) => ReturnType<any> | null, options?: {
5
5
  inlineStylesExtension?: string;
6
+ supportAnalogFormat?: boolean | {
7
+ include: string[];
8
+ };
9
+ isProd?: boolean;
6
10
  }): void;
package/src/lib/host.js CHANGED
@@ -1,36 +1,85 @@
1
- import { __awaiter } from "tslib";
2
1
  import { normalizePath } from '@ngtools/webpack/src/ivy/paths.js';
2
+ import { readFileSync } from 'node:fs';
3
+ import { compileAnalogFile } from './authoring/analog.js';
4
+ import { TEMPLATE_TAG_REGEX } from './authoring/constants.js';
5
+ import { createRequire } from 'node:module';
6
+ const require = createRequire(import.meta.url);
3
7
  export function augmentHostWithResources(host, transform, options = {}) {
8
+ const ts = require('typescript');
4
9
  const resourceHost = host;
5
- resourceHost.readResource = function (fileName) {
10
+ const baseGetSourceFile = resourceHost.getSourceFile.bind(resourceHost);
11
+ if (options.supportAnalogFormat) {
12
+ resourceHost.getSourceFile = (fileName, languageVersionOrOptions, onError, ...parameters) => {
13
+ if (fileName.includes('.analog') || fileName.includes('.agx.ts')) {
14
+ const contents = readFileSync(fileName.replace('.analog.ts', '.analog').replace('.agx.ts', '.agx'), 'utf-8');
15
+ const source = compileAnalogFile(fileName, contents, options.isProd);
16
+ return ts.createSourceFile(fileName, source, languageVersionOrOptions, onError, ...parameters);
17
+ }
18
+ return baseGetSourceFile.call(resourceHost, fileName, languageVersionOrOptions, onError, ...parameters);
19
+ };
20
+ const baseReadFile = resourceHost.readFile;
21
+ resourceHost.readFile = function (fileName) {
22
+ if (fileName.includes('virtual-analog:')) {
23
+ const filePath = fileName.split('virtual-analog:')[1];
24
+ const fileContent = baseReadFile.call(resourceHost, filePath) ||
25
+ 'No Analog Markdown Content Found';
26
+ // eslint-disable-next-line prefer-const
27
+ const templateContent = TEMPLATE_TAG_REGEX.exec(fileContent)?.pop()?.trim() || '';
28
+ return templateContent;
29
+ }
30
+ return baseReadFile.call(resourceHost, fileName);
31
+ };
32
+ const fileExists = resourceHost.fileExists;
33
+ resourceHost.fileExists = function (fileName) {
34
+ if (fileName.includes('virtual-analog:') &&
35
+ !fileName.endsWith('analog.d')) {
36
+ return true;
37
+ }
38
+ return fileExists.call(resourceHost, fileName);
39
+ };
40
+ }
41
+ resourceHost.readResource = async function (fileName) {
6
42
  const filePath = normalizePath(fileName);
7
43
  const content = this.readFile(filePath);
8
44
  if (content === undefined) {
9
45
  throw new Error('Unable to locate component resource: ' + fileName);
10
46
  }
47
+ if (fileName.includes('virtual-analog:')) {
48
+ const { MarkedSetupService } = await import('./authoring/marked-setup.service.js');
49
+ // read template sections, parse markdown
50
+ const markedSetupService = new MarkedSetupService();
51
+ const mdContent = markedSetupService
52
+ .getMarkedInstance()
53
+ .parse(content);
54
+ return mdContent;
55
+ }
11
56
  return content;
12
57
  };
13
- resourceHost.transformResource = function (data, context) {
14
- var _a;
15
- return __awaiter(this, void 0, void 0, function* () {
16
- // Only style resources are supported currently
17
- if (context.type !== 'style') {
18
- return null;
58
+ resourceHost.transformResource = async function (data, context) {
59
+ // Only style resources are supported currently
60
+ if (context.type !== 'style') {
61
+ return null;
62
+ }
63
+ if (options.inlineStylesExtension) {
64
+ // Resource file only exists for external stylesheets
65
+ const filename = context.resourceFile ??
66
+ `${context.containingFile.replace(/(\.analog)?\.ts$/, (...args) => {
67
+ // NOTE: if the original file name contains `.analog`, we turn that into `-analog.css`
68
+ if (args.includes('.analog') || args.includes('.agx')) {
69
+ return `-analog.${options?.inlineStylesExtension}`;
70
+ }
71
+ return `.${options?.inlineStylesExtension}`;
72
+ })}`;
73
+ let stylesheetResult;
74
+ try {
75
+ stylesheetResult = await transform(data, `${filename}?direct`);
19
76
  }
20
- if (options.inlineStylesExtension) {
21
- // Resource file only exists for external stylesheets
22
- const filename = (_a = context.resourceFile) !== null && _a !== void 0 ? _a : `${context.containingFile.replace(/\.ts$/, `.${options === null || options === void 0 ? void 0 : options.inlineStylesExtension}`)}`;
23
- let stylesheetResult;
24
- try {
25
- stylesheetResult = yield transform(data, `${filename}?direct`);
26
- }
27
- catch (e) {
28
- console.error(`${e}`);
29
- }
30
- return { content: (stylesheetResult === null || stylesheetResult === void 0 ? void 0 : stylesheetResult.code) || '' };
77
+ catch (e) {
78
+ console.error(`${e}`);
31
79
  }
32
- return null;
33
- });
80
+ return { content: stylesheetResult?.code || '' };
81
+ }
82
+ return null;
34
83
  };
35
84
  }
36
85
  //# sourceMappingURL=host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/host.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,MAAM,UAAU,wBAAwB,CACtC,IAAqB,EACrB,SAI2B,EAC3B,UAEI,EAAE;IAEN,MAAM,YAAY,GAAG,IAAoB,CAAC;IAE1C,YAAY,CAAC,YAAY,GAAG,UAAU,QAAgB;QACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAI,IAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;SACrE;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,YAAY,CAAC,iBAAiB,GAAG,UAAgB,IAAI,EAAE,OAAO;;;YAC5D,+CAA+C;YAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACb;YAED,IAAI,OAAO,CAAC,qBAAqB,EAAE;gBACjC,qDAAqD;gBACrD,MAAM,QAAQ,GACZ,MAAA,OAAO,CAAC,YAAY,mCACpB,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAC/B,OAAO,EACP,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,qBAAqB,EAAE,CACrC,EAAE,CAAC;gBAEN,IAAI,gBAAgB,CAAC;gBAErB,IAAI;oBACF,gBAAgB,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,QAAQ,SAAS,CAAC,CAAC;iBAChE;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACvB;gBAED,OAAO,EAAE,OAAO,EAAE,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,KAAI,EAAE,EAAE,CAAC;aAClD;YAED,OAAO,IAAI,CAAC;;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/host.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"devkit.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/utils/devkit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iEAAiE,CAAC;AACvF,OAAO,KAAK,GAAG,MAAM,sEAAsE,CAAC;AAC5F,OAAO,KAAK,EAAE,MAAM,4EAA4E,CAAC;AACjG,OAAO,KAAK,GAAG,MAAM,wBAAwB,CAAC;AAE9C,IAAI,eAAyB,CAAC;AAC9B;;GAEG;AACH,IAAI,OAAQ,GAAW,CAAC,iBAAiB,CAAC,KAAK,WAAW,EAAE;IAC1D,eAAe,GAAI,GAAW,CAAC,eAAe,CAAC;CAChD;KAAM,IAAI,OAAQ,GAAW,CAAC,iBAAiB,CAAC,KAAK,WAAW,EAAE;IACjE,eAAe,GAAI,GAAW,CAAC,iBAAiB,CAAa,CAAC;CAC/D;AAED;;GAEG;AACH,IAAI,eAAoB,CAAC;AACzB,IAAI,OAAQ,EAAU,CAAC,iBAAiB,CAAC,KAAK,WAAW,EAAE;IACzD,eAAe,GAAI,EAAU,CAAC,eAAe,CAAC;CAC/C;KAAM;IACL,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;CACvC;AAED,MAAM,wBAAwB,GAAG,GAAG,CAAC,OAAO,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,qFAAqF,CAAC;AAEnI,OAAO,EAAE,qBAAqB,EAAE,MAAM,2EAA2E,CAAC;AAElH,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,4BAA4B,EAE5B,qBAAqB,EACrB,eAAe,IAAI,eAAe,GACnC,CAAC"}
1
+ {"version":3,"file":"devkit.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/utils/devkit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iEAAiE,CAAC;AACvF,OAAO,KAAK,GAAG,MAAM,sEAAsE,CAAC;AAC5F,OAAO,KAAK,EAAE,MAAM,4EAA4E,CAAC;AACjG,OAAO,KAAK,GAAG,MAAM,wBAAwB,CAAC;AAE9C,IAAI,eAAyB,CAAC;AAC9B;;GAEG;AACH,IAAI,OAAQ,GAAW,CAAC,iBAAiB,CAAC,KAAK,WAAW,EAAE,CAAC;IAC3D,eAAe,GAAI,GAAW,CAAC,eAAe,CAAC;AACjD,CAAC;KAAM,IAAI,OAAQ,GAAW,CAAC,iBAAiB,CAAC,KAAK,WAAW,EAAE,CAAC;IAClE,eAAe,GAAI,GAAW,CAAC,iBAAiB,CAAa,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,IAAI,eAAoB,CAAC;AACzB,IAAI,OAAQ,EAAU,CAAC,iBAAiB,CAAC,KAAK,WAAW,EAAE,CAAC;IAC1D,eAAe,GAAI,EAAU,CAAC,eAAe,CAAC;AAChD,CAAC;KAAM,CAAC;IACN,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;AACxC,CAAC;AAED,MAAM,wBAAwB,GAAG,GAAG,CAAC,OAAO,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,qFAAqF,CAAC;AAEnI,OAAO,EAAE,qBAAqB,EAAE,MAAM,2EAA2E,CAAC;AAElH,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,4BAA4B,EAE5B,qBAAqB,EACrB,eAAe,IAAI,eAAe,GACnC,CAAC"}
@@ -11,12 +11,14 @@ import { pathToFileURL } from 'node:url';
11
11
  const USING_WINDOWS = platform() === 'win32';
12
12
  const WINDOWS_SEP_REGEXP = new RegExp(`\\${path.win32.sep}`, 'g');
13
13
  export class SourceFileCache extends Map {
14
+ persistentCachePath;
15
+ modifiedFiles = new Set();
16
+ babelFileCache = new Map();
17
+ typeScriptFileCache = new Map();
18
+ referencedFiles;
14
19
  constructor(persistentCachePath) {
15
20
  super();
16
21
  this.persistentCachePath = persistentCachePath;
17
- this.modifiedFiles = new Set();
18
- this.babelFileCache = new Map();
19
- this.typeScriptFileCache = new Map();
20
22
  }
21
23
  invalidate(files) {
22
24
  if (files !== this.modifiedFiles) {
@@ -1 +1 @@
1
- {"version":3,"file":"source-file-cache.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/utils/source-file-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,aAAa,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC;AAC7C,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AAElE,MAAM,OAAO,eAAgB,SAAQ,GAA0B;IAO7D,YAAqB,mBAA4B;QAC/C,KAAK,EAAE,CAAC;QADW,wBAAmB,GAAnB,mBAAmB,CAAS;QANxC,kBAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,mBAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC/C,wBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAMtE,CAAC;IAED,UAAU,CAAC,KAAuB;QAChC,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC5B;QACD,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAE1D,+DAA+D;YAC/D,IAAI,aAAa,EAAE;gBACjB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACzD;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC9B;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"source-file-cache.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/utils/source-file-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,aAAa,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC;AAC7C,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AAElE,MAAM,OAAO,eAAgB,SAAQ,GAA0B;IAOxC;IANZ,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,cAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,mBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEtE,eAAe,CAAqB;IAEpC,YAAqB,mBAA4B;QAC/C,KAAK,EAAE,CAAC;QADW,wBAAmB,GAAnB,mBAAmB,CAAS;IAEjD,CAAC;IAED,UAAU,CAAC,KAAuB;QAChC,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QACD,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAE1D,+DAA+D;YAC/D,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1D,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF"}
package/vite.config.js CHANGED
@@ -3,13 +3,15 @@ import { defineConfig } from 'vite';
3
3
  // https://vitejs.dev/config/
4
4
  export default defineConfig(({ mode }) => {
5
5
  return {
6
+ root: __dirname,
6
7
  test: {
8
+ reporters: ['default'],
7
9
  globals: true,
8
10
  environment: 'node',
9
11
  setupFiles: ['src/test-setup.ts'],
10
12
  include: ['**/*.spec.ts'],
11
13
  cache: {
12
- dir: `../../node_modules/.vitest`,
14
+ dir: `../../node_modules/.vitest/vite-plugin-angular`,
13
15
  },
14
16
  },
15
17
  define: {
@@ -1 +1 @@
1
- {"version":3,"file":"vite.config.js","sourceRoot":"","sources":["../../../packages/vite-plugin-angular/vite.config.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpC,6BAA6B;AAC7B,eAAe,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACvC,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE,CAAC,mBAAmB,CAAC;YACjC,OAAO,EAAE,CAAC,cAAc,CAAC;YACzB,KAAK,EAAE;gBACL,GAAG,EAAE,4BAA4B;aAClC;SACF;QACD,MAAM,EAAE;YACN,oBAAoB,EAAE,IAAI,KAAK,YAAY;SAC5C;KACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"vite.config.js","sourceRoot":"","sources":["../../../packages/vite-plugin-angular/vite.config.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpC,6BAA6B;AAC7B,eAAe,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACvC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE,CAAC,mBAAmB,CAAC;YACjC,OAAO,EAAE,CAAC,cAAc,CAAC;YACzB,KAAK,EAAE;gBACL,GAAG,EAAE,gDAAgD;aACtD;SACF;QACD,MAAM,EAAE;YACN,oBAAoB,EAAE,IAAI,KAAK,YAAY;SAC5C;KACF,CAAC;AACJ,CAAC,CAAC,CAAC"}