@analogjs/platform 2.0.0-beta.2 → 2.0.0-beta.20
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 +5 -5
- package/src/lib/content-plugin.d.ts +11 -1
- package/src/lib/content-plugin.js +38 -9
- package/src/lib/nx-plugin/src/generators/app/files/template-angular/src/app/app.config.ts__template__ +0 -6
- package/src/lib/nx-plugin/src/generators/app/files/template-angular/vite.config.ts__template__ +0 -8
- package/src/lib/nx-plugin/src/generators/app/generator.js +0 -12
- package/src/lib/nx-plugin/src/generators/app/generator.js.map +1 -1
- package/src/lib/nx-plugin/src/generators/app/lib/add-home-page.js +0 -3
- package/src/lib/nx-plugin/src/generators/app/lib/add-home-page.js.map +1 -1
- package/src/lib/nx-plugin/src/generators/app/schema.d.ts +0 -1
- package/src/lib/nx-plugin/src/generators/app/schema.json +0 -6
- package/src/lib/nx-plugin/src/generators/app/versions/minimum-supported-versions.d.ts +0 -1
- package/src/lib/nx-plugin/src/generators/app/versions/minimum-supported-versions.js +1 -3
- package/src/lib/nx-plugin/src/generators/app/versions/minimum-supported-versions.js.map +1 -1
- package/src/lib/nx-plugin/src/generators/app/versions/nx_18_X/versions.d.ts +5 -5
- package/src/lib/nx-plugin/src/generators/app/versions/nx_18_X/versions.js +5 -5
- package/src/lib/nx-plugin/src/generators/app/versions/nx_18_X/versions.js.map +1 -1
- package/src/lib/nx-plugin/src/generators/preset/schema.d.ts +0 -1
- package/src/lib/nx-plugin/src/generators/preset/schema.json +0 -6
- package/src/lib/nx-plugin/src/utils/versions/ng_19_X/versions.d.ts +5 -5
- package/src/lib/nx-plugin/src/utils/versions/ng_19_X/versions.js +5 -5
- package/src/lib/nx-plugin/src/utils/versions/ng_19_X/versions.js.map +1 -1
- package/src/lib/router-plugin.d.ts +14 -4
- package/src/lib/router-plugin.js +69 -16
- package/src/lib/nx-plugin/src/generators/app/files/trpc/src/note.ts__template__ +0 -5
- package/src/lib/nx-plugin/src/generators/app/files/trpc/src/server/routes/api/trpc/[trpc].ts__template__ +0 -10
- package/src/lib/nx-plugin/src/generators/app/files/trpc/src/server/trpc/context.ts__template__ +0 -7
- package/src/lib/nx-plugin/src/generators/app/files/trpc/src/server/trpc/routers/index.ts__template__ +0 -8
- package/src/lib/nx-plugin/src/generators/app/files/trpc/src/server/trpc/routers/notes.ts__template__ +0 -32
- package/src/lib/nx-plugin/src/generators/app/files/trpc/src/server/trpc/trpc.ts__template__ +0 -13
- package/src/lib/nx-plugin/src/generators/app/files/trpc/src/trpc-client.ts__template__ +0 -15
- package/src/lib/nx-plugin/src/generators/app/files/welcome-components/css-trpc/src/app/pages/analog-welcome.component.ts__template__ +0 -439
- package/src/lib/nx-plugin/src/generators/app/files/welcome-components/tailwind-trpc/src/app/pages/analog-welcome.component.ts__template__ +0 -162
- package/src/lib/nx-plugin/src/generators/app/lib/add-trpc.d.ts +0 -3
- package/src/lib/nx-plugin/src/generators/app/lib/add-trpc.js +0 -16
- package/src/lib/nx-plugin/src/generators/app/lib/add-trpc.js.map +0 -1
- package/src/lib/nx-plugin/src/generators/app/versions/trpc-dependencies.d.ts +0 -4
- package/src/lib/nx-plugin/src/generators/app/versions/trpc-dependencies.js +0 -44
- package/src/lib/nx-plugin/src/generators/app/versions/trpc-dependencies.js.map +0 -1
package/src/lib/router-plugin.js
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import { normalizePath } from 'vite';
|
|
2
|
-
import
|
|
2
|
+
import { globSync } from 'tinyglobby';
|
|
3
3
|
import { resolve } from 'node:path';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* are added/deleted.
|
|
5
|
+
* Router plugin that handles route file discovery and hot module replacement.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
7
|
+
* This plugin provides three main functionalities:
|
|
8
|
+
* 1. Route invalidation when files are added/deleted (HMR workaround)
|
|
9
|
+
* 2. Dynamic route file discovery and import generation
|
|
10
|
+
* 3. Content route file discovery for markdown and Analog content
|
|
9
11
|
*
|
|
10
|
-
* @
|
|
12
|
+
* @param options Configuration options for the router plugin
|
|
13
|
+
* @returns Array of Vite plugins for route handling
|
|
14
|
+
*
|
|
15
|
+
* IMPORTANT: This plugin uses tinyglobby for file discovery.
|
|
16
|
+
* Key behavior with { dot: true, absolute: true }:
|
|
17
|
+
* - Returns absolute paths for ALL discovered files
|
|
18
|
+
* - Path normalization is required to match expected output format
|
|
19
|
+
* - Files within project root must use relative paths in object keys
|
|
20
|
+
* - Files outside project root keep absolute paths in object keys
|
|
11
21
|
*/
|
|
12
22
|
export function routerPlugin(options) {
|
|
13
23
|
const workspaceRoot = normalizePath(options?.workspaceRoot ?? process.cwd());
|
|
@@ -17,6 +27,12 @@ export function routerPlugin(options) {
|
|
|
17
27
|
{
|
|
18
28
|
name: 'analogjs-router-invalidate-routes',
|
|
19
29
|
configureServer(server) {
|
|
30
|
+
/**
|
|
31
|
+
* Invalidates route modules when files are added or deleted.
|
|
32
|
+
* This is a workaround for Vite's HMR limitations with dynamic imports.
|
|
33
|
+
*
|
|
34
|
+
* @param path The file path that was added or deleted
|
|
35
|
+
*/
|
|
20
36
|
function invalidateRoutes(path) {
|
|
21
37
|
if (path.includes(`routes`) ||
|
|
22
38
|
path.includes(`pages`) ||
|
|
@@ -46,26 +62,49 @@ export function routerPlugin(options) {
|
|
|
46
62
|
config = _config;
|
|
47
63
|
root = normalizePath(resolve(workspaceRoot, config.root || '.') || '.');
|
|
48
64
|
},
|
|
65
|
+
/**
|
|
66
|
+
* Transforms code to replace ANALOG_ROUTE_FILES and ANALOG_CONTENT_ROUTE_FILES
|
|
67
|
+
* placeholders with actual dynamic imports of discovered route and content files.
|
|
68
|
+
*
|
|
69
|
+
* @param code The source code to transform
|
|
70
|
+
* @returns Transformed code with dynamic imports or undefined if no transformation needed
|
|
71
|
+
*/
|
|
49
72
|
transform(code) {
|
|
50
73
|
if (code.includes('ANALOG_ROUTE_FILES') ||
|
|
51
74
|
code.includes('ANALOG_CONTENT_ROUTE_FILES')) {
|
|
52
|
-
|
|
75
|
+
// Discover route files using tinyglobby
|
|
76
|
+
// NOTE: { absolute: true } returns absolute paths for ALL files
|
|
77
|
+
const routeFiles = globSync([
|
|
53
78
|
`${root}/app/routes/**/*.ts`,
|
|
54
79
|
`${root}/src/app/routes/**/*.ts`,
|
|
55
80
|
`${root}/src/app/pages/**/*.page.ts`,
|
|
56
81
|
...(options?.additionalPagesDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.page.ts`),
|
|
57
|
-
], { dot: true });
|
|
58
|
-
|
|
82
|
+
], { dot: true, absolute: true });
|
|
83
|
+
// Discover content files using tinyglobby
|
|
84
|
+
const contentRouteFiles = globSync([
|
|
59
85
|
`${root}/src/app/routes/**/*.md`,
|
|
60
86
|
`${root}/src/app/pages/**/*.md`,
|
|
61
87
|
`${root}/src/content/**/*.md`,
|
|
62
88
|
...(options?.additionalContentDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.md`),
|
|
63
|
-
], { dot: true });
|
|
89
|
+
], { dot: true, absolute: true });
|
|
64
90
|
let result = code.replace('ANALOG_ROUTE_FILES = {};', `
|
|
65
|
-
ANALOG_ROUTE_FILES = {${routeFiles.map((module) =>
|
|
91
|
+
ANALOG_ROUTE_FILES = {${routeFiles.map((module) => {
|
|
92
|
+
// CRITICAL: tinyglobby returns absolute paths, but we need relative paths for project files
|
|
93
|
+
// to match expected output format. Library files keep absolute paths.
|
|
94
|
+
const key = module.startsWith(root)
|
|
95
|
+
? module.replace(root, '')
|
|
96
|
+
: module;
|
|
97
|
+
return `"${key}": () => import('${module}')`;
|
|
98
|
+
})}};
|
|
66
99
|
`);
|
|
67
100
|
result = result.replace('ANALOG_CONTENT_ROUTE_FILES = {};', `
|
|
68
|
-
ANALOG_CONTENT_ROUTE_FILES = {${contentRouteFiles.map((module) =>
|
|
101
|
+
ANALOG_CONTENT_ROUTE_FILES = {${contentRouteFiles.map((module) => {
|
|
102
|
+
// Same path normalization as route files
|
|
103
|
+
const key = module.startsWith(root)
|
|
104
|
+
? module.replace(root, '')
|
|
105
|
+
: module;
|
|
106
|
+
return `"${key}": () => import('${module}?analog-content-file=true').then(m => m.default)`;
|
|
107
|
+
})}};
|
|
69
108
|
`);
|
|
70
109
|
return {
|
|
71
110
|
code: result,
|
|
@@ -77,14 +116,28 @@ export function routerPlugin(options) {
|
|
|
77
116
|
},
|
|
78
117
|
{
|
|
79
118
|
name: 'analog-glob-endpoints',
|
|
119
|
+
/**
|
|
120
|
+
* Transforms code to replace ANALOG_PAGE_ENDPOINTS placeholder
|
|
121
|
+
* with actual dynamic imports of discovered server endpoint files.
|
|
122
|
+
*
|
|
123
|
+
* @param code The source code to transform
|
|
124
|
+
* @returns Transformed code with dynamic imports or undefined if no transformation needed
|
|
125
|
+
*/
|
|
80
126
|
transform(code) {
|
|
81
127
|
if (code.includes('ANALOG_PAGE_ENDPOINTS')) {
|
|
82
|
-
|
|
128
|
+
// Discover server endpoint files using tinyglobby
|
|
129
|
+
const endpointFiles = globSync([
|
|
83
130
|
`${root}/src/app/pages/**/*.server.ts`,
|
|
84
|
-
...(options?.additionalPagesDirs || [])
|
|
85
|
-
], { dot: true });
|
|
131
|
+
...(options?.additionalPagesDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.server.ts`),
|
|
132
|
+
], { dot: true, absolute: true });
|
|
86
133
|
const result = code.replace('ANALOG_PAGE_ENDPOINTS = {};', `
|
|
87
|
-
ANALOG_PAGE_ENDPOINTS = {${endpointFiles.map((module) =>
|
|
134
|
+
ANALOG_PAGE_ENDPOINTS = {${endpointFiles.map((module) => {
|
|
135
|
+
// Same path normalization for consistency
|
|
136
|
+
const key = module.startsWith(root)
|
|
137
|
+
? module.replace(root, '')
|
|
138
|
+
: module;
|
|
139
|
+
return `"${key}": () => import('${module}')`;
|
|
140
|
+
})}};
|
|
88
141
|
`);
|
|
89
142
|
return {
|
|
90
143
|
code: result,
|
|
@@ -96,4 +149,4 @@ export function routerPlugin(options) {
|
|
|
96
149
|
},
|
|
97
150
|
];
|
|
98
151
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFpQjtJQUM1QyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3RSxJQUFJLE1BQWtCLENBQUM7SUFDdkIsSUFBSSxJQUFZLENBQUM7SUFFakIsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLG1DQUFtQztZQUN6QyxlQUFlLENBQUMsTUFBTTtnQkFDcEI7Ozs7O21CQUtHO2dCQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBWTtvQkFDcEMsSUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQ3hCLENBQUM7d0JBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTs0QkFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dDQUNuQixJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxF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
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { createTrpcNitroHandler } from '@analogjs/trpc/server';
|
|
2
|
-
|
|
3
|
-
import { appRouter } from '../../../trpc/routers';
|
|
4
|
-
import { createContext } from '../../../trpc/context';
|
|
5
|
-
|
|
6
|
-
// export API handler
|
|
7
|
-
export default createTrpcNitroHandler({
|
|
8
|
-
router: appRouter,
|
|
9
|
-
createContext,
|
|
10
|
-
});
|
package/src/lib/nx-plugin/src/generators/app/files/trpc/src/server/trpc/routers/notes.ts__template__
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { publicProcedure, router } from '../trpc';
|
|
3
|
-
import { Note } from '../../../note';
|
|
4
|
-
|
|
5
|
-
let noteId = 0;
|
|
6
|
-
const notes: Note[] = [];
|
|
7
|
-
export const noteRouter = router({
|
|
8
|
-
create: publicProcedure
|
|
9
|
-
.input(
|
|
10
|
-
z.object({
|
|
11
|
-
note: z.string(),
|
|
12
|
-
})
|
|
13
|
-
)
|
|
14
|
-
.mutation(({ input }) =>
|
|
15
|
-
notes.push({
|
|
16
|
-
id: noteId++,
|
|
17
|
-
note: input.note,
|
|
18
|
-
createdAt: new Date().toISOString(),
|
|
19
|
-
})
|
|
20
|
-
),
|
|
21
|
-
list: publicProcedure.query(() => notes),
|
|
22
|
-
remove: publicProcedure
|
|
23
|
-
.input(
|
|
24
|
-
z.object({
|
|
25
|
-
id: z.number(),
|
|
26
|
-
})
|
|
27
|
-
)
|
|
28
|
-
.mutation(({ input }) => {
|
|
29
|
-
const index = notes.findIndex((note) => input.id === note.id);
|
|
30
|
-
notes.splice(index, 1);
|
|
31
|
-
}),
|
|
32
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { initTRPC } from '@trpc/server';
|
|
2
|
-
import { Context } from './context';
|
|
3
|
-
import { SuperJSON } from 'superjson';
|
|
4
|
-
|
|
5
|
-
const t = initTRPC.context<Context>().create({
|
|
6
|
-
transformer: SuperJSON,
|
|
7
|
-
});
|
|
8
|
-
/**
|
|
9
|
-
* Unprotected procedure
|
|
10
|
-
**/
|
|
11
|
-
export const publicProcedure = t.procedure;
|
|
12
|
-
export const router = t.router;
|
|
13
|
-
export const middleware = t.middleware;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AppRouter } from './server/trpc/routers';
|
|
2
|
-
import { createTrpcClient } from '@analogjs/trpc';
|
|
3
|
-
import { inject } from '@angular/core';
|
|
4
|
-
import { SuperJSON } from 'superjson';
|
|
5
|
-
|
|
6
|
-
export const { provideTrpcClient, TrpcClient } = createTrpcClient<AppRouter>({
|
|
7
|
-
url: '/api/trpc',
|
|
8
|
-
options: {
|
|
9
|
-
transformer: SuperJSON,
|
|
10
|
-
},
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
export function injectTrpcClient() {
|
|
14
|
-
return inject(TrpcClient);
|
|
15
|
-
}
|