@analogjs/platform 0.1.0-beta.2 → 0.1.0-beta.21
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 -2
- package/src/lib/build-server.d.ts +3 -0
- package/src/lib/build-server.js +23 -0
- package/src/lib/content-plugin.d.ts +12 -0
- package/src/lib/content-plugin.js +58 -0
- package/src/lib/nx-plugin/README.md +23 -0
- package/src/lib/nx-plugin/generators.json +19 -0
- package/src/lib/nx-plugin/package.json +13 -0
- package/src/lib/nx-plugin/src/generators/app/compat.d.ts +2 -0
- package/src/lib/nx-plugin/src/generators/app/compat.js +6 -0
- package/src/lib/nx-plugin/src/generators/app/compat.js.map +1 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/.eslintrc.json__template__ +36 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/index.html__template__ +15 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/app.component.spec.ts__template__ +17 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/app.component.ts__template__ +20 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/pages/index.page.ts__template__ +62 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/favicon.ico__template__ +0 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.providers.ts__template__ +5 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.server.ts__template__ +23 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.ts__template__ +10 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/.gitkeep__template__ +0 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/analog.svg__template__ +1 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/vite.svg__template__ +1 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/server/routes/v1/hello.ts__template__ +3 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/styles.css__template__ +75 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/test-setup.ts__template__ +12 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/vite-env.d.ts__template__ +1 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.app.json__template__ +16 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.editor.json__template__ +7 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.json__template__ +32 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.spec.json__template__ +15 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/vite.config.ts__template__ +64 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/.eslintrc.json__template__ +36 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/index.html__template__ +15 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app/app.component.spec.ts__template__ +17 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app/app.component.ts__template__ +20 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app/pages/index.page.ts__template__ +62 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/favicon.ico__template__ +0 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.providers.ts__template__ +5 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.server.ts__template__ +23 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.ts__template__ +10 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/public/assets/.gitkeep__template__ +0 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/public/assets/analog.svg__template__ +1 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/public/assets/vite.svg__template__ +1 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/server/routes/v1/hello.ts__template__ +3 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/styles.css__template__ +75 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/test-setup.ts__template__ +12 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/vite-env.d.ts__template__ +1 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.app.json__template__ +16 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.editor.json__template__ +7 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.json__template__ +32 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.spec.json__template__ +15 -0
- package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/vite.config.ts__template__ +64 -0
- package/src/lib/nx-plugin/src/generators/app/files/versions.d.ts +26 -0
- package/src/lib/nx-plugin/src/generators/app/files/versions.js +36 -0
- package/src/lib/nx-plugin/src/generators/app/files/versions.js.map +1 -0
- package/src/lib/nx-plugin/src/generators/app/generator.d.ts +10 -0
- package/src/lib/nx-plugin/src/generators/app/generator.js +83 -0
- package/src/lib/nx-plugin/src/generators/app/generator.js.map +1 -0
- package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.d.ts +2 -0
- package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.js +80 -0
- package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.js.map +1 -0
- package/src/lib/nx-plugin/src/generators/app/schema.d.ts +6 -0
- package/src/lib/nx-plugin/src/generators/app/schema.json +34 -0
- package/src/lib/nx-plugin/src/index.d.ts +0 -0
- package/src/lib/nx-plugin/src/index.js +1 -0
- package/src/lib/nx-plugin/src/index.js.map +1 -0
- package/src/lib/nx-plugin/src/utils/version-utils.d.ts +2 -0
- package/src/lib/nx-plugin/src/utils/version-utils.js +18 -0
- package/src/lib/nx-plugin/src/utils/version-utils.js.map +1 -0
- package/src/lib/options.d.ts +19 -0
- package/src/lib/platform-plugin.js +25 -4
- package/src/lib/router-plugin.d.ts +1 -1
- package/src/lib/router-plugin.js +17 -2
- package/src/lib/runtime/api-middleware.js +16 -0
- package/src/lib/runtime/renderer.js +19 -0
- package/src/lib/ssr/build.d.ts +3 -0
- package/src/lib/ssr/build.js +18 -0
- package/src/lib/ssr/dev-server-plugin.d.ts +7 -0
- package/src/lib/ssr/dev-server-plugin.js +90 -0
- package/src/lib/ssr/ssr-build-plugin.d.ts +2 -0
- package/src/lib/ssr/ssr-build-plugin.js +35 -0
- package/src/lib/vite-nitro-plugin.d.ts +2 -1
- package/src/lib/vite-nitro-plugin.js +76 -25
|
@@ -3,53 +3,104 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.viteNitroPlugin = void 0;
|
|
4
4
|
const load_esm_1 = require("@angular-devkit/build-angular/src/utils/load-esm");
|
|
5
5
|
const h3_1 = require("h3");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const build_server_1 = require("./build-server");
|
|
7
|
+
const build_1 = require("./ssr/build");
|
|
8
|
+
const vite_1 = require("vite");
|
|
9
|
+
function viteNitroPlugin(options, nitroOptions) {
|
|
10
|
+
const rootDir = nitroOptions?.rootDir || '.';
|
|
11
|
+
const isTest = process.env['NODE_ENV'] === 'test' || !!process.env['VITEST'];
|
|
12
|
+
const apiPrefix = `/${nitroOptions?.runtimeConfig?.['apiPrefix'] ?? 'api'}`;
|
|
13
|
+
let nitroConfig = {
|
|
14
|
+
rootDir,
|
|
15
|
+
logLevel: nitroOptions?.logLevel || 0,
|
|
16
|
+
srcDir: (0, vite_1.normalizePath)(`${rootDir}/src`),
|
|
17
|
+
scanDirs: [(0, vite_1.normalizePath)(`${rootDir}/src/server`)],
|
|
11
18
|
output: {
|
|
12
|
-
dir: '
|
|
13
|
-
|
|
19
|
+
dir: '../dist/analog',
|
|
20
|
+
publicDir: '../dist/analog/public',
|
|
21
|
+
...nitroOptions?.output,
|
|
14
22
|
},
|
|
15
|
-
buildDir: '
|
|
16
|
-
|
|
23
|
+
buildDir: './dist/.nitro',
|
|
24
|
+
typescript: {
|
|
25
|
+
generateTsConfig: false,
|
|
26
|
+
},
|
|
27
|
+
runtimeConfig: { ...nitroOptions?.runtimeConfig },
|
|
17
28
|
};
|
|
18
29
|
let isBuild = false;
|
|
19
30
|
let isServe = false;
|
|
20
|
-
let
|
|
31
|
+
let ssrBuild = false;
|
|
32
|
+
let config;
|
|
21
33
|
return {
|
|
22
|
-
name: 'vite-nitro-plugin',
|
|
23
|
-
config(_config, { command }) {
|
|
34
|
+
name: 'analogjs-vite-nitro-plugin',
|
|
35
|
+
async config(_config, { command }) {
|
|
24
36
|
isServe = command === 'serve';
|
|
25
37
|
isBuild = command === 'build';
|
|
38
|
+
ssrBuild = _config.build?.ssr === true;
|
|
39
|
+
config = _config;
|
|
40
|
+
if (isBuild && options?.prerender) {
|
|
41
|
+
nitroConfig.prerender = {};
|
|
42
|
+
nitroConfig.prerender.crawlLinks = options?.prerender?.discover;
|
|
43
|
+
const prerenderRoutes = options?.prerender?.routes;
|
|
44
|
+
if (Array.isArray(prerenderRoutes)) {
|
|
45
|
+
nitroConfig.prerender.routes = prerenderRoutes;
|
|
46
|
+
}
|
|
47
|
+
else if (typeof prerenderRoutes === 'function') {
|
|
48
|
+
nitroConfig.prerender.routes = await prerenderRoutes();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (isBuild && ssrBuild) {
|
|
52
|
+
nitroConfig = {
|
|
53
|
+
...nitroConfig,
|
|
54
|
+
publicAssets: [{ dir: `../dist/client` }],
|
|
55
|
+
serverAssets: [{ baseName: 'public', dir: `./dist/client` }],
|
|
56
|
+
externals: {
|
|
57
|
+
inline: ['zone.js/node'],
|
|
58
|
+
external: ['rxjs', 'node-fetch-native/dist/polyfill', 'destr'],
|
|
59
|
+
},
|
|
60
|
+
moduleSideEffects: ['zone.js/bundles/zone-node.umd.js'],
|
|
61
|
+
renderer: (0, vite_1.normalizePath)(`${__dirname}/runtime/renderer`),
|
|
62
|
+
handlers: [
|
|
63
|
+
{
|
|
64
|
+
handler: (0, vite_1.normalizePath)(`${__dirname}/runtime/api-middleware`),
|
|
65
|
+
middleware: true,
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
nitroConfig = {
|
|
71
|
+
...nitroConfig,
|
|
72
|
+
...nitroOptions,
|
|
73
|
+
};
|
|
26
74
|
},
|
|
27
75
|
async configureServer(viteServer) {
|
|
28
76
|
if (isServe && !isTest) {
|
|
29
77
|
const { createNitro, createDevServer, build, prepare } = await (0, load_esm_1.loadEsmModule)('nitropack');
|
|
30
|
-
const nitro = await createNitro({
|
|
78
|
+
const nitro = await createNitro({
|
|
79
|
+
dev: true,
|
|
80
|
+
...nitroConfig,
|
|
81
|
+
});
|
|
31
82
|
const server = createDevServer(nitro);
|
|
32
83
|
await prepare(nitro);
|
|
33
84
|
await build(nitro);
|
|
34
|
-
viteServer.middlewares.use(
|
|
35
|
-
console.log(`\n\nThe '@analogjs/platform' successfully started.\nThe server endpoints are accessible under the "
|
|
85
|
+
viteServer.middlewares.use(apiPrefix, (0, h3_1.toNodeListener)(server.app));
|
|
86
|
+
console.log(`\n\nThe '@analogjs/platform' successfully started.\nThe server endpoints are accessible under the "${apiPrefix}" path.`);
|
|
36
87
|
}
|
|
37
88
|
},
|
|
38
89
|
async closeBundle() {
|
|
90
|
+
if (ssrBuild) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
39
93
|
if (isBuild) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
await prepare(nitro);
|
|
47
|
-
await build(nitro);
|
|
48
|
-
await nitro.close();
|
|
94
|
+
if (options?.ssr) {
|
|
95
|
+
console.log('Building SSR application...');
|
|
96
|
+
await (0, build_1.buildSSRApp)(config, options);
|
|
97
|
+
}
|
|
98
|
+
console.log('Building Server...');
|
|
99
|
+
await (0, build_server_1.buildServer)(options, nitroConfig);
|
|
49
100
|
console.log(`\n\nThe '@analogjs/platform' server has been successfully built.`);
|
|
50
101
|
}
|
|
51
102
|
},
|
|
52
103
|
};
|
|
53
104
|
}
|
|
54
105
|
exports.viteNitroPlugin = viteNitroPlugin;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS1uaXRyby1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL3ZpdGUtbml0cm8tcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtFQUFpRjtBQUVqRiwyQkFBb0M7QUFHcEMsaURBQTZDO0FBQzdDLHVDQUEwQztBQUMxQywrQkFBcUM7QUFFckMsU0FBZ0IsZUFBZSxDQUM3QixPQUFpQixFQUNqQixZQUEwQjtJQUUxQixNQUFNLE9BQU8sR0FBRyxZQUFZLEVBQUUsT0FBTyxJQUFJLEdBQUcsQ0FBQztJQUM3QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RSxNQUFNLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxhQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUU1RSxJQUFJLFdBQVcsR0FBZ0I7UUFDN0IsT0FBTztRQUNQLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxJQUFJLENBQUM7UUFDckMsTUFBTSxFQUFFLElBQUEsb0JBQWEsRUFBQyxHQUFHLE9BQU8sTUFBTSxDQUFDO1FBQ3ZDLFFBQVEsRUFBRSxDQUFDLElBQUEsb0JBQWEsRUFBQyxHQUFHLE9BQU8sYUFBYSxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFO1lBQ04sR0FBRyxFQUFFLGdCQUFnQjtZQUNyQixTQUFTLEVBQUUsdUJBQXVCO1lBQ2xDLEdBQUcsWUFBWSxFQUFFLE1BQU07U0FDeEI7UUFDRCxRQUFRLEVBQUUsZUFBZTtRQUN6QixVQUFVLEVBQUU7WUFDVixnQkFBZ0IsRUFBRSxLQUFLO1NBQ3hCO1FBQ0QsYUFBYSxFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsYUFBYSxFQUFFO0tB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
|