rasengan 1.0.0-beta.52 → 1.0.0-beta.55

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 (62) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/lib/esm/routing/utils/generate-routes.js +83 -2
  3. package/lib/esm/server/dev/utils.js +2 -0
  4. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  5. package/lib/tsconfig.types.tsbuildinfo +1 -1
  6. package/package.json +2 -2
  7. package/lib/cjs/cli/index.js +0 -45
  8. package/lib/cjs/client.js +0 -8
  9. package/lib/cjs/core/config/index.js +0 -7
  10. package/lib/cjs/core/config/type.js +0 -7
  11. package/lib/cjs/core/config/utils/define-config.js +0 -82
  12. package/lib/cjs/core/config/utils/load-modules.js +0 -120
  13. package/lib/cjs/core/config/utils/path.js +0 -19
  14. package/lib/cjs/core/config/vite/defaults.js +0 -93
  15. package/lib/cjs/core/dynamic/index.js +0 -24
  16. package/lib/cjs/core/index.js +0 -3
  17. package/lib/cjs/core/middlewares/index.js +0 -17
  18. package/lib/cjs/core/middlewares/logger.js +0 -10
  19. package/lib/cjs/core/plugins/index.js +0 -123
  20. package/lib/cjs/core/types.js +0 -2
  21. package/lib/cjs/core/utils/log.js +0 -17
  22. package/lib/cjs/entries/client/render.js +0 -19
  23. package/lib/cjs/entries/server/entry.server.js +0 -34
  24. package/lib/cjs/entries/server/index.js +0 -27
  25. package/lib/cjs/index.js +0 -22
  26. package/lib/cjs/plugin.js +0 -6
  27. package/lib/cjs/routing/components/index.js +0 -111
  28. package/lib/cjs/routing/components/template.js +0 -100
  29. package/lib/cjs/routing/index.js +0 -26
  30. package/lib/cjs/routing/interfaces.js +0 -108
  31. package/lib/cjs/routing/types.js +0 -2
  32. package/lib/cjs/routing/utils/define-router.js +0 -114
  33. package/lib/cjs/routing/utils/define-routes-group.js +0 -48
  34. package/lib/cjs/routing/utils/generate-metadata.js +0 -87
  35. package/lib/cjs/routing/utils/generate-routes.js +0 -175
  36. package/lib/cjs/routing/utils/index.js +0 -20
  37. package/lib/cjs/scripts/build-command.js +0 -22
  38. package/lib/cjs/scripts/generate-package-json.js +0 -28
  39. package/lib/cjs/scripts/utils/check-os.js +0 -14
  40. package/lib/cjs/scripts/utils/copy.js +0 -23
  41. package/lib/cjs/server/build/index.js +0 -15
  42. package/lib/cjs/server/build/manifest.js +0 -98
  43. package/lib/cjs/server/dev/handlers.js +0 -134
  44. package/lib/cjs/server/dev/server.js +0 -173
  45. package/lib/cjs/server/dev/utils.js +0 -204
  46. package/lib/cjs/server/node/index.js +0 -109
  47. package/lib/cjs/server/node/rendering.js +0 -52
  48. package/lib/cjs/server/node/stream.js +0 -136
  49. package/lib/cjs/server/node/utils.js +0 -96
  50. package/lib/cjs/server/runtime/mode.js +0 -18
  51. package/lib/cjs/server/utils/handleError.js +0 -59
  52. package/lib/cjs/server/utils/handleRequest.js +0 -224
  53. package/lib/cjs/server/utils/index.js +0 -6
  54. package/lib/cjs/server/virtual/index.js +0 -11
  55. package/lib/cjs/server.js +0 -22
  56. package/lib/esm/server/utils/handleError.js +0 -23
  57. package/lib/esm/server/utils/handleRequest.js +0 -185
  58. package/lib/esm/server/utils/index.js +0 -4
  59. package/lib/tsconfig.cjs.tsbuildinfo +0 -1
  60. package/lib/types/server/utils/handleError.d.ts +0 -2
  61. package/lib/types/server/utils/handleRequest.d.ts +0 -1
  62. package/lib/types/server/utils/index.d.ts +0 -2
package/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ ## Unreleased
2
+
3
+ ## 1.0.0-beta.55 (2025-02-28)
4
+
5
+ ## 1.0.0-beta.54 (2025-02-28)
6
+
7
+ ## 1.0.0-beta.53 (2025-02-28)
8
+
9
+ ## 1.0.0-beta.53 (2025-02-28)
@@ -17,6 +17,86 @@ export const getRouter = (routerInstance) => {
17
17
  });
18
18
  return () => _jsx(RouterProvider, { router: router });
19
19
  };
20
+ /**
21
+ * This function merge the metadata, giving priority to the ones comming from loader
22
+ */
23
+ const mergeMetaData = (responseMeta, meta) => {
24
+ let mergedMetaData = {
25
+ metaTags: [],
26
+ links: [],
27
+ };
28
+ // merge title and description
29
+ mergedMetaData['title'] =
30
+ responseMeta.title ?? meta.title;
31
+ mergedMetaData['description'] =
32
+ responseMeta.description ?? meta.description;
33
+ // merge openGraph datas
34
+ mergedMetaData['openGraph'] = {
35
+ ...meta.openGraph,
36
+ ...responseMeta.openGraph,
37
+ };
38
+ // merge twitter data
39
+ mergedMetaData['twitter'] = {
40
+ ...meta.twitter,
41
+ ...responseMeta.twitter,
42
+ };
43
+ // merge elements of type <array> eg. metaTags and links
44
+ const metaSet = new Set();
45
+ const linkSet = new Set();
46
+ if (meta['metaTags'] && Array.isArray(meta.metaTags)) {
47
+ // Loop through the metaTags and add every key to the set
48
+ for (const element of meta.metaTags) {
49
+ metaSet.add(element.name ?? element.property);
50
+ }
51
+ if (responseMeta['metaTags'] && Array.isArray(responseMeta.metaTags)) {
52
+ // Loop through the responseMeta and check if the key is already in the set
53
+ for (const element of responseMeta.metaTags) {
54
+ if (metaSet.has(element.name ?? element.property)) {
55
+ // remove the element from the set
56
+ metaSet.delete(element.name ?? element.property);
57
+ }
58
+ mergedMetaData.metaTags.push(element);
59
+ }
60
+ }
61
+ // Loop through the remaining elements in the set
62
+ for (const element of metaSet) {
63
+ const metaElement = meta.metaTags.find((el) => el.name === element);
64
+ if (metaElement) {
65
+ mergedMetaData.metaTags.push(metaElement);
66
+ }
67
+ }
68
+ }
69
+ else {
70
+ mergedMetaData.metaTags = responseMeta.metaTags ?? [];
71
+ }
72
+ if (meta['links'] && Array.isArray(meta.links)) {
73
+ // Loop through the links and add every key to the set
74
+ for (const element of meta.links) {
75
+ linkSet.add(element.rel);
76
+ }
77
+ if (responseMeta['links'] && Array.isArray(responseMeta.links)) {
78
+ // Loop through the responseMeta and check if the key is already in the set
79
+ for (const element of responseMeta.links) {
80
+ if (linkSet.has(element.rel)) {
81
+ // remove the element from the set
82
+ linkSet.delete(element.rel);
83
+ }
84
+ mergedMetaData.links.push(element);
85
+ }
86
+ }
87
+ // Loop through the remaining elements in the set
88
+ for (const element of linkSet) {
89
+ const linkElement = meta.links.find((el) => el.rel === element);
90
+ if (linkElement) {
91
+ mergedMetaData.links.push(linkElement);
92
+ }
93
+ }
94
+ }
95
+ else {
96
+ mergedMetaData.links = responseMeta.links ?? [];
97
+ }
98
+ return mergedMetaData;
99
+ };
20
100
  /**
21
101
  * This function create a loader function
22
102
  */
@@ -44,11 +124,12 @@ const createLoaderFunction = ({ loader, metadata, }) => {
44
124
  });
45
125
  }
46
126
  return {
47
- ...response,
48
- meta: metadata,
127
+ props: response.props,
128
+ meta: mergeMetaData(response.meta, metadata),
49
129
  };
50
130
  }
51
131
  catch (error) {
132
+ console.error(error);
52
133
  return {
53
134
  props: {},
54
135
  meta: {},
@@ -3,6 +3,7 @@ import ora from 'ora';
3
3
  import fs from 'fs/promises';
4
4
  import openBrowser from 'open';
5
5
  import os from 'node:os';
6
+ import readline from 'node:readline';
6
7
  // Get local IP
7
8
  export default function getIPAddress() {
8
9
  // Get network interfaces
@@ -69,6 +70,7 @@ export async function logServerInfo(port, mode, open = false) {
69
70
  if (open) {
70
71
  openBrowser(`http://localhost:${port}`);
71
72
  }
73
+ readline.emitKeypressEvents(process.stdin);
72
74
  // Listen on user keyboard input on the terminal
73
75
  process.stdin.on('keypress', (_, key) => {
74
76
  // Check if the key pressed is 'c'
@@ -1 +1 @@
1
- {"root":["../src/client.ts","../src/index.ts","../src/plugin.ts","../src/server.ts","../src/cli/index.ts","../src/core/index.ts","../src/core/types.ts","../src/core/config/index.ts","../src/core/config/type.ts","../src/core/config/utils/define-config.ts","../src/core/config/utils/load-modules.ts","../src/core/config/utils/path.ts","../src/core/config/vite/defaults.ts","../src/core/dynamic/index.tsx","../src/core/middlewares/index.ts","../src/core/middlewares/logger.ts","../src/core/plugins/index.ts","../src/core/utils/log.ts","../src/entries/client/render.tsx","../src/entries/server/entry.server.tsx","../src/entries/server/index.tsx","../src/routing/index.ts","../src/routing/interfaces.tsx","../src/routing/types.ts","../src/routing/components/index.tsx","../src/routing/components/template.tsx","../src/routing/utils/define-router.tsx","../src/routing/utils/define-routes-group.tsx","../src/routing/utils/generate-metadata.tsx","../src/routing/utils/generate-routes.tsx","../src/routing/utils/index.tsx","../src/scripts/build-command.js","../src/scripts/generate-package-json.js","../src/scripts/utils/check-os.js","../src/scripts/utils/copy.js","../src/server/build/index.ts","../src/server/build/manifest.tsx","../src/server/dev/handlers.tsx","../src/server/dev/server.ts","../src/server/dev/utils.ts","../src/server/node/index.tsx","../src/server/node/rendering.ts","../src/server/node/stream.ts","../src/server/node/utils.ts","../src/server/runtime/mode.ts","../src/server/utils/handleerror.ts","../src/server/utils/handlerequest.ts","../src/server/utils/index.ts","../src/server/virtual/index.ts","../types/client.d.ts"],"version":"5.7.2"}
1
+ {"root":["../src/client.ts","../src/index.ts","../src/plugin.ts","../src/server.ts","../src/cli/index.ts","../src/core/index.ts","../src/core/types.ts","../src/core/config/index.ts","../src/core/config/type.ts","../src/core/config/utils/define-config.ts","../src/core/config/utils/load-modules.ts","../src/core/config/utils/path.ts","../src/core/config/vite/defaults.ts","../src/core/dynamic/index.tsx","../src/core/middlewares/index.ts","../src/core/middlewares/logger.ts","../src/core/plugins/index.ts","../src/core/utils/log.ts","../src/entries/client/render.tsx","../src/entries/server/entry.server.tsx","../src/entries/server/index.tsx","../src/routing/index.ts","../src/routing/interfaces.tsx","../src/routing/types.ts","../src/routing/components/index.tsx","../src/routing/components/template.tsx","../src/routing/utils/define-router.tsx","../src/routing/utils/define-routes-group.tsx","../src/routing/utils/generate-metadata.tsx","../src/routing/utils/generate-routes.tsx","../src/routing/utils/index.tsx","../src/scripts/build-command.js","../src/scripts/generate-package-json.js","../src/scripts/utils/check-os.js","../src/scripts/utils/copy.js","../src/server/build/index.ts","../src/server/build/manifest.tsx","../src/server/dev/handlers.tsx","../src/server/dev/server.ts","../src/server/dev/utils.ts","../src/server/node/index.tsx","../src/server/node/rendering.ts","../src/server/node/stream.ts","../src/server/node/utils.ts","../src/server/runtime/mode.ts","../src/server/virtual/index.ts","../types/client.d.ts"],"version":"5.7.2"}
@@ -1 +1 @@
1
- {"root":["../src/client.ts","../src/index.ts","../src/plugin.ts","../src/server.ts","../src/cli/index.ts","../src/core/index.ts","../src/core/types.ts","../src/core/config/index.ts","../src/core/config/type.ts","../src/core/config/utils/define-config.ts","../src/core/config/utils/load-modules.ts","../src/core/config/utils/path.ts","../src/core/config/vite/defaults.ts","../src/core/dynamic/index.tsx","../src/core/middlewares/index.ts","../src/core/middlewares/logger.ts","../src/core/plugins/index.ts","../src/core/utils/log.ts","../src/entries/client/render.tsx","../src/entries/server/entry.server.tsx","../src/entries/server/index.tsx","../src/routing/index.ts","../src/routing/interfaces.tsx","../src/routing/types.ts","../src/routing/components/index.tsx","../src/routing/components/template.tsx","../src/routing/utils/define-router.tsx","../src/routing/utils/define-routes-group.tsx","../src/routing/utils/generate-metadata.tsx","../src/routing/utils/generate-routes.tsx","../src/routing/utils/index.tsx","../src/scripts/build-command.js","../src/scripts/generate-package-json.js","../src/scripts/utils/check-os.js","../src/scripts/utils/copy.js","../src/server/build/index.ts","../src/server/build/manifest.tsx","../src/server/dev/handlers.tsx","../src/server/dev/server.ts","../src/server/dev/utils.ts","../src/server/node/index.tsx","../src/server/node/rendering.ts","../src/server/node/stream.ts","../src/server/node/utils.ts","../src/server/runtime/mode.ts","../src/server/utils/handleerror.ts","../src/server/utils/handlerequest.ts","../src/server/utils/index.ts","../src/server/virtual/index.ts","../types/client.d.ts"],"version":"5.7.2"}
1
+ {"root":["../src/client.ts","../src/index.ts","../src/plugin.ts","../src/server.ts","../src/cli/index.ts","../src/core/index.ts","../src/core/types.ts","../src/core/config/index.ts","../src/core/config/type.ts","../src/core/config/utils/define-config.ts","../src/core/config/utils/load-modules.ts","../src/core/config/utils/path.ts","../src/core/config/vite/defaults.ts","../src/core/dynamic/index.tsx","../src/core/middlewares/index.ts","../src/core/middlewares/logger.ts","../src/core/plugins/index.ts","../src/core/utils/log.ts","../src/entries/client/render.tsx","../src/entries/server/entry.server.tsx","../src/entries/server/index.tsx","../src/routing/index.ts","../src/routing/interfaces.tsx","../src/routing/types.ts","../src/routing/components/index.tsx","../src/routing/components/template.tsx","../src/routing/utils/define-router.tsx","../src/routing/utils/define-routes-group.tsx","../src/routing/utils/generate-metadata.tsx","../src/routing/utils/generate-routes.tsx","../src/routing/utils/index.tsx","../src/scripts/build-command.js","../src/scripts/generate-package-json.js","../src/scripts/utils/check-os.js","../src/scripts/utils/copy.js","../src/server/build/index.ts","../src/server/build/manifest.tsx","../src/server/dev/handlers.tsx","../src/server/dev/server.ts","../src/server/dev/utils.ts","../src/server/node/index.tsx","../src/server/node/rendering.ts","../src/server/node/stream.ts","../src/server/node/utils.ts","../src/server/runtime/mode.ts","../src/server/virtual/index.ts","../types/client.d.ts"],"version":"5.7.2"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rasengan",
3
3
  "private": false,
4
- "version": "1.0.0-beta.52",
4
+ "version": "1.0.0-beta.55",
5
5
  "description": "The modern React Framework",
6
6
  "type": "module",
7
7
  "main": "lib/esm/index.js",
@@ -79,7 +79,7 @@
79
79
  "sass": "*",
80
80
  "stylus": "*",
81
81
  "vite": "^6.0.0",
82
- "@rasenganjs/mdx": "1.0.6"
82
+ "@rasenganjs/mdx": "^1.0.6"
83
83
  },
84
84
  "peerDependenciesMeta": {
85
85
  "@types/node": {
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const chalk_1 = __importDefault(require("chalk"));
7
- const commander_1 = require("commander");
8
- const execa_1 = require("execa");
9
- const program = new commander_1.Command();
10
- program
11
- .name(chalk_1.default.blue('rasengan'))
12
- .version('1.0.0', '-v, --version', 'Output the current version number');
13
- // Handle the dev command
14
- program
15
- .command('dev')
16
- .option('-p <port>')
17
- .description('Start development server')
18
- .action(async ({ p: port }) => {
19
- const convertedPort = Number(port);
20
- // Checking port
21
- if (port &&
22
- (isNaN(convertedPort) || convertedPort < 0 || convertedPort > 65535)) {
23
- console.log('');
24
- console.log(chalk_1.default.red('Please provide a valid port number between 0-65535'));
25
- console.log('');
26
- process.exit(1);
27
- }
28
- (0, execa_1.execa)('node', ['node_modules/rasengan/lib/esm/server/dev/server'], {
29
- stdio: 'inherit',
30
- env: {
31
- ...process.env,
32
- PORT: convertedPort ? convertedPort.toString() : undefined,
33
- },
34
- });
35
- });
36
- // Handle the build command
37
- program
38
- .command('build')
39
- .description('Build the project')
40
- .action(async () => {
41
- (0, execa_1.execa)('node', ['node_modules/rasengan/lib/esm/scripts/build-command'], {
42
- stdio: 'inherit',
43
- });
44
- });
45
- program.parse(process.argv);
package/lib/cjs/client.js DELETED
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.renderApp = void 0;
7
- const render_js_1 = __importDefault(require("./entries/client/render.js"));
8
- exports.renderApp = render_js_1.default;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolvePath = exports.defineConfig = void 0;
4
- const define_config_js_1 = require("./utils/define-config.js");
5
- Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return define_config_js_1.defineConfig; } });
6
- const path_js_1 = require("./utils/path.js");
7
- Object.defineProperty(exports, "resolvePath", { enumerable: true, get: function () { return path_js_1.resolvePath; } });
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // export type ConfigOptions = {
4
- // mode: 'development' | 'production' | 'test';
5
- // command: 'serve' | 'build';
6
- // isSsrBuild?: boolean;
7
- // };
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineConfig = void 0;
4
- /**
5
- * Function to define the config for the app
6
- * It will be used by vite.config.ts and other files in other to configure the app
7
- * @param {AppConfig | AppConfigFunction | AppConfigFunctionAsync} loadedConfig
8
- */
9
- const defineConfig = async (loadedConfig) => {
10
- return async () => {
11
- let config;
12
- // Check if the loadedConfig is a function
13
- if (typeof loadedConfig === 'function') {
14
- // Call the function to get the config
15
- const result = loadedConfig();
16
- // Check if it's a promise (asynchronous function)
17
- if (result instanceof Promise) {
18
- config = await result; // Await the promise result (AppConfigFunctionAsync)
19
- }
20
- else {
21
- config = result; // Synchronous function result (AppConfigFunction)
22
- }
23
- }
24
- else {
25
- config = loadedConfig;
26
- }
27
- const { server, vite, redirects } = config;
28
- // Define default values for vite config coming from loadedConfig.vite
29
- const defaultViteConfig = {
30
- ...vite,
31
- resolve: {
32
- symbole: vite?.resolve?.symbole || '@',
33
- alias: vite?.resolve?.alias || [],
34
- },
35
- };
36
- // Define default values for server config coming from loadedConfig.server
37
- const defaultServerConfig = {
38
- development: {
39
- port: server?.development?.port || undefined,
40
- open: server?.development?.open || false,
41
- },
42
- };
43
- // Define default values for redirects config coming from loadedConfig.redirects
44
- const defaultRedirectsConfig = redirects || (() => new Promise((resolve) => resolve([])));
45
- try {
46
- const config = {
47
- server: defaultServerConfig,
48
- vite: {
49
- ...defaultViteConfig,
50
- resolve: {
51
- alias: [
52
- {
53
- find: defaultViteConfig.resolve.symbole,
54
- replacement: './src',
55
- },
56
- ...defaultViteConfig.resolve.alias,
57
- ],
58
- },
59
- },
60
- redirects: defaultRedirectsConfig,
61
- };
62
- return config;
63
- }
64
- catch (error) {
65
- return {
66
- vite: {
67
- appType: 'custom',
68
- resolve: {
69
- alias: [
70
- {
71
- find: '@',
72
- replacement: './src',
73
- },
74
- ],
75
- },
76
- },
77
- redirects: () => new Promise((resolve) => resolve([])),
78
- };
79
- }
80
- };
81
- };
82
- exports.defineConfig = defineConfig;
@@ -1,120 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getDirname = exports.findModulePath = exports.loadModuleSSR = exports.extensions = void 0;
40
- const path_js_1 = require("./path.js");
41
- const promises_1 = __importDefault(require("fs/promises"));
42
- exports.extensions = [
43
- '.mjs',
44
- '.js',
45
- '.mts',
46
- '.ts',
47
- '.jsx',
48
- '.tsx',
49
- '.json',
50
- ];
51
- /**
52
- * Asynchronously loads a module from a file path only in the server-side environment.
53
- *
54
- * @param path - The path to the module.
55
- * @returns The loaded module.
56
- */
57
- const loadModuleSSR = async (path) => {
58
- try {
59
- let modulePath = path;
60
- // Check if the module path has an extension
61
- const moduleExtension = path.split('.').pop(); // eg: js or ts
62
- if (!moduleExtension || !exports.extensions.includes(`.${moduleExtension}`)) {
63
- const { path: newPath } = await (0, exports.findModulePath)(path);
64
- modulePath = newPath;
65
- }
66
- const module = await Promise.resolve(`${(0, path_js_1.resolvePath)(modulePath)}`).then(s => __importStar(require(s)));
67
- return module;
68
- }
69
- catch (error) {
70
- throw new Error(error);
71
- }
72
- };
73
- exports.loadModuleSSR = loadModuleSSR;
74
- /**
75
- * Finds the module path with the right extension.
76
- *
77
- * @param path - The path to the module.
78
- * @returns The module path and extension.
79
- */
80
- const findModulePath = async (path) => {
81
- try {
82
- let modulePath = path;
83
- let rightExtension = '';
84
- // Check if the module path has an extension
85
- const moduleExtension = path.split('.').pop(); // eg: js or ts
86
- if (!moduleExtension || !exports.extensions.includes(`.${moduleExtension}`)) {
87
- for (let ext of exports.extensions) {
88
- const newModulePath = `${modulePath}${ext}`;
89
- try {
90
- await promises_1.default.access(newModulePath);
91
- modulePath = newModulePath;
92
- rightExtension = ext;
93
- break;
94
- }
95
- catch (error) {
96
- continue;
97
- }
98
- }
99
- if (modulePath === path) {
100
- throw new Error(`Module "${path}" not found`);
101
- }
102
- }
103
- return {
104
- path: modulePath,
105
- extension: rightExtension,
106
- };
107
- }
108
- catch (error) {
109
- throw new Error(error);
110
- }
111
- };
112
- exports.findModulePath = findModulePath;
113
- const getDirname = async (url) => {
114
- // Load the dirname function from the path module
115
- // and return the dirname of the file URL
116
- const { dirname } = await Promise.resolve().then(() => __importStar(require('node:path')));
117
- const { fileURLToPath } = await Promise.resolve().then(() => __importStar(require('node:url')));
118
- return dirname(fileURLToPath(url));
119
- };
120
- exports.getDirname = getDirname;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolvePath = void 0;
4
- /**
5
- * Adapts the provided file path to a valid URL format based on the operating system.
6
- *
7
- * @param path - The file path to be adapted.
8
- * @returns The adapted file path in a valid URL format.
9
- */
10
- const resolvePath = (path) => {
11
- // Check the OS
12
- const isWindows = process.platform === 'win32';
13
- // Adapt the path
14
- if (isWindows) {
15
- return `file:///${path}`;
16
- }
17
- return path;
18
- };
19
- exports.resolvePath = resolvePath;
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDefaultViteConfig = void 0;
4
- // core/config/defaults.ts
5
- const node_path_1 = require("node:path");
6
- // Define core external packages
7
- const CORE_EXTERNALS = [
8
- // '@rasenganjs/mdx',
9
- // '@rasenganjs/vercel',
10
- // '@rasenganjs/netlify',
11
- ];
12
- const createDefaultViteConfig = (rootPath, __dirname, mode, config) => {
13
- // Combine core externals with user-defined externals
14
- const externals = [
15
- ...CORE_EXTERNALS,
16
- ...(Array.isArray(config.vite?.build?.external)
17
- ? config.vite.build.external
18
- : []),
19
- ];
20
- return {
21
- ...config.vite,
22
- root: rootPath,
23
- build: {
24
- sourcemap: mode === 'development',
25
- rollupOptions: {
26
- external: externals,
27
- input: './src/index',
28
- output: {
29
- manualChunks(id) {
30
- if (id.includes('node_modules'))
31
- return 'vendor';
32
- if (id.includes('src/components'))
33
- return 'shared-components';
34
- if (id.includes('src/app') && id.includes('.page.')) {
35
- const parts = id.split('src/app')[1]?.split('/');
36
- if (parts?.length) {
37
- const pageName = parts.pop()?.split('.')[0];
38
- return pageName ? `page-${pageName}` : undefined;
39
- }
40
- }
41
- return undefined;
42
- },
43
- },
44
- },
45
- outDir: 'dist',
46
- chunkSizeWarningLimit: 1000,
47
- },
48
- environments: {
49
- client: {
50
- build: {
51
- manifest: true,
52
- outDir: 'dist/client',
53
- rollupOptions: {
54
- input: './src/index',
55
- },
56
- },
57
- },
58
- ssr: {
59
- build: {
60
- outDir: 'dist/server',
61
- rollupOptions: {
62
- input: {
63
- 'entry.server': (0, node_path_1.join)(__dirname, './lib/esm/entries/server/entry.server.js'),
64
- 'app.router': './src/app/app.router',
65
- main: './src/main',
66
- template: './src/template',
67
- config: './rasengan.config.js',
68
- },
69
- },
70
- ssrEmitAssets: false,
71
- },
72
- },
73
- },
74
- resolve: {
75
- alias: Array.isArray(config.vite?.resolve?.alias)
76
- ? config.vite.resolve.alias.map(({ find, replacement }) => ({
77
- find,
78
- replacement: (0, node_path_1.join)(rootPath, replacement),
79
- }))
80
- : [],
81
- },
82
- builder: {
83
- buildApp: async (builder) => {
84
- await builder.build(builder.environments.ssr);
85
- await builder.build(builder.environments.client);
86
- },
87
- },
88
- cacheDir: '.rasengan/',
89
- envPrefix: 'RASENGAN_',
90
- appType: 'custom',
91
- };
92
- };
93
- exports.createDefaultViteConfig = createDefaultViteConfig;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dynamicLoad = dynamicLoad;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- /**
7
- * It allows you to defer loading of Client Components,
8
- * and only include them in the client bundle when they're needed
9
- * @param load
10
- * @param fallback
11
- * @returns
12
- */
13
- function dynamicLoad(load, fallback = (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}) // Default pending UI element
14
- ) {
15
- try {
16
- const LazyComponent = (0, react_1.lazy)(load);
17
- // Return a functional component preserving the exact props type
18
- const WrappedComponent = (props) => ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: fallback, children: (0, jsx_runtime_1.jsx)(LazyComponent, { ...props }) }));
19
- return WrappedComponent;
20
- }
21
- catch (error) {
22
- throw new Error(error);
23
- }
24
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- // export { defineConfig, resolvePath } from "./config/index.js";
3
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./logger.js"), exports);
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loggerMiddleware = void 0;
4
- const log_js_1 = require("../utils/log.js");
5
- const loggerMiddleware = (req, _, next) => {
6
- const url = req.originalUrl;
7
- (0, log_js_1.logGetRequest)(url);
8
- next();
9
- };
10
- exports.loggerMiddleware = loggerMiddleware;