@analogjs/platform 1.6.4 → 1.7.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 +4 -3
- package/src/lib/content/prism/index.d.ts +0 -3
- package/src/lib/content/prism/index.js +1 -1
- package/src/lib/content/prism/options.d.ts +3 -0
- package/src/lib/content/prism/options.js +2 -0
- package/src/lib/content/shiki/index.d.ts +2 -9
- package/src/lib/content/shiki/index.js +1 -1
- package/src/lib/content/shiki/options.d.ts +9 -0
- package/src/lib/content/shiki/options.js +2 -0
- package/src/lib/content-plugin.d.ts +5 -4
- package/src/lib/content-plugin.js +75 -2
- package/src/lib/deps-plugin.d.ts +3 -0
- package/src/lib/deps-plugin.js +62 -0
- package/src/lib/options.d.ts +16 -0
- package/src/lib/platform-plugin.js +9 -3
- package/src/lib/router-plugin.d.ts +2 -1
- package/src/lib/router-plugin.js +64 -41
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analogjs/platform",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0-beta.2",
|
|
4
4
|
"description": "The fullstack meta-framework for Angular",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Brandon Roberts <robertsbt@gmail.com>",
|
|
@@ -25,8 +25,9 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"nitropack": "^2.9.0",
|
|
28
|
-
"@analogjs/vite-plugin-angular": "^1.
|
|
29
|
-
"@analogjs/vite-plugin-nitro": "^1.
|
|
28
|
+
"@analogjs/vite-plugin-angular": "^1.7.0-beta.2",
|
|
29
|
+
"@analogjs/vite-plugin-nitro": "^1.7.0-beta.2",
|
|
30
|
+
"vitefu": "^0.2.5"
|
|
30
31
|
},
|
|
31
32
|
"peerDependencies": {
|
|
32
33
|
"@nx/angular": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
@@ -3,4 +3,4 @@ export { PrismHighlighter };
|
|
|
3
3
|
export function getPrismHighlighter() {
|
|
4
4
|
return new PrismHighlighter();
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvcHJpc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLENBQUM7QUFFNUIsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztBQUNoQyxDQUFDIn0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvY29udGVudC9wcmlzbS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { WithShikiHighlighterOptions } from './options.js';
|
|
2
|
+
import { ShikiHighlighter } from './shiki-highlighter.js';
|
|
3
3
|
export { ShikiHighlighter };
|
|
4
|
-
export interface WithShikiHighlighterOptions {
|
|
5
|
-
highlighter?: Partial<ShikiHighlighterOptions> & {
|
|
6
|
-
additionalLangs?: BundledLanguage[];
|
|
7
|
-
};
|
|
8
|
-
highlight?: ShikiHighlightOptions;
|
|
9
|
-
container?: string;
|
|
10
|
-
}
|
|
11
4
|
export declare function getShikiHighlighter({ highlighter, highlight, container, }?: WithShikiHighlighterOptions): ShikiHighlighter;
|
|
@@ -21,4 +21,4 @@ export function getShikiHighlighter({ highlighter = {}, highlight = {}, containe
|
|
|
21
21
|
}
|
|
22
22
|
return new ShikiHighlighter(highlighter, highlight, container, !!highlighter.langs.includes('mermaid'));
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvc2hpa2kvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsR0FFakIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztBQUU1QixNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFDbEMsV0FBVyxHQUFHLEVBQUUsRUFDaEIsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsSUFBSSxNQUNlLEVBQUU7SUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFhLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixXQUFXLENBQUMsTUFBTSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxJQUFJLGdCQUFnQixDQUN6QixXQUFzQyxFQUN0QyxTQUFTLEVBQ1QsU0FBUyxFQUNULENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDeEMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ShikiHighlighterOptions, ShikiHighlightOptions } from './shiki-highlighter.js';
|
|
2
|
+
import { BundledLanguage } from 'shiki/langs';
|
|
3
|
+
export interface WithShikiHighlighterOptions {
|
|
4
|
+
highlighter?: Partial<ShikiHighlighterOptions> & {
|
|
5
|
+
additionalLangs?: BundledLanguage[];
|
|
6
|
+
};
|
|
7
|
+
highlight?: ShikiHighlightOptions;
|
|
8
|
+
container?: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvY29udGVudC9zaGlraS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Plugin } from 'vite';
|
|
2
|
-
import { WithShikiHighlighterOptions } from './content/shiki/
|
|
3
|
-
import { WithPrismHighlighterOptions } from './content/prism/
|
|
4
|
-
import { WithMarkedOptions } from './content/marked/index.js';
|
|
2
|
+
import type { WithShikiHighlighterOptions } from './content/shiki/options.js';
|
|
3
|
+
import type { WithPrismHighlighterOptions } from './content/prism/options.js';
|
|
4
|
+
import type { WithMarkedOptions } from './content/marked/index.js';
|
|
5
|
+
import type { Options } from './options.js';
|
|
5
6
|
export type ContentPluginOptions = {
|
|
6
7
|
highlighter?: 'shiki' | 'prism';
|
|
7
8
|
markedOptions?: WithMarkedOptions;
|
|
8
9
|
shikiOptions?: WithShikiHighlighterOptions;
|
|
9
10
|
prismOptions?: WithPrismHighlighterOptions;
|
|
10
11
|
};
|
|
11
|
-
export declare function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, }?: ContentPluginOptions): Plugin[];
|
|
12
|
+
export declare function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, }?: ContentPluginOptions, options?: Options): Plugin[];
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import { normalizePath } from 'vite';
|
|
1
2
|
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { resolve } from 'node:path';
|
|
4
|
+
import fg from 'fast-glob';
|
|
2
5
|
export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, } = {
|
|
3
6
|
highlighter: 'prism',
|
|
4
7
|
markedOptions: { mangle: true },
|
|
5
|
-
}) {
|
|
8
|
+
}, options) {
|
|
6
9
|
const cache = new Map();
|
|
7
10
|
let markedHighlighter;
|
|
11
|
+
const workspaceRoot = options?.workspaceRoot ?? process.cwd();
|
|
12
|
+
let config;
|
|
13
|
+
let root;
|
|
8
14
|
return [
|
|
9
15
|
{
|
|
10
16
|
name: 'analogjs-content-frontmatter',
|
|
@@ -83,6 +89,73 @@ export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismO
|
|
|
83
89
|
return `export default ${JSON.stringify(`---\n${frontmatter}\n---\n\n${mdContent}`)}`;
|
|
84
90
|
},
|
|
85
91
|
},
|
|
92
|
+
{
|
|
93
|
+
name: 'analog-content-glob-routes',
|
|
94
|
+
config(_config) {
|
|
95
|
+
config = _config;
|
|
96
|
+
root = resolve(workspaceRoot, config.root || '.') || '.';
|
|
97
|
+
},
|
|
98
|
+
transform(code, id) {
|
|
99
|
+
if (code.includes('ANALOG_CONTENT_FILE_LIST') &&
|
|
100
|
+
code.includes('ANALOG_AGX_FILES') &&
|
|
101
|
+
id.includes('analogjs')) {
|
|
102
|
+
const contentFilesList = fg.sync([
|
|
103
|
+
`${root}/src/content/**/*.md`,
|
|
104
|
+
`${root}/src/content/**/*.agx`,
|
|
105
|
+
...(options?.additionalContentDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.{md,agx}`),
|
|
106
|
+
], { dot: true });
|
|
107
|
+
const eagerImports = [];
|
|
108
|
+
contentFilesList.forEach((module, index) => {
|
|
109
|
+
eagerImports.push(`import { default as analog_module_${index} } from "${module}?analog-content-list=true";`);
|
|
110
|
+
});
|
|
111
|
+
let result = code.replace('let ANALOG_CONTENT_FILE_LIST = {};', `
|
|
112
|
+
let ANALOG_CONTENT_FILE_LIST = {${contentFilesList.map((module, index) => `"${module.replace(root, '')}": analog_module_${index}`)}};
|
|
113
|
+
`);
|
|
114
|
+
const agxFiles = fg.sync([
|
|
115
|
+
`${root}/src/content/**/*.agx`,
|
|
116
|
+
...(options?.additionalContentDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.agx`),
|
|
117
|
+
], {
|
|
118
|
+
dot: true,
|
|
119
|
+
});
|
|
120
|
+
result = result.replace('let ANALOG_AGX_FILES = {};', `
|
|
121
|
+
let ANALOG_AGX_FILES = {${agxFiles.map((module) => `"${module.replace(root, '')}": () => import('${module}')`)}};
|
|
122
|
+
`);
|
|
123
|
+
if (!code.includes('analog_module_')) {
|
|
124
|
+
result = `${eagerImports.join('\n')}\n${result}`;
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
code: result,
|
|
128
|
+
map: null,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return;
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: 'analogjs-invalidate-content-dirs',
|
|
136
|
+
configureServer(server) {
|
|
137
|
+
function invalidateContent(path) {
|
|
138
|
+
if (path.includes(normalizePath(`/src/content/`))) {
|
|
139
|
+
server.moduleGraph.fileToModulesMap.forEach((mods) => {
|
|
140
|
+
mods.forEach((mod) => {
|
|
141
|
+
if (mod.id?.includes('analogjs') &&
|
|
142
|
+
mod.id?.includes('content')) {
|
|
143
|
+
server.moduleGraph.invalidateModule(mod);
|
|
144
|
+
mod.importers.forEach((imp) => {
|
|
145
|
+
server.moduleGraph.invalidateModule(imp);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
server.ws.send({
|
|
151
|
+
type: 'full-reload',
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
server.watcher.on('add', invalidateContent);
|
|
156
|
+
server.watcher.on('unlink', invalidateContent);
|
|
157
|
+
},
|
|
158
|
+
},
|
|
86
159
|
];
|
|
87
160
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFvQjNCLE1BQU0sVUFBVSxhQUFhLENBQzNCLEVBQ0UsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxNQUNZO0lBQ3hCLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Q0FDaEMsRUFDRCxPQUFpQjtJQUVqQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUV6QyxJQUFJLGlCQUEyQyxDQUFDO0lBQ2hELE1BQU0sYUFBYSxHQUFHLE9BQU8sRUFBRSxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzlELElBQUksTUFBa0IsQ0FBQztJQUN2QixJQUFJLElBQVksQ0FBQztJQUVqQixPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsOEJBQThCO1lBQ3BDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3RCLDhEQUE4RDtnQkFDOUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDO29CQUM3QyxPQUFPO2dCQUNULENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMseUVBQXlFO2dCQUN6RSw4RUFBOEU7Z0JBQzlFLDhF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
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { VERSION } from '@angular/compiler-cli';
|
|
2
|
+
import { crawlFrameworkPkgs } from 'vitefu';
|
|
3
|
+
import { relative } from 'node:path';
|
|
4
|
+
export function depsPlugin(options) {
|
|
5
|
+
const workspaceRoot = options?.workspaceRoot ?? process.cwd();
|
|
6
|
+
return [
|
|
7
|
+
{
|
|
8
|
+
name: 'analogjs-deps-plugin',
|
|
9
|
+
config() {
|
|
10
|
+
return {
|
|
11
|
+
ssr: {
|
|
12
|
+
noExternal: ['@analogjs/**', 'firebase/**', 'firebase-admin/**'],
|
|
13
|
+
},
|
|
14
|
+
optimizeDeps: {
|
|
15
|
+
include: [
|
|
16
|
+
'@angular/common',
|
|
17
|
+
'@angular/common/http',
|
|
18
|
+
...(Number(VERSION.major) > 15
|
|
19
|
+
? ['@angular/core/rxjs-interop']
|
|
20
|
+
: []),
|
|
21
|
+
],
|
|
22
|
+
exclude: [
|
|
23
|
+
'@angular/platform-server',
|
|
24
|
+
'@analogjs/content',
|
|
25
|
+
'@analogjs/router',
|
|
26
|
+
'@nx/angular',
|
|
27
|
+
'@nx/vite',
|
|
28
|
+
'@nx/devkit',
|
|
29
|
+
'@nx/js',
|
|
30
|
+
'@nx/devkit',
|
|
31
|
+
'@nx/cypress',
|
|
32
|
+
'@nx/jest',
|
|
33
|
+
'@nx/js',
|
|
34
|
+
'@nx/eslint',
|
|
35
|
+
'@nx/webpack',
|
|
36
|
+
'@nx/web',
|
|
37
|
+
'@nx/workspace',
|
|
38
|
+
'@nx/eslint',
|
|
39
|
+
'webpack',
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'analogjs-auto-discover-deps',
|
|
47
|
+
async config(config, { command }) {
|
|
48
|
+
const root = relative(workspaceRoot, config.root || '.') || '.';
|
|
49
|
+
const pkgConfig = await crawlFrameworkPkgs({
|
|
50
|
+
root,
|
|
51
|
+
isBuild: command === 'build',
|
|
52
|
+
viteUserConfig: config,
|
|
53
|
+
isSemiFrameworkPkgByJson(pkgJson) {
|
|
54
|
+
return pkgJson['module'] && pkgJson['module'].includes('fesm');
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
return pkgConfig;
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcy1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2RlcHMtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlyQyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQWlCO0lBQzFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sRUFBRSxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRTlELE9BQU87UUFDTDtZQUNFLElBQUksRUFBRSxzQkFBc0I7WUFDNUIsTUFBTTtnQkFDSixPQUFPO29CQUNMLEdBQUcsRUFBRTt3QkFDSCxVQUFVLEVBQUUsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDO3FCQUNqRTtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osT0FBTyxFQUFFOzRCQUNQLGlCQUFpQjs0QkFDakIsc0JBQXNCOzRCQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO2dDQUM1QixDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztnQ0FDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt5QkFDUjt3QkFDRCxPQUFPLEVBQUU7NEJBQ1AsMEJBQTBCOzRCQUMxQixtQkFBbUI7NEJBQ25CLGtCQUFrQjs0QkFDbEIsYUFBYTs0QkFDYixVQUFVOzRCQUNWLFlBQVk7NEJBQ1osUUFBUTs0QkFDUixZQUFZOzRCQUNaLGFBQWE7NEJBQ2IsVUFBVTs0QkFDVixRQUFROzRCQUNSLFlBQVk7NEJBQ1osYUFBYTs0QkFDYixTQUFTOzRCQUNULGVBQWU7NEJBQ2YsWUFBWTs0QkFDWixTQUFTO3lCQUNWO3FCQUNGO2lCQUNGLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSw2QkFBNkI7WUFDbkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUU7Z0JBQzlCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBRWhFLE1BQU0sU0FBUyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7b0JBQ3pDLElBQUk7b0JBQ0osT0FBTyxFQUFFLE9BQU8sS0FBSyxPQUFPO29CQUM1QixjQUFjLEVBQUUsTUFBTTtvQkFDdEIsd0JBQXdCLENBQUMsT0FBTzt3QkFDOUIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakUsQ0FBQztpQkFDRixDQUFDLENBQUM7Z0JBRUgsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
|
package/src/lib/options.d.ts
CHANGED
|
@@ -31,6 +31,22 @@ export interface Options {
|
|
|
31
31
|
index?: string;
|
|
32
32
|
workspaceRoot?: string;
|
|
33
33
|
content?: ContentPluginOptions;
|
|
34
|
+
/**
|
|
35
|
+
* Additional page paths to include
|
|
36
|
+
*/
|
|
37
|
+
additionalPagesDirs?: string[];
|
|
38
|
+
/**
|
|
39
|
+
* Additional page paths to include
|
|
40
|
+
*/
|
|
41
|
+
additionalContentDirs?: string[];
|
|
42
|
+
/**
|
|
43
|
+
* Additional API paths to include
|
|
44
|
+
*/
|
|
45
|
+
additionalAPIDirs?: string[];
|
|
46
|
+
/**
|
|
47
|
+
* Additional files to include in compilation
|
|
48
|
+
*/
|
|
49
|
+
include?: string[];
|
|
34
50
|
}
|
|
35
51
|
export interface PrerenderContentDir {
|
|
36
52
|
/**
|
|
@@ -5,6 +5,7 @@ import { ssrBuildPlugin } from './ssr/ssr-build-plugin.js';
|
|
|
5
5
|
import { contentPlugin } from './content-plugin.js';
|
|
6
6
|
import { clearClientPageEndpointsPlugin } from './clear-client-page-endpoint.js';
|
|
7
7
|
import { ssrXhrBuildPlugin } from './ssr/ssr-xhr-plugin.js';
|
|
8
|
+
import { depsPlugin } from './deps-plugin.js';
|
|
8
9
|
export function platformPlugin(opts = {}) {
|
|
9
10
|
const { apiPrefix, ...platformOptions } = {
|
|
10
11
|
ssr: true,
|
|
@@ -22,15 +23,20 @@ export function platformPlugin(opts = {}) {
|
|
|
22
23
|
return [
|
|
23
24
|
...viteNitroPlugin(platformOptions, nitroOptions),
|
|
24
25
|
(platformOptions.ssr ? ssrBuildPlugin() : false),
|
|
25
|
-
...
|
|
26
|
-
...
|
|
26
|
+
...depsPlugin(),
|
|
27
|
+
...routerPlugin(platformOptions),
|
|
28
|
+
...contentPlugin(platformOptions?.content, platformOptions),
|
|
27
29
|
...angular({
|
|
28
30
|
jit: platformOptions.jit,
|
|
29
31
|
workspaceRoot: platformOptions.workspaceRoot,
|
|
32
|
+
include: [
|
|
33
|
+
...(platformOptions.include ?? []),
|
|
34
|
+
...(platformOptions.additionalPagesDirs ?? []).map((pageDir) => `${pageDir}/**/*.page.ts`),
|
|
35
|
+
],
|
|
30
36
|
...(opts?.vite ?? {}),
|
|
31
37
|
}),
|
|
32
38
|
ssrXhrBuildPlugin(),
|
|
33
39
|
clearClientPageEndpointsPlugin(),
|
|
34
40
|
];
|
|
35
41
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRTtJQUMvQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUc7UUFDeEMsR0FBRyxFQUFFLElBQUk7UUFDVCxHQUFHLElBQUk7S0FDUixDQUFDO0lBRUYsSUFBSSxZQUFZLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQztJQUMxQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsWUFBWSxHQUFHO1lBQ2IsR0FBRyxZQUFZO1lBQ2YsYUFBYSxFQUFFO2dCQUNiLFNBQVM7YUFDVjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDakQsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFXO1FBQzFELEdBQUcsVUFBVSxFQUFFO1FBQ2YsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ2hDLEdBQUcsYUFBYSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDO1FBQzNELEdBQUcsT0FBTyxDQUFDO1lBQ1QsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO1lBQ3hCLGFBQWEsRUFBRSxlQUFlLENBQUMsYUFBYTtZQUM1QyxPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUNsQyxHQUFHLENBQUMsZUFBZSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDaEQsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxlQUFlLENBQ3ZDO2FBQ0Y7WUFDRCxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7U0FDdEIsQ0FBQztRQUNGLGlCQUFpQixFQUFFO1FBQ25CLDhCQUE4QixFQUFFO0tBQ2pDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Plugin } from 'vite';
|
|
2
|
+
import { Options } from './options.js';
|
|
2
3
|
/**
|
|
3
4
|
* This plugin invalidates the files for routes when new files
|
|
4
5
|
* are added/deleted.
|
|
@@ -7,4 +8,4 @@ import { Plugin } from 'vite';
|
|
|
7
8
|
*
|
|
8
9
|
* @returns
|
|
9
10
|
*/
|
|
10
|
-
export declare function routerPlugin(): Plugin[];
|
|
11
|
+
export declare function routerPlugin(options?: Options): Plugin[];
|
package/src/lib/router-plugin.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { VERSION } from '@angular/compiler-cli';
|
|
2
1
|
import { normalizePath } from 'vite';
|
|
2
|
+
import fg from 'fast-glob';
|
|
3
|
+
import { resolve } from 'node:path';
|
|
3
4
|
/**
|
|
4
5
|
* This plugin invalidates the files for routes when new files
|
|
5
6
|
* are added/deleted.
|
|
@@ -8,51 +9,17 @@ import { normalizePath } from 'vite';
|
|
|
8
9
|
*
|
|
9
10
|
* @returns
|
|
10
11
|
*/
|
|
11
|
-
export function routerPlugin() {
|
|
12
|
+
export function routerPlugin(options) {
|
|
13
|
+
const workspaceRoot = options?.workspaceRoot ?? process.cwd();
|
|
14
|
+
let config;
|
|
15
|
+
let root;
|
|
12
16
|
return [
|
|
13
|
-
{
|
|
14
|
-
name: 'analogjs-router-plugin',
|
|
15
|
-
config() {
|
|
16
|
-
return {
|
|
17
|
-
ssr: {
|
|
18
|
-
noExternal: [
|
|
19
|
-
'@analogjs/**',
|
|
20
|
-
'@analogjs/trpc/**',
|
|
21
|
-
'@angular/**',
|
|
22
|
-
'@angular/cdk/**',
|
|
23
|
-
'@angular/fire/**',
|
|
24
|
-
'@ngrx/**',
|
|
25
|
-
'@rx-angular/**',
|
|
26
|
-
'@ng-bootstrap/**',
|
|
27
|
-
'@ngneat/**',
|
|
28
|
-
'apollo-angular/**',
|
|
29
|
-
'primeng/**',
|
|
30
|
-
'rxfire/**',
|
|
31
|
-
'@tanstack/**',
|
|
32
|
-
'ngxtension/**',
|
|
33
|
-
'firebase/**',
|
|
34
|
-
'firebase-admin/**',
|
|
35
|
-
],
|
|
36
|
-
},
|
|
37
|
-
optimizeDeps: {
|
|
38
|
-
include: [
|
|
39
|
-
'@angular/common',
|
|
40
|
-
'@angular/common/http',
|
|
41
|
-
...(Number(VERSION.major) > 15
|
|
42
|
-
? ['@angular/core/rxjs-interop']
|
|
43
|
-
: []),
|
|
44
|
-
],
|
|
45
|
-
exclude: ['@angular/platform-server', '@analogjs/router'],
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
17
|
{
|
|
51
18
|
name: 'analogjs-router-invalidate-routes',
|
|
52
19
|
configureServer(server) {
|
|
53
20
|
function invalidateRoutes(path) {
|
|
54
21
|
if (path.includes(normalizePath(`/app/routes/`)) ||
|
|
55
|
-
path.includes(normalizePath(`/
|
|
22
|
+
path.includes(normalizePath(`/pages/`))) {
|
|
56
23
|
server.moduleGraph.fileToModulesMap.forEach((mods) => {
|
|
57
24
|
mods.forEach((mod) => {
|
|
58
25
|
if (mod.id?.includes('analogjs') &&
|
|
@@ -73,6 +40,62 @@ export function routerPlugin() {
|
|
|
73
40
|
server.watcher.on('unlink', invalidateRoutes);
|
|
74
41
|
},
|
|
75
42
|
},
|
|
43
|
+
{
|
|
44
|
+
name: 'analog-glob-routes',
|
|
45
|
+
config(_config) {
|
|
46
|
+
config = _config;
|
|
47
|
+
root = resolve(workspaceRoot, config.root || '.') || '.';
|
|
48
|
+
},
|
|
49
|
+
transform(code, id) {
|
|
50
|
+
if ((code.includes('ANALOG_ROUTE_FILES') ||
|
|
51
|
+
code.includes('ANALOG_CONTENT_ROUTE_FILES')) &&
|
|
52
|
+
id.includes('analogjs')) {
|
|
53
|
+
const routeFiles = fg.sync([
|
|
54
|
+
`${root}/app/routes/**/*.ts`,
|
|
55
|
+
`${root}/src/app/routes/**/*.ts`,
|
|
56
|
+
`${root}/src/app/pages/**/*.page.ts`,
|
|
57
|
+
`${root}/src/app/pages/**/*.page.analog`,
|
|
58
|
+
...(options?.additionalPagesDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.page.ts`),
|
|
59
|
+
], { dot: true });
|
|
60
|
+
const contentRouteFiles = fg.sync([
|
|
61
|
+
`${root}/src/app/routes/**/*.md`,
|
|
62
|
+
`${root}/src/app/pages/**/*.md`,
|
|
63
|
+
`${root}/src/content/**/*.md`,
|
|
64
|
+
...(options?.additionalContentDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.md`),
|
|
65
|
+
], { dot: true });
|
|
66
|
+
let result = code.replace('let ANALOG_ROUTE_FILES = {};', `
|
|
67
|
+
let ANALOG_ROUTE_FILES = {${routeFiles.map((module) => `"${module.replace(root, '')}": () => import('${module}')`)}};
|
|
68
|
+
`);
|
|
69
|
+
result = result.replace('let ANALOG_CONTENT_ROUTE_FILES = {};', `
|
|
70
|
+
let ANALOG_CONTENT_ROUTE_FILES = {${contentRouteFiles.map((module) => `"${module.replace(root, '')}": () => import('${module}?analog-content-file=true').then(m => m.default)`)}};
|
|
71
|
+
`);
|
|
72
|
+
return {
|
|
73
|
+
code: result,
|
|
74
|
+
map: null,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'analog-glob-endpoints',
|
|
82
|
+
transform(code, id) {
|
|
83
|
+
if (code.includes('PAGE_ENDPOINTS') && id.includes('analogjs')) {
|
|
84
|
+
const endpointFiles = fg.sync([
|
|
85
|
+
`${root}/src/app/pages/**/*.server.ts`,
|
|
86
|
+
...(options?.additionalPagesDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.server.ts`),
|
|
87
|
+
], { dot: true });
|
|
88
|
+
const result = code.replace('let PAGE_ENDPOINTS = {};', `
|
|
89
|
+
let PAGE_ENDPOINTS = {${endpointFiles.map((module) => `"${module.replace(root, '')}": () => import('${module}')`)}};
|
|
90
|
+
`);
|
|
91
|
+
return {
|
|
92
|
+
code: result,
|
|
93
|
+
map: null,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return;
|
|
97
|
+
},
|
|
98
|
+
},
|
|
76
99
|
];
|
|
77
100
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlwQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFpQjtJQUM1QyxNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5RCxJQUFJLE1BQWtCLENBQUM7SUFDdkIsSUFBSSxJQUFZLENBQUM7SUFFakIsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLG1DQUFtQztZQUN6QyxlQUFlLENBQUMsTUFBTTtnQkFDcEIsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFZO29CQUNwQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN2QyxDQUFDO3dCQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7NEJBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQ0FDbkIsSUFDRSxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUM7b0NBQzVCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUMxQixDQUFDO29DQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFD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
|