@tramvai/experiments 2.39.3 → 2.44.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.
@@ -6,6 +6,7 @@ export declare const getExternalFileSystemPages: () => Record<string, import("@t
6
6
  export declare const getAllFileSystemPages: () => {
7
7
  [x: string]: import("@tramvai/react").LazyComponentWrapper<import("@tramvai/react").PageComponent>;
8
8
  };
9
+ export declare const getAllFileSystemLayouts: () => Record<string, import("@tramvai/react").LazyComponentWrapper<import("@tramvai/react").NestedLayoutComponent>>;
9
10
  export declare const isFileSystemPageComponent: (pageComponent: string) => boolean;
10
11
  /**
11
12
  * @example
@@ -19,6 +20,11 @@ export declare const staticFileSystemPageToPath: (pageComponent: string) => stri
19
20
  * /sub/route/:id/ to @/pages/sub/route/[id]/index
20
21
  */
21
22
  export declare const pathToExternalFileSystemPage: (path: string) => string;
23
+ /**
24
+ * @example
25
+ * @/routes/index to @/routes/index__layout
26
+ */
27
+ export declare const fileSystemPageToLayoutKey: (pageComponent: string) => string;
22
28
  export declare const fileSystemPageToRoute: (pageComponent: string) => Route;
23
29
  export declare const fileSystemPageComponentExists: (pageComponent: string) => boolean;
24
30
  /**
package/lib/index.es.js CHANGED
@@ -12,6 +12,9 @@ const getExternalFileSystemPages = () => {
12
12
  const getAllFileSystemPages = () => {
13
13
  return { ...fsPagesAndRoutes.routes, ...fsPagesAndRoutes.pages };
14
14
  };
15
+ const getAllFileSystemLayouts = () => {
16
+ return fsPagesAndRoutes.layouts;
17
+ };
15
18
  const isFileSystemPageComponent = (pageComponent) => {
16
19
  return (fileSystemPagesEnabled() &&
17
20
  !!pageComponent &&
@@ -50,16 +53,28 @@ const pathToExternalFileSystemPage = (path) => {
50
53
  .filter(Boolean)
51
54
  .join('/');
52
55
  };
56
+ /**
57
+ * @example
58
+ * @/routes/index to @/routes/index__layout
59
+ */
60
+ const fileSystemPageToLayoutKey = (pageComponent) => {
61
+ return `${pageComponent}__layout`;
62
+ };
53
63
  const fileSystemPageToRoute = (pageComponent) => {
54
64
  const name = pageComponent;
55
65
  const path = staticFileSystemPageToPath(pageComponent);
56
- return {
66
+ const layouts = getAllFileSystemLayouts();
67
+ const route = {
57
68
  name,
58
69
  path,
59
70
  config: {
60
71
  pageComponent,
61
72
  },
62
73
  };
74
+ if (pageComponent in layouts) {
75
+ route.config.nestedLayoutComponent = fileSystemPageToLayoutKey(pageComponent);
76
+ }
77
+ return route;
63
78
  };
64
79
  const fileSystemPageComponentExists = (pageComponent) => {
65
80
  return !!(getStaticFileSystemPages()[pageComponent] || getExternalFileSystemPages()[pageComponent]);
@@ -72,4 +87,4 @@ const fileSystemPageToWebpackChunkName = (pageComponent) => {
72
87
  return pageComponent.replace(/\//g, '_');
73
88
  };
74
89
 
75
- export { FILE_SYSTEM_PAGES_PREFIX, fileSystemPageComponentExists, fileSystemPageToRoute, fileSystemPageToWebpackChunkName, fileSystemPagesEnabled, getAllFileSystemPages, getExternalFileSystemPages, getStaticFileSystemPages, isFileSystemPageComponent, pathToExternalFileSystemPage, staticFileSystemPageToPath };
90
+ export { FILE_SYSTEM_PAGES_PREFIX, fileSystemPageComponentExists, fileSystemPageToLayoutKey, fileSystemPageToRoute, fileSystemPageToWebpackChunkName, fileSystemPagesEnabled, getAllFileSystemLayouts, getAllFileSystemPages, getExternalFileSystemPages, getStaticFileSystemPages, isFileSystemPageComponent, pathToExternalFileSystemPage, staticFileSystemPageToPath };
package/lib/index.js CHANGED
@@ -20,6 +20,9 @@ const getExternalFileSystemPages = () => {
20
20
  const getAllFileSystemPages = () => {
21
21
  return { ...fsPagesAndRoutes__default["default"].routes, ...fsPagesAndRoutes__default["default"].pages };
22
22
  };
23
+ const getAllFileSystemLayouts = () => {
24
+ return fsPagesAndRoutes__default["default"].layouts;
25
+ };
23
26
  const isFileSystemPageComponent = (pageComponent) => {
24
27
  return (fileSystemPagesEnabled() &&
25
28
  !!pageComponent &&
@@ -58,16 +61,28 @@ const pathToExternalFileSystemPage = (path) => {
58
61
  .filter(Boolean)
59
62
  .join('/');
60
63
  };
64
+ /**
65
+ * @example
66
+ * @/routes/index to @/routes/index__layout
67
+ */
68
+ const fileSystemPageToLayoutKey = (pageComponent) => {
69
+ return `${pageComponent}__layout`;
70
+ };
61
71
  const fileSystemPageToRoute = (pageComponent) => {
62
72
  const name = pageComponent;
63
73
  const path = staticFileSystemPageToPath(pageComponent);
64
- return {
74
+ const layouts = getAllFileSystemLayouts();
75
+ const route = {
65
76
  name,
66
77
  path,
67
78
  config: {
68
79
  pageComponent,
69
80
  },
70
81
  };
82
+ if (pageComponent in layouts) {
83
+ route.config.nestedLayoutComponent = fileSystemPageToLayoutKey(pageComponent);
84
+ }
85
+ return route;
71
86
  };
72
87
  const fileSystemPageComponentExists = (pageComponent) => {
73
88
  return !!(getStaticFileSystemPages()[pageComponent] || getExternalFileSystemPages()[pageComponent]);
@@ -82,9 +97,11 @@ const fileSystemPageToWebpackChunkName = (pageComponent) => {
82
97
 
83
98
  exports.FILE_SYSTEM_PAGES_PREFIX = FILE_SYSTEM_PAGES_PREFIX;
84
99
  exports.fileSystemPageComponentExists = fileSystemPageComponentExists;
100
+ exports.fileSystemPageToLayoutKey = fileSystemPageToLayoutKey;
85
101
  exports.fileSystemPageToRoute = fileSystemPageToRoute;
86
102
  exports.fileSystemPageToWebpackChunkName = fileSystemPageToWebpackChunkName;
87
103
  exports.fileSystemPagesEnabled = fileSystemPagesEnabled;
104
+ exports.getAllFileSystemLayouts = getAllFileSystemLayouts;
88
105
  exports.getAllFileSystemPages = getAllFileSystemPages;
89
106
  exports.getExternalFileSystemPages = getExternalFileSystemPages;
90
107
  exports.getStaticFileSystemPages = getStaticFileSystemPages;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/experiments",
3
- "version": "2.39.3",
3
+ "version": "2.44.2",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.es.js",
@@ -20,8 +20,8 @@
20
20
  },
21
21
  "dependencies": {},
22
22
  "peerDependencies": {
23
- "@tinkoff/router": "0.2.4",
24
- "@tramvai/cli": "2.39.3",
23
+ "@tinkoff/router": "0.2.5",
24
+ "@tramvai/cli": "2.44.2",
25
25
  "tslib": "^2.4.0"
26
26
  },
27
27
  "license": "Apache-2.0"