@analogjs/vite-plugin-nitro 0.2.0-beta.2 → 0.2.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.
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {}
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/vite-plugin-nitro",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.21",
4
4
  "type": "commonjs",
5
5
  "description": "A Vite plugin for adding a nitro API server",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -24,7 +24,19 @@
24
24
  "url": "https://github.com/analogjs/analog.git"
25
25
  },
26
26
  "dependencies": {
27
- "nitropack": "^1.0.0"
27
+ "nitropack": "^2.0.0"
28
+ },
29
+ "ng-update": {
30
+ "packageGroup": [
31
+ "@analogjs/astro-angular",
32
+ "@analogjs/platform",
33
+ "@analogjs/content",
34
+ "@analogjs/router",
35
+ "@analogjs/trpc",
36
+ "@analogjs/vite-plugin-angular",
37
+ "@analogjs/vite-plugin-nitro"
38
+ ],
39
+ "migrations": "./migrations/migration.json"
28
40
  },
29
41
  "main": "./src/index.js",
30
42
  "types": "./src/index.d.ts"
@@ -6,7 +6,7 @@ const load_esm_1 = require("@angular-devkit/build-angular/src/utils/load-esm");
6
6
  function buildServer(options, nitroConfig) {
7
7
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
8
  const { createNitro, build, prepare, copyPublicAssets, prerender } = yield (0, load_esm_1.loadEsmModule)('nitropack');
9
- const nitro = yield createNitro(Object.assign({ dev: false }, nitroConfig));
9
+ const nitro = yield createNitro(Object.assign({ dev: false, preset: process.env['BUILD_PRESET'] }, nitroConfig));
10
10
  yield prepare(nitro);
11
11
  yield copyPublicAssets(nitro);
12
12
  if (options === null || options === void 0 ? void 0 : options.static) {
@@ -1 +1 @@
1
- {"version":3,"file":"build-server.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/build-server.ts"],"names":[],"mappings":";;;;AAAA,+EAAiF;AAIjF,SAAsB,WAAW,CAC/B,OAAiB,EACjB,WAAyB;;QAEzB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAChE,MAAM,IAAA,wBAAa,EAA6B,WAAW,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,MAAM,WAAW,iBAC7B,GAAG,EAAE,KAAK,IACP,WAAW,EACd,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;SAC7C;QAED,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QAEvB,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;YACpB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;QAED,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CAAA;AAzBD,kCAyBC"}
1
+ {"version":3,"file":"build-server.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/build-server.ts"],"names":[],"mappings":";;;;AAAA,+EAAiF;AAIjF,SAAsB,WAAW,CAC/B,OAAiB,EACjB,WAAyB;;QAEzB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAChE,MAAM,IAAA,wBAAa,EAA6B,WAAW,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,MAAM,WAAW,iBAC7B,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAChC,WAAW,EACd,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;SAC7C;QAED,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QAEvB,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;YACpB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;QAED,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CAAA;AA1BD,kCA0BC"}
@@ -3,15 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildSSRApp = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const vite_1 = require("vite");
6
+ const path = require("path");
6
7
  function buildSSRApp(config, options) {
7
8
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
9
  const ssrBuildConfig = (0, vite_1.mergeConfig)(config, {
9
10
  build: {
10
11
  ssr: true,
11
12
  rollupOptions: {
12
- input: (options === null || options === void 0 ? void 0 : options.entryServer) || './src/main.server.ts',
13
+ input: (options === null || options === void 0 ? void 0 : options.entryServer) ||
14
+ path.resolve(config.root, './src/main.server.ts'),
13
15
  },
14
- outDir: (options === null || options === void 0 ? void 0 : options.ssrBuildDir) || './dist/ssr',
16
+ outDir: (options === null || options === void 0 ? void 0 : options.ssrBuildDir) || path.resolve('dist', config.root, 'ssr'),
15
17
  },
16
18
  });
17
19
  yield (0, vite_1.build)(ssrBuildConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"build-ssr.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/build-ssr.ts"],"names":[],"mappings":";;;;AAAA,+BAAsD;AAGtD,SAAsB,WAAW,CAAC,MAAkB,EAAE,OAAiB;;QACrE,MAAM,cAAc,GAAG,IAAA,kBAAW,EAAC,MAAM,EAAE;YACzC,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI;gBACT,aAAa,EAAE;oBACb,KAAK,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,sBAAsB;iBACtD;gBACD,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,YAAY;aAC7C;SACF,CAAC,CAAC;QAEH,MAAM,IAAA,YAAK,EAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;CAAA;AAZD,kCAYC"}
1
+ {"version":3,"file":"build-ssr.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/build-ssr.ts"],"names":[],"mappings":";;;;AAAA,+BAAsD;AAEtD,6BAA6B;AAE7B,SAAsB,WAAW,CAAC,MAAkB,EAAE,OAAiB;;QACrE,MAAM,cAAc,GAAG,IAAA,kBAAW,EAAC,MAAM,EAAE;YACzC,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI;gBACT,aAAa,EAAE;oBACb,KAAK,EACH,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;wBACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAK,EAAE,sBAAsB,CAAC;iBACrD;gBACD,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAK,EAAE,KAAK,CAAC;aAC1E;SACF,CAAC,CAAC;QAEH,MAAM,IAAA,YAAK,EAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;CAAA;AAdD,kCAcC"}
@@ -0,0 +1,7 @@
1
+ export declare function pageEndpointsPlugin(): {
2
+ name: string;
3
+ transform(code: string, id: string): {
4
+ code: string;
5
+ map: null;
6
+ } | undefined;
7
+ };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pageEndpointsPlugin = void 0;
4
+ const vite_1 = require("vite");
5
+ function pageEndpointsPlugin() {
6
+ return {
7
+ name: 'analogjs-vite-plugin-nitro-rollup-page-endpoint',
8
+ transform(code, id) {
9
+ if (id.includes((0, vite_1.normalizePath)('src/app/pages')) &&
10
+ id.endsWith('.server.ts')) {
11
+ return {
12
+ code: `
13
+ import { defineEventHandler } from 'h3';
14
+
15
+ ${code}
16
+
17
+ export default defineEventHandler(async(event) => {
18
+ try {
19
+ return await load({
20
+ params: event.context.params,
21
+ req: event.node.req,
22
+ res: event.node.res,
23
+ fetch: $fetch
24
+ });
25
+ } catch(e) {
26
+ console.error(\` An error occurred: \$\{e\}\`)
27
+ throw e;
28
+ }
29
+ });
30
+ `,
31
+ map: null,
32
+ };
33
+ }
34
+ return;
35
+ },
36
+ };
37
+ }
38
+ exports.pageEndpointsPlugin = pageEndpointsPlugin;
39
+ //# sourceMappingURL=page-endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-endpoints.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-nitro/src/lib/plugins/page-endpoints.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AAErC,SAAgB,mBAAmB;IACjC,OAAO;QACL,IAAI,EAAE,iDAAiD;QACvD,SAAS,CAAC,IAAY,EAAE,EAAU;YAChC,IACE,EAAE,CAAC,QAAQ,CAAC,IAAA,oBAAa,EAAC,eAAe,CAAC,CAAC;gBAC3C,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EACzB;gBACA,OAAO;oBACL,IAAI,EAAE;;;cAGF,IAAI;;;;;;;;;;;;;;;WAeP;oBACD,GAAG,EAAE,IAAI;iBACV,CAAC;aACH;YAED,OAAO;QACT,CAAC;KACF,CAAC;AACJ,CAAC;AAnCD,kDAmCC"}
@@ -6,11 +6,19 @@
6
6
  * The package is shipped as commonjs
7
7
  * which won't be parsed by Nitro correctly.
8
8
  */
9
- import { eventHandler } from 'h3';
9
+ import { eventHandler, proxyRequest } from 'h3';
10
10
 
11
11
  export default eventHandler(async (event) => {
12
12
  const apiPrefix = `/${import.meta.env.RUNTIME_CONFIG?.apiPrefix ?? 'api'}`;
13
- if (event.req.url?.startsWith(apiPrefix)) {
14
- return $fetch(`${event.req.url?.replace(apiPrefix, '')}`);
13
+ if (event.node.req.url?.startsWith(apiPrefix)) {
14
+ const reqUrl = event.node.req.url?.replace(apiPrefix, '');
15
+
16
+ if (event.node.req.method === 'GET') {
17
+ return $fetch(reqUrl);
18
+ }
19
+
20
+ return proxyRequest(event, reqUrl, {
21
+ fetch: $fetch.native,
22
+ });
15
23
  }
16
24
  });
@@ -0,0 +1,7 @@
1
+ import { NitroEventHandler } from 'nitropack';
2
+ type GetHandlersArgs = {
3
+ workspaceRoot: string;
4
+ rootDir: string;
5
+ };
6
+ export declare function getPageHandlers({ workspaceRoot, rootDir }: GetHandlersArgs): NitroEventHandler[];
7
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPageHandlers = void 0;
4
+ const path = require("path");
5
+ function getPageHandlers({ workspaceRoot, rootDir }) {
6
+ const fg = require('fast-glob');
7
+ const root = path.resolve(workspaceRoot, rootDir);
8
+ const endpointFiles = fg.sync([`${root}/src/app/pages/**/*.server.ts`], { dot: true });
9
+ const handlers = endpointFiles.map((endpointFile) => {
10
+ const route = endpointFile
11
+ .replace(path.resolve(workspaceRoot, rootDir, 'src/app'), '')
12
+ .replace(/\.server\.ts$/, '')
13
+ .replace(/\[\.{3}]/g, '**')
14
+ .replace(/\[\.{3}(\w+)]/g, '**:$1')
15
+ .replace(/\/\((.*?)\)$/, '/-$1-')
16
+ .replace(/\[(\w+)]/g, ':$1')
17
+ .replace(/\./g, '/');
18
+ return {
19
+ handler: endpointFile,
20
+ route: `/_analog${route}`,
21
+ lazy: true,
22
+ };
23
+ });
24
+ return handlers;
25
+ }
26
+ exports.getPageHandlers = getPageHandlers;
27
+ //# sourceMappingURL=get-page-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-page-handlers.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-nitro/src/lib/utils/get-page-handlers.ts"],"names":[],"mappings":";;;AACA,6BAA6B;AAO7B,SAAgB,eAAe,CAAC,EAAE,aAAa,EAAE,OAAO,EAAmB;IACzE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,aAAa,GAAa,EAAE,CAAC,IAAI,CACrC,CAAC,GAAG,IAAI,+BAA+B,CAAC,EACxC,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;IAEF,MAAM,QAAQ,GAAwB,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QACvE,MAAM,KAAK,GAAG,YAAY;aACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;aAC5D,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;aAC1B,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC;aAClC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;aAChC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;aAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEvB,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,WAAW,KAAK,EAAE;YACzB,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AA3BD,0CA2BC"}
@@ -0,0 +1,14 @@
1
+ import { NitroConfig } from 'nitropack';
2
+ import { Plugin } from 'vite';
3
+ import { Mock } from 'vitest';
4
+ export declare const mockViteDevServer: {
5
+ middlewares: {
6
+ use: () => void;
7
+ };
8
+ };
9
+ export declare const mockNitroConfig: NitroConfig;
10
+ export declare function mockBuildFunctions(): Promise<[
11
+ Mock<any, any>,
12
+ Mock<any, any>
13
+ ]>;
14
+ export declare function runConfigAndCloseBundle(plugin: Plugin): Promise<void>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runConfigAndCloseBundle = exports.mockBuildFunctions = exports.mockNitroConfig = exports.mockViteDevServer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const vitest_1 = require("vitest");
6
+ const path = require("path");
7
+ exports.mockViteDevServer = {
8
+ middlewares: {
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
10
+ use: () => { },
11
+ },
12
+ };
13
+ exports.mockNitroConfig = {
14
+ buildDir: path.resolve('./dist/.nitro'),
15
+ handlers: [],
16
+ logLevel: 0,
17
+ output: {
18
+ dir: path.resolve('dist/analog'),
19
+ publicDir: path.resolve('dist/analog/public'),
20
+ },
21
+ rootDir: '.',
22
+ runtimeConfig: {},
23
+ scanDirs: ['src/server'],
24
+ srcDir: 'src/server',
25
+ prerender: {
26
+ crawlLinks: undefined,
27
+ },
28
+ typescript: {
29
+ generateTsConfig: false,
30
+ },
31
+ rollupConfig: {
32
+ plugins: [
33
+ {
34
+ name: 'analogjs-vite-plugin-nitro-rollup-page-endpoint',
35
+ transform() { },
36
+ },
37
+ ],
38
+ },
39
+ };
40
+ function mockBuildFunctions() {
41
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
42
+ const buildServerImport = yield Promise.resolve().then(() => require('./build-server'));
43
+ const buildServerImportSpy = vitest_1.vi.fn();
44
+ buildServerImport.buildServer = buildServerImportSpy;
45
+ const buildSSRAppImport = yield Promise.resolve().then(() => require('./build-ssr'));
46
+ const buildSSRAppImportSpy = vitest_1.vi.fn();
47
+ buildSSRAppImport.buildSSRApp = buildSSRAppImportSpy;
48
+ return [buildSSRAppImportSpy, buildServerImportSpy];
49
+ });
50
+ }
51
+ exports.mockBuildFunctions = mockBuildFunctions;
52
+ function runConfigAndCloseBundle(plugin) {
53
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
54
+ yield plugin.config({}, { command: 'build' });
55
+ yield plugin.closeBundle();
56
+ });
57
+ }
58
+ exports.runConfigAndCloseBundle = runConfigAndCloseBundle;
59
+ //# sourceMappingURL=vite-nitro-plugin.spec.data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-nitro-plugin.spec.data.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/vite-nitro-plugin.spec.data.ts"],"names":[],"mappings":";;;;AAEA,mCAAkC;AAClC,6BAA6B;AAEhB,QAAA,iBAAiB,GAAG;IAC/B,WAAW,EAAE;QACX,gEAAgE;QAChE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;KACd;CACF,CAAC;AAEW,QAAA,eAAe,GAAgB;IAC1C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;IACvC,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE;QACN,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QAChC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;KAC9C;IACD,OAAO,EAAE,GAAG;IACZ,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,CAAC,YAAY,CAAC;IACxB,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE;QACT,UAAU,EAAE,SAAS;KACtB;IACD,UAAU,EAAE;QACV,gBAAgB,EAAE,KAAK;KACxB;IACD,YAAY,EAAE;QACZ,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,iDAAiD;gBACvD,SAAS,KAAI,CAAC;aACf;SACF;KACF;CACF,CAAC;AAEF,SAAsB,kBAAkB;;QAItC,MAAM,iBAAiB,GAAG,2CAAa,gBAAgB,EAAC,CAAC;QACzD,MAAM,oBAAoB,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACrC,iBAAiB,CAAC,WAAW,GAAG,oBAAoB,CAAC;QAErD,MAAM,iBAAiB,GAAG,2CAAa,aAAa,EAAC,CAAC;QACtD,MAAM,oBAAoB,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACrC,iBAAiB,CAAC,WAAW,GAAG,oBAAoB,CAAC;QAErD,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IACtD,CAAC;CAAA;AAbD,gDAaC;AAED,SAAsB,uBAAuB,CAAC,MAAc;;QAC1D,MACE,MAAM,CAAC,MACR,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAe,CAAC,CAAC;QACzC,MAAO,MAAM,CAAC,WAAmC,EAAE,CAAC;IACtD,CAAC;CAAA;AALD,0DAKC"}
@@ -7,57 +7,96 @@ const h3_1 = require("h3");
7
7
  const build_server_1 = require("./build-server");
8
8
  const build_ssr_1 = require("./build-ssr");
9
9
  const vite_1 = require("vite");
10
+ const path = require("path");
11
+ const page_endpoints_1 = require("./plugins/page-endpoints");
12
+ const get_page_handlers_1 = require("./utils/get-page-handlers");
13
+ let clientOutputPath = '';
10
14
  function nitro(options, nitroOptions) {
11
15
  var _a, _b;
12
- const rootDir = (nitroOptions === null || nitroOptions === void 0 ? void 0 : nitroOptions.rootDir) || '.';
16
+ const workspaceRoot = process.cwd();
13
17
  const isTest = process.env['NODE_ENV'] === 'test' || !!process.env['VITEST'];
14
18
  const apiPrefix = `/${(_b = (_a = nitroOptions === null || nitroOptions === void 0 ? void 0 : nitroOptions.runtimeConfig) === null || _a === void 0 ? void 0 : _a['apiPrefix']) !== null && _b !== void 0 ? _b : 'api'}`;
15
- let nitroConfig = {
16
- rootDir,
17
- logLevel: (nitroOptions === null || nitroOptions === void 0 ? void 0 : nitroOptions.logLevel) || 0,
18
- srcDir: (0, vite_1.normalizePath)(`${rootDir}/src`),
19
- scanDirs: [(0, vite_1.normalizePath)(`${rootDir}/src/server`)],
20
- output: Object.assign({ dir: '../dist/analog', publicDir: '../dist/analog/public' }, nitroOptions === null || nitroOptions === void 0 ? void 0 : nitroOptions.output),
21
- buildDir: './dist/.nitro',
22
- typescript: {
23
- generateTsConfig: false,
24
- },
25
- runtimeConfig: Object.assign({}, nitroOptions === null || nitroOptions === void 0 ? void 0 : nitroOptions.runtimeConfig),
26
- };
27
19
  let isBuild = false;
28
20
  let isServe = false;
29
21
  let ssrBuild = false;
30
22
  let config;
23
+ let nitroConfig;
31
24
  return {
32
- name: 'analogjs-vite-nitro-plugin',
25
+ name: '@analogjs/vite-nitro-plugin',
33
26
  config(_config, { command }) {
34
- var _a, _b, _c;
27
+ var _a, _b, _c, _d, _e;
35
28
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
36
29
  isServe = command === 'serve';
37
30
  isBuild = command === 'build';
38
31
  ssrBuild = ((_a = _config.build) === null || _a === void 0 ? void 0 : _a.ssr) === true;
39
32
  config = _config;
40
- if (isBuild && (options === null || options === void 0 ? void 0 : options.prerender)) {
41
- nitroConfig.prerender = {};
42
- nitroConfig.prerender.crawlLinks = (_b = options === null || options === void 0 ? void 0 : options.prerender) === null || _b === void 0 ? void 0 : _b.discover;
43
- const prerenderRoutes = (_c = options === null || options === void 0 ? void 0 : options.prerender) === null || _c === void 0 ? void 0 : _c.routes;
44
- if (Array.isArray(prerenderRoutes)) {
45
- nitroConfig.prerender.routes = prerenderRoutes;
33
+ const rootDir = config.root || '.';
34
+ let pageHandlers = (0, get_page_handlers_1.getPageHandlers)({ workspaceRoot, rootDir });
35
+ nitroConfig = {
36
+ rootDir,
37
+ logLevel: (nitroOptions === null || nitroOptions === void 0 ? void 0 : nitroOptions.logLevel) || 0,
38
+ srcDir: (0, vite_1.normalizePath)(`${rootDir}/src/server`),
39
+ scanDirs: [(0, vite_1.normalizePath)(`${rootDir}/src/server`)],
40
+ output: Object.assign({ dir: (0, vite_1.normalizePath)(path.resolve(workspaceRoot, 'dist', rootDir, 'analog')), publicDir: (0, vite_1.normalizePath)(path.resolve(workspaceRoot, 'dist', rootDir, 'analog/public')) }, nitroOptions === null || nitroOptions === void 0 ? void 0 : nitroOptions.output),
41
+ buildDir: (0, vite_1.normalizePath)(path.resolve(workspaceRoot, 'dist', rootDir, '.nitro')),
42
+ typescript: {
43
+ generateTsConfig: false,
44
+ },
45
+ runtimeConfig: Object.assign({}, nitroOptions === null || nitroOptions === void 0 ? void 0 : nitroOptions.runtimeConfig),
46
+ rollupConfig: {
47
+ onwarn(warning) {
48
+ if (warning.message.includes('empty chunk') &&
49
+ warning.message.endsWith('.server')) {
50
+ return;
51
+ }
52
+ },
53
+ plugins: [(0, page_endpoints_1.pageEndpointsPlugin)()],
54
+ },
55
+ handlers: [
56
+ {
57
+ handler: (0, vite_1.normalizePath)(`${__dirname}/runtime/api-middleware`),
58
+ middleware: true,
59
+ },
60
+ ...pageHandlers,
61
+ ],
62
+ };
63
+ if (!ssrBuild && !isTest) {
64
+ // store the client output path for the SSR build config
65
+ clientOutputPath = path.resolve(rootDir, (_b = config.build) === null || _b === void 0 ? void 0 : _b.outDir);
66
+ }
67
+ if (isBuild) {
68
+ if (isEmptyPrerenderRoutes(options)) {
69
+ nitroConfig.prerender = {};
70
+ nitroConfig.prerender.routes = ['/'];
46
71
  }
47
- else if (typeof prerenderRoutes === 'function') {
48
- nitroConfig.prerender.routes = yield prerenderRoutes();
72
+ if (options === null || options === void 0 ? void 0 : options.prerender) {
73
+ nitroConfig.prerender = (_c = nitroConfig.prerender) !== null && _c !== void 0 ? _c : {};
74
+ nitroConfig.prerender.crawlLinks = (_d = options === null || options === void 0 ? void 0 : options.prerender) === null || _d === void 0 ? void 0 : _d.discover;
75
+ const prerenderRoutes = (_e = options === null || options === void 0 ? void 0 : options.prerender) === null || _e === void 0 ? void 0 : _e.routes;
76
+ if (isArrayWithElements(prerenderRoutes)) {
77
+ nitroConfig.prerender.routes = prerenderRoutes;
78
+ }
79
+ else if (typeof prerenderRoutes === 'function') {
80
+ nitroConfig.prerender.routes = yield prerenderRoutes();
81
+ }
82
+ }
83
+ if (ssrBuild) {
84
+ nitroConfig = Object.assign(Object.assign({}, nitroConfig), { publicAssets: [{ dir: clientOutputPath }], serverAssets: [
85
+ {
86
+ baseName: 'public',
87
+ dir: clientOutputPath,
88
+ },
89
+ ], externals: {
90
+ inline: ['zone.js/node'],
91
+ external: ['rxjs', 'node-fetch-native/dist/polyfill', 'destr'],
92
+ }, moduleSideEffects: ['zone.js/bundles/zone-node.umd.js'], renderer: (0, vite_1.normalizePath)(`${__dirname}/runtime/renderer`), handlers: [
93
+ {
94
+ handler: (0, vite_1.normalizePath)(`${__dirname}/runtime/api-middleware`),
95
+ middleware: true,
96
+ },
97
+ ...pageHandlers,
98
+ ] });
49
99
  }
50
- }
51
- if (isBuild && ssrBuild) {
52
- nitroConfig = Object.assign(Object.assign({}, nitroConfig), { publicAssets: [{ dir: `../dist/client` }], serverAssets: [{ baseName: 'public', dir: `./dist/client` }], externals: {
53
- inline: ['zone.js/node'],
54
- external: ['rxjs', 'node-fetch-native/dist/polyfill', 'destr'],
55
- }, moduleSideEffects: ['zone.js/bundles/zone-node.umd.js'], renderer: (0, vite_1.normalizePath)(`${__dirname}/runtime/renderer`), handlers: [
56
- {
57
- handler: (0, vite_1.normalizePath)(`${__dirname}/runtime/api-middleware`),
58
- middleware: true,
59
- },
60
- ] });
61
100
  }
62
101
  nitroConfig = Object.assign(Object.assign({}, nitroConfig), nitroOptions);
63
102
  });
@@ -94,4 +133,14 @@ function nitro(options, nitroOptions) {
94
133
  };
95
134
  }
96
135
  exports.nitro = nitro;
136
+ function isEmptyPrerenderRoutes(options) {
137
+ var _a, _b;
138
+ if (!options || isArrayWithElements((_a = options === null || options === void 0 ? void 0 : options.prerender) === null || _a === void 0 ? void 0 : _a.routes)) {
139
+ return false;
140
+ }
141
+ return !((_b = options.prerender) === null || _b === void 0 ? void 0 : _b.routes);
142
+ }
143
+ function isArrayWithElements(arr) {
144
+ return !!(Array.isArray(arr) && arr.length);
145
+ }
97
146
  //# sourceMappingURL=vite-plugin-nitro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin-nitro.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite-plugin-nitro.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.ts"],"names":[],"mappings":";;;;AAAA,+EAAiF;AAEjF,2BAAoC;AAEpC,iDAA6C;AAC7C,2CAA0C;AAC1C,+BAAqC;AACrC,6BAA6B;AAG7B,6DAA+D;AAC/D,iEAA4D;AAE5D,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAE1B,SAAgB,KAAK,CAAC,OAAiB,EAAE,YAA0B;;IACjE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAI,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,0CAAG,WAAW,CAAC,mCAAI,KAAK,EAAE,CAAC;IAE5E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,MAAkB,CAAC;IACvB,IAAI,WAAwB,CAAC;IAE7B,OAAO;QACL,IAAI,EAAE,6BAA6B;QAC7B,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE;;;gBAC/B,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC;gBAC9B,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC;gBAC9B,QAAQ,GAAG,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,GAAG,MAAK,IAAI,CAAC;gBACvC,MAAM,GAAG,OAAO,CAAC;gBACjB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;gBAEnC,IAAI,YAAY,GAAG,IAAA,mCAAe,EAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;gBAE/D,WAAW,GAAG;oBACZ,OAAO;oBACP,QAAQ,EAAE,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,KAAI,CAAC;oBACrC,MAAM,EAAE,IAAA,oBAAa,EAAC,GAAG,OAAO,aAAa,CAAC;oBAC9C,QAAQ,EAAE,CAAC,IAAA,oBAAa,EAAC,GAAG,OAAO,aAAa,CAAC,CAAC;oBAClD,MAAM,kBACJ,GAAG,EAAE,IAAA,oBAAa,EAChB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CACvD,EACD,SAAS,EAAE,IAAA,oBAAa,EACtB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAC9D,IACE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CACxB;oBACD,QAAQ,EAAE,IAAA,oBAAa,EACrB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CACvD;oBACD,UAAU,EAAE;wBACV,gBAAgB,EAAE,KAAK;qBACxB;oBACD,aAAa,oBAAO,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,CAAE;oBACjD,YAAY,EAAE;wBACZ,MAAM,CAAC,OAAO;4BACZ,IACE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gCACvC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EACnC;gCACA,OAAO;6BACR;wBACH,CAAC;wBACD,OAAO,EAAE,CAAC,IAAA,oCAAmB,GAAE,CAAC;qBACjC;oBACD,QAAQ,EAAE;wBACR;4BACE,OAAO,EAAE,IAAA,oBAAa,EAAC,GAAG,SAAS,yBAAyB,CAAC;4BAC7D,UAAU,EAAE,IAAI;yBACjB;wBACD,GAAG,YAAY;qBAChB;iBACF,CAAC;gBAEF,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE;oBACxB,wDAAwD;oBACxD,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAO,CAAC,CAAC;iBACjE;gBAED,IAAI,OAAO,EAAE;oBACX,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE;wBACnC,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;wBAC3B,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;qBACtC;oBAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE;wBACtB,WAAW,CAAC,SAAS,GAAG,MAAA,WAAW,CAAC,SAAS,mCAAI,EAAE,CAAC;wBACpD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,QAAQ,CAAC;wBAEhE,MAAM,eAAe,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,CAAC;wBACnD,IAAI,mBAAmB,CAAS,eAAe,CAAC,EAAE;4BAChD,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;yBAChD;6BAAM,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;4BAChD,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;yBACxD;qBACF;oBAED,IAAI,QAAQ,EAAE;wBACZ,WAAW,mCACN,WAAW,KACd,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,EACzC,YAAY,EAAE;gCACZ;oCACE,QAAQ,EAAE,QAAQ;oCAClB,GAAG,EAAE,gBAAgB;iCACtB;6BACF,EACD,SAAS,EAAE;gCACT,MAAM,EAAE,CAAC,cAAc,CAAC;gCACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,iCAAiC,EAAE,OAAO,CAAC;6BAC/D,EACD,iBAAiB,EAAE,CAAC,kCAAkC,CAAC,EACvD,QAAQ,EAAE,IAAA,oBAAa,EAAC,GAAG,SAAS,mBAAmB,CAAC,EACxD,QAAQ,EAAE;gCACR;oCACE,OAAO,EAAE,IAAA,oBAAa,EAAC,GAAG,SAAS,yBAAyB,CAAC;oCAC7D,UAAU,EAAE,IAAI;iCACjB;gCACD,GAAG,YAAY;6BAChB,GACF,CAAC;qBACH;iBACF;gBACD,WAAW,mCACN,WAAW,GACX,YAAY,CAChB,CAAC;;SACH;QACK,eAAe,CAAC,UAAyB;;gBAC7C,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE;oBACtB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,GACpD,MAAM,IAAA,wBAAa,EAA6B,WAAW,CAAC,CAAC;oBAE/D,MAAM,KAAK,GAAG,MAAM,WAAW,iBAC7B,GAAG,EAAE,IAAI,IACN,WAAW,EACd,CAAC;oBACH,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;oBACtC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;oBACrB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,mBAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClE,OAAO,CAAC,GAAG,CACT,sGAAsG,SAAS,SAAS,CACzH,CAAC;iBACH;YACH,CAAC;SAAA;QAEK,WAAW;;gBACf,IAAI,QAAQ,EAAE;oBACZ,OAAO;iBACR;gBAED,IAAI,OAAO,EAAE;oBACX,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE;wBAChB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;wBAC3C,MAAM,IAAA,uBAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;qBACpC;oBAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBAClC,MAAM,IAAA,0BAAW,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBAExC,OAAO,CAAC,GAAG,CACT,kEAAkE,CACnE,CAAC;iBACH;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC;AA5JD,sBA4JC;AAED,SAAS,sBAAsB,CAAC,OAAiB;;IAC/C,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,CAAC,EAAE;QAC/D,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,CAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,MAAM,CAAA,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAI,GAAY;IAC1C,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC"}