@tramvai/experiments 2.70.1 → 2.72.0
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/lib/fileSystemPages.es.js +104 -0
- package/lib/fileSystemPages.js +126 -0
- package/lib/index.es.js +1 -104
- package/lib/index.js +16 -119
- package/package.json +5 -6
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { getParts } from '@tinkoff/router';
|
|
2
|
+
import fsPagesAndRoutes from '@tramvai/cli/lib/external/pages';
|
|
3
|
+
|
|
4
|
+
const FILE_SYSTEM_PAGES_PREFIX = '@/';
|
|
5
|
+
const fileSystemPagesEnabled = () => !!process.env.__TRAMVAI_EXPERIMENTAL_ENABLE_FILE_SYSTEM_PAGES;
|
|
6
|
+
const getStaticFileSystemPages = () => {
|
|
7
|
+
return fsPagesAndRoutes.routes;
|
|
8
|
+
};
|
|
9
|
+
const getExternalFileSystemPages = () => {
|
|
10
|
+
return fsPagesAndRoutes.pages;
|
|
11
|
+
};
|
|
12
|
+
const getAllFileSystemPages = () => {
|
|
13
|
+
return { ...fsPagesAndRoutes.routes, ...fsPagesAndRoutes.pages };
|
|
14
|
+
};
|
|
15
|
+
const getAllFileSystemLayouts = () => {
|
|
16
|
+
return fsPagesAndRoutes.layouts;
|
|
17
|
+
};
|
|
18
|
+
const getAllFileSystemErrorBoundaries = () => {
|
|
19
|
+
return fsPagesAndRoutes.errorBoundaries;
|
|
20
|
+
};
|
|
21
|
+
const isFileSystemPageComponent = (pageComponent) => {
|
|
22
|
+
return (fileSystemPagesEnabled() &&
|
|
23
|
+
!!pageComponent &&
|
|
24
|
+
pageComponent.indexOf(FILE_SYSTEM_PAGES_PREFIX) === 0);
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @example
|
|
28
|
+
* @/pages/index to /
|
|
29
|
+
* @/pages/foo/bar/[id]/index to /foo/bar/:id/
|
|
30
|
+
*/
|
|
31
|
+
const staticFileSystemPageToPath = (pageComponent) => {
|
|
32
|
+
return `/${pageComponent
|
|
33
|
+
.replace(`${FILE_SYSTEM_PAGES_PREFIX}${process.env.__TRAMVAI_EXPERIMENTAL_FILE_SYSTEM_ROUTES_DIR}/`, '')
|
|
34
|
+
.replace(/\[(.+)\]/g, ':$1')
|
|
35
|
+
.replace(/index$/g, '')}`;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* @example
|
|
39
|
+
* / to @/pages/index
|
|
40
|
+
* /sub/route/:id/ to @/pages/sub/route/[id]/index
|
|
41
|
+
*/
|
|
42
|
+
const pathToExternalFileSystemPage = (path) => {
|
|
43
|
+
const urlParts = getParts(path);
|
|
44
|
+
const pageComponentParts = urlParts.map((part) => {
|
|
45
|
+
// @example :id to [id]
|
|
46
|
+
if (part.startsWith(':')) {
|
|
47
|
+
return `[${part.replace(':', '')}]`;
|
|
48
|
+
}
|
|
49
|
+
return part;
|
|
50
|
+
});
|
|
51
|
+
return [
|
|
52
|
+
`${FILE_SYSTEM_PAGES_PREFIX}${process.env.__TRAMVAI_EXPERIMENTAL_FILE_SYSTEM_PAGES_DIR}`,
|
|
53
|
+
...pageComponentParts,
|
|
54
|
+
'index',
|
|
55
|
+
]
|
|
56
|
+
.filter(Boolean)
|
|
57
|
+
.join('/');
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* @example
|
|
61
|
+
* @/routes/index to @/routes/index__layout
|
|
62
|
+
*/
|
|
63
|
+
const fileSystemPageToLayoutKey = (pageComponent) => {
|
|
64
|
+
return `${pageComponent}__layout`;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* @example
|
|
68
|
+
* @/routes/index to @/routes/index__errorBoundary
|
|
69
|
+
*/
|
|
70
|
+
const fileSystemPageToErrorBoundaryKey = (pageComponent) => {
|
|
71
|
+
return `${pageComponent}__errorBoundary`;
|
|
72
|
+
};
|
|
73
|
+
const fileSystemPageToRoute = (pageComponent) => {
|
|
74
|
+
const name = pageComponent;
|
|
75
|
+
const path = staticFileSystemPageToPath(pageComponent);
|
|
76
|
+
const layouts = getAllFileSystemLayouts();
|
|
77
|
+
const errorBoundaries = getAllFileSystemErrorBoundaries();
|
|
78
|
+
const route = {
|
|
79
|
+
name,
|
|
80
|
+
path,
|
|
81
|
+
config: {
|
|
82
|
+
pageComponent,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
if (pageComponent in layouts) {
|
|
86
|
+
route.config.nestedLayoutComponent = fileSystemPageToLayoutKey(pageComponent);
|
|
87
|
+
}
|
|
88
|
+
if (pageComponent in errorBoundaries) {
|
|
89
|
+
route.config.errorBoundaryComponent = fileSystemPageToErrorBoundaryKey(pageComponent);
|
|
90
|
+
}
|
|
91
|
+
return route;
|
|
92
|
+
};
|
|
93
|
+
const fileSystemPageComponentExists = (pageComponent) => {
|
|
94
|
+
return !!(getStaticFileSystemPages()[pageComponent] || getExternalFileSystemPages()[pageComponent]);
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* @example
|
|
98
|
+
* @/routes/index to @_routes_index
|
|
99
|
+
*/
|
|
100
|
+
const fileSystemPageToWebpackChunkName = (pageComponent) => {
|
|
101
|
+
return pageComponent.replace(/\//g, '_');
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export { FILE_SYSTEM_PAGES_PREFIX, fileSystemPageComponentExists, fileSystemPageToErrorBoundaryKey, fileSystemPageToLayoutKey, fileSystemPageToRoute, fileSystemPageToWebpackChunkName, fileSystemPagesEnabled, getAllFileSystemErrorBoundaries, getAllFileSystemLayouts, getAllFileSystemPages, getExternalFileSystemPages, getStaticFileSystemPages, isFileSystemPageComponent, pathToExternalFileSystemPage, staticFileSystemPageToPath };
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var router = require('@tinkoff/router');
|
|
6
|
+
var fsPagesAndRoutes = require('@tramvai/cli/lib/external/pages');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
+
|
|
10
|
+
var fsPagesAndRoutes__default = /*#__PURE__*/_interopDefaultLegacy(fsPagesAndRoutes);
|
|
11
|
+
|
|
12
|
+
const FILE_SYSTEM_PAGES_PREFIX = '@/';
|
|
13
|
+
const fileSystemPagesEnabled = () => !!process.env.__TRAMVAI_EXPERIMENTAL_ENABLE_FILE_SYSTEM_PAGES;
|
|
14
|
+
const getStaticFileSystemPages = () => {
|
|
15
|
+
return fsPagesAndRoutes__default["default"].routes;
|
|
16
|
+
};
|
|
17
|
+
const getExternalFileSystemPages = () => {
|
|
18
|
+
return fsPagesAndRoutes__default["default"].pages;
|
|
19
|
+
};
|
|
20
|
+
const getAllFileSystemPages = () => {
|
|
21
|
+
return { ...fsPagesAndRoutes__default["default"].routes, ...fsPagesAndRoutes__default["default"].pages };
|
|
22
|
+
};
|
|
23
|
+
const getAllFileSystemLayouts = () => {
|
|
24
|
+
return fsPagesAndRoutes__default["default"].layouts;
|
|
25
|
+
};
|
|
26
|
+
const getAllFileSystemErrorBoundaries = () => {
|
|
27
|
+
return fsPagesAndRoutes__default["default"].errorBoundaries;
|
|
28
|
+
};
|
|
29
|
+
const isFileSystemPageComponent = (pageComponent) => {
|
|
30
|
+
return (fileSystemPagesEnabled() &&
|
|
31
|
+
!!pageComponent &&
|
|
32
|
+
pageComponent.indexOf(FILE_SYSTEM_PAGES_PREFIX) === 0);
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* @example
|
|
36
|
+
* @/pages/index to /
|
|
37
|
+
* @/pages/foo/bar/[id]/index to /foo/bar/:id/
|
|
38
|
+
*/
|
|
39
|
+
const staticFileSystemPageToPath = (pageComponent) => {
|
|
40
|
+
return `/${pageComponent
|
|
41
|
+
.replace(`${FILE_SYSTEM_PAGES_PREFIX}${process.env.__TRAMVAI_EXPERIMENTAL_FILE_SYSTEM_ROUTES_DIR}/`, '')
|
|
42
|
+
.replace(/\[(.+)\]/g, ':$1')
|
|
43
|
+
.replace(/index$/g, '')}`;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* @example
|
|
47
|
+
* / to @/pages/index
|
|
48
|
+
* /sub/route/:id/ to @/pages/sub/route/[id]/index
|
|
49
|
+
*/
|
|
50
|
+
const pathToExternalFileSystemPage = (path) => {
|
|
51
|
+
const urlParts = router.getParts(path);
|
|
52
|
+
const pageComponentParts = urlParts.map((part) => {
|
|
53
|
+
// @example :id to [id]
|
|
54
|
+
if (part.startsWith(':')) {
|
|
55
|
+
return `[${part.replace(':', '')}]`;
|
|
56
|
+
}
|
|
57
|
+
return part;
|
|
58
|
+
});
|
|
59
|
+
return [
|
|
60
|
+
`${FILE_SYSTEM_PAGES_PREFIX}${process.env.__TRAMVAI_EXPERIMENTAL_FILE_SYSTEM_PAGES_DIR}`,
|
|
61
|
+
...pageComponentParts,
|
|
62
|
+
'index',
|
|
63
|
+
]
|
|
64
|
+
.filter(Boolean)
|
|
65
|
+
.join('/');
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* @example
|
|
69
|
+
* @/routes/index to @/routes/index__layout
|
|
70
|
+
*/
|
|
71
|
+
const fileSystemPageToLayoutKey = (pageComponent) => {
|
|
72
|
+
return `${pageComponent}__layout`;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* @example
|
|
76
|
+
* @/routes/index to @/routes/index__errorBoundary
|
|
77
|
+
*/
|
|
78
|
+
const fileSystemPageToErrorBoundaryKey = (pageComponent) => {
|
|
79
|
+
return `${pageComponent}__errorBoundary`;
|
|
80
|
+
};
|
|
81
|
+
const fileSystemPageToRoute = (pageComponent) => {
|
|
82
|
+
const name = pageComponent;
|
|
83
|
+
const path = staticFileSystemPageToPath(pageComponent);
|
|
84
|
+
const layouts = getAllFileSystemLayouts();
|
|
85
|
+
const errorBoundaries = getAllFileSystemErrorBoundaries();
|
|
86
|
+
const route = {
|
|
87
|
+
name,
|
|
88
|
+
path,
|
|
89
|
+
config: {
|
|
90
|
+
pageComponent,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
if (pageComponent in layouts) {
|
|
94
|
+
route.config.nestedLayoutComponent = fileSystemPageToLayoutKey(pageComponent);
|
|
95
|
+
}
|
|
96
|
+
if (pageComponent in errorBoundaries) {
|
|
97
|
+
route.config.errorBoundaryComponent = fileSystemPageToErrorBoundaryKey(pageComponent);
|
|
98
|
+
}
|
|
99
|
+
return route;
|
|
100
|
+
};
|
|
101
|
+
const fileSystemPageComponentExists = (pageComponent) => {
|
|
102
|
+
return !!(getStaticFileSystemPages()[pageComponent] || getExternalFileSystemPages()[pageComponent]);
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* @example
|
|
106
|
+
* @/routes/index to @_routes_index
|
|
107
|
+
*/
|
|
108
|
+
const fileSystemPageToWebpackChunkName = (pageComponent) => {
|
|
109
|
+
return pageComponent.replace(/\//g, '_');
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
exports.FILE_SYSTEM_PAGES_PREFIX = FILE_SYSTEM_PAGES_PREFIX;
|
|
113
|
+
exports.fileSystemPageComponentExists = fileSystemPageComponentExists;
|
|
114
|
+
exports.fileSystemPageToErrorBoundaryKey = fileSystemPageToErrorBoundaryKey;
|
|
115
|
+
exports.fileSystemPageToLayoutKey = fileSystemPageToLayoutKey;
|
|
116
|
+
exports.fileSystemPageToRoute = fileSystemPageToRoute;
|
|
117
|
+
exports.fileSystemPageToWebpackChunkName = fileSystemPageToWebpackChunkName;
|
|
118
|
+
exports.fileSystemPagesEnabled = fileSystemPagesEnabled;
|
|
119
|
+
exports.getAllFileSystemErrorBoundaries = getAllFileSystemErrorBoundaries;
|
|
120
|
+
exports.getAllFileSystemLayouts = getAllFileSystemLayouts;
|
|
121
|
+
exports.getAllFileSystemPages = getAllFileSystemPages;
|
|
122
|
+
exports.getExternalFileSystemPages = getExternalFileSystemPages;
|
|
123
|
+
exports.getStaticFileSystemPages = getStaticFileSystemPages;
|
|
124
|
+
exports.isFileSystemPageComponent = isFileSystemPageComponent;
|
|
125
|
+
exports.pathToExternalFileSystemPage = pathToExternalFileSystemPage;
|
|
126
|
+
exports.staticFileSystemPageToPath = staticFileSystemPageToPath;
|
package/lib/index.es.js
CHANGED
|
@@ -1,104 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import fsPagesAndRoutes from '@tramvai/cli/lib/external/pages';
|
|
3
|
-
|
|
4
|
-
const FILE_SYSTEM_PAGES_PREFIX = '@/';
|
|
5
|
-
const fileSystemPagesEnabled = () => !!process.env.__TRAMVAI_EXPERIMENTAL_ENABLE_FILE_SYSTEM_PAGES;
|
|
6
|
-
const getStaticFileSystemPages = () => {
|
|
7
|
-
return fsPagesAndRoutes.routes;
|
|
8
|
-
};
|
|
9
|
-
const getExternalFileSystemPages = () => {
|
|
10
|
-
return fsPagesAndRoutes.pages;
|
|
11
|
-
};
|
|
12
|
-
const getAllFileSystemPages = () => {
|
|
13
|
-
return { ...fsPagesAndRoutes.routes, ...fsPagesAndRoutes.pages };
|
|
14
|
-
};
|
|
15
|
-
const getAllFileSystemLayouts = () => {
|
|
16
|
-
return fsPagesAndRoutes.layouts;
|
|
17
|
-
};
|
|
18
|
-
const getAllFileSystemErrorBoundaries = () => {
|
|
19
|
-
return fsPagesAndRoutes.errorBoundaries;
|
|
20
|
-
};
|
|
21
|
-
const isFileSystemPageComponent = (pageComponent) => {
|
|
22
|
-
return (fileSystemPagesEnabled() &&
|
|
23
|
-
!!pageComponent &&
|
|
24
|
-
pageComponent.indexOf(FILE_SYSTEM_PAGES_PREFIX) === 0);
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* @example
|
|
28
|
-
* @/pages/index to /
|
|
29
|
-
* @/pages/foo/bar/[id]/index to /foo/bar/:id/
|
|
30
|
-
*/
|
|
31
|
-
const staticFileSystemPageToPath = (pageComponent) => {
|
|
32
|
-
return `/${pageComponent
|
|
33
|
-
.replace(`${FILE_SYSTEM_PAGES_PREFIX}${process.env.__TRAMVAI_EXPERIMENTAL_FILE_SYSTEM_ROUTES_DIR}/`, '')
|
|
34
|
-
.replace(/\[(.+)\]/g, ':$1')
|
|
35
|
-
.replace(/index$/g, '')}`;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* @example
|
|
39
|
-
* / to @/pages/index
|
|
40
|
-
* /sub/route/:id/ to @/pages/sub/route/[id]/index
|
|
41
|
-
*/
|
|
42
|
-
const pathToExternalFileSystemPage = (path) => {
|
|
43
|
-
const urlParts = getParts(path);
|
|
44
|
-
const pageComponentParts = urlParts.map((part) => {
|
|
45
|
-
// @example :id to [id]
|
|
46
|
-
if (part.startsWith(':')) {
|
|
47
|
-
return `[${part.replace(':', '')}]`;
|
|
48
|
-
}
|
|
49
|
-
return part;
|
|
50
|
-
});
|
|
51
|
-
return [
|
|
52
|
-
`${FILE_SYSTEM_PAGES_PREFIX}${process.env.__TRAMVAI_EXPERIMENTAL_FILE_SYSTEM_PAGES_DIR}`,
|
|
53
|
-
...pageComponentParts,
|
|
54
|
-
'index',
|
|
55
|
-
]
|
|
56
|
-
.filter(Boolean)
|
|
57
|
-
.join('/');
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* @example
|
|
61
|
-
* @/routes/index to @/routes/index__layout
|
|
62
|
-
*/
|
|
63
|
-
const fileSystemPageToLayoutKey = (pageComponent) => {
|
|
64
|
-
return `${pageComponent}__layout`;
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* @example
|
|
68
|
-
* @/routes/index to @/routes/index__errorBoundary
|
|
69
|
-
*/
|
|
70
|
-
const fileSystemPageToErrorBoundaryKey = (pageComponent) => {
|
|
71
|
-
return `${pageComponent}__errorBoundary`;
|
|
72
|
-
};
|
|
73
|
-
const fileSystemPageToRoute = (pageComponent) => {
|
|
74
|
-
const name = pageComponent;
|
|
75
|
-
const path = staticFileSystemPageToPath(pageComponent);
|
|
76
|
-
const layouts = getAllFileSystemLayouts();
|
|
77
|
-
const errorBoundaries = getAllFileSystemErrorBoundaries();
|
|
78
|
-
const route = {
|
|
79
|
-
name,
|
|
80
|
-
path,
|
|
81
|
-
config: {
|
|
82
|
-
pageComponent,
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
if (pageComponent in layouts) {
|
|
86
|
-
route.config.nestedLayoutComponent = fileSystemPageToLayoutKey(pageComponent);
|
|
87
|
-
}
|
|
88
|
-
if (pageComponent in errorBoundaries) {
|
|
89
|
-
route.config.errorBoundaryComponent = fileSystemPageToErrorBoundaryKey(pageComponent);
|
|
90
|
-
}
|
|
91
|
-
return route;
|
|
92
|
-
};
|
|
93
|
-
const fileSystemPageComponentExists = (pageComponent) => {
|
|
94
|
-
return !!(getStaticFileSystemPages()[pageComponent] || getExternalFileSystemPages()[pageComponent]);
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* @example
|
|
98
|
-
* @/routes/index to @_routes_index
|
|
99
|
-
*/
|
|
100
|
-
const fileSystemPageToWebpackChunkName = (pageComponent) => {
|
|
101
|
-
return pageComponent.replace(/\//g, '_');
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
export { FILE_SYSTEM_PAGES_PREFIX, fileSystemPageComponentExists, fileSystemPageToErrorBoundaryKey, fileSystemPageToLayoutKey, fileSystemPageToRoute, fileSystemPageToWebpackChunkName, fileSystemPagesEnabled, getAllFileSystemErrorBoundaries, getAllFileSystemLayouts, getAllFileSystemPages, getExternalFileSystemPages, getStaticFileSystemPages, isFileSystemPageComponent, pathToExternalFileSystemPage, staticFileSystemPageToPath };
|
|
1
|
+
export { FILE_SYSTEM_PAGES_PREFIX, fileSystemPageComponentExists, fileSystemPageToErrorBoundaryKey, fileSystemPageToLayoutKey, fileSystemPageToRoute, fileSystemPageToWebpackChunkName, fileSystemPagesEnabled, getAllFileSystemErrorBoundaries, getAllFileSystemLayouts, getAllFileSystemPages, getExternalFileSystemPages, getStaticFileSystemPages, isFileSystemPageComponent, pathToExternalFileSystemPage, staticFileSystemPageToPath } from './fileSystemPages.es.js';
|
package/lib/index.js
CHANGED
|
@@ -2,125 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var fsPagesAndRoutes = require('@tramvai/cli/lib/external/pages');
|
|
5
|
+
var fileSystemPages = require('./fileSystemPages.js');
|
|
7
6
|
|
|
8
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
7
|
|
|
10
|
-
var fsPagesAndRoutes__default = /*#__PURE__*/_interopDefaultLegacy(fsPagesAndRoutes);
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return fsPagesAndRoutes__default["default"].errorBoundaries;
|
|
28
|
-
};
|
|
29
|
-
const isFileSystemPageComponent = (pageComponent) => {
|
|
30
|
-
return (fileSystemPagesEnabled() &&
|
|
31
|
-
!!pageComponent &&
|
|
32
|
-
pageComponent.indexOf(FILE_SYSTEM_PAGES_PREFIX) === 0);
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* @example
|
|
36
|
-
* @/pages/index to /
|
|
37
|
-
* @/pages/foo/bar/[id]/index to /foo/bar/:id/
|
|
38
|
-
*/
|
|
39
|
-
const staticFileSystemPageToPath = (pageComponent) => {
|
|
40
|
-
return `/${pageComponent
|
|
41
|
-
.replace(`${FILE_SYSTEM_PAGES_PREFIX}${process.env.__TRAMVAI_EXPERIMENTAL_FILE_SYSTEM_ROUTES_DIR}/`, '')
|
|
42
|
-
.replace(/\[(.+)\]/g, ':$1')
|
|
43
|
-
.replace(/index$/g, '')}`;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* @example
|
|
47
|
-
* / to @/pages/index
|
|
48
|
-
* /sub/route/:id/ to @/pages/sub/route/[id]/index
|
|
49
|
-
*/
|
|
50
|
-
const pathToExternalFileSystemPage = (path) => {
|
|
51
|
-
const urlParts = router.getParts(path);
|
|
52
|
-
const pageComponentParts = urlParts.map((part) => {
|
|
53
|
-
// @example :id to [id]
|
|
54
|
-
if (part.startsWith(':')) {
|
|
55
|
-
return `[${part.replace(':', '')}]`;
|
|
56
|
-
}
|
|
57
|
-
return part;
|
|
58
|
-
});
|
|
59
|
-
return [
|
|
60
|
-
`${FILE_SYSTEM_PAGES_PREFIX}${process.env.__TRAMVAI_EXPERIMENTAL_FILE_SYSTEM_PAGES_DIR}`,
|
|
61
|
-
...pageComponentParts,
|
|
62
|
-
'index',
|
|
63
|
-
]
|
|
64
|
-
.filter(Boolean)
|
|
65
|
-
.join('/');
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* @example
|
|
69
|
-
* @/routes/index to @/routes/index__layout
|
|
70
|
-
*/
|
|
71
|
-
const fileSystemPageToLayoutKey = (pageComponent) => {
|
|
72
|
-
return `${pageComponent}__layout`;
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* @example
|
|
76
|
-
* @/routes/index to @/routes/index__errorBoundary
|
|
77
|
-
*/
|
|
78
|
-
const fileSystemPageToErrorBoundaryKey = (pageComponent) => {
|
|
79
|
-
return `${pageComponent}__errorBoundary`;
|
|
80
|
-
};
|
|
81
|
-
const fileSystemPageToRoute = (pageComponent) => {
|
|
82
|
-
const name = pageComponent;
|
|
83
|
-
const path = staticFileSystemPageToPath(pageComponent);
|
|
84
|
-
const layouts = getAllFileSystemLayouts();
|
|
85
|
-
const errorBoundaries = getAllFileSystemErrorBoundaries();
|
|
86
|
-
const route = {
|
|
87
|
-
name,
|
|
88
|
-
path,
|
|
89
|
-
config: {
|
|
90
|
-
pageComponent,
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
if (pageComponent in layouts) {
|
|
94
|
-
route.config.nestedLayoutComponent = fileSystemPageToLayoutKey(pageComponent);
|
|
95
|
-
}
|
|
96
|
-
if (pageComponent in errorBoundaries) {
|
|
97
|
-
route.config.errorBoundaryComponent = fileSystemPageToErrorBoundaryKey(pageComponent);
|
|
98
|
-
}
|
|
99
|
-
return route;
|
|
100
|
-
};
|
|
101
|
-
const fileSystemPageComponentExists = (pageComponent) => {
|
|
102
|
-
return !!(getStaticFileSystemPages()[pageComponent] || getExternalFileSystemPages()[pageComponent]);
|
|
103
|
-
};
|
|
104
|
-
/**
|
|
105
|
-
* @example
|
|
106
|
-
* @/routes/index to @_routes_index
|
|
107
|
-
*/
|
|
108
|
-
const fileSystemPageToWebpackChunkName = (pageComponent) => {
|
|
109
|
-
return pageComponent.replace(/\//g, '_');
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
exports.FILE_SYSTEM_PAGES_PREFIX = FILE_SYSTEM_PAGES_PREFIX;
|
|
113
|
-
exports.fileSystemPageComponentExists = fileSystemPageComponentExists;
|
|
114
|
-
exports.fileSystemPageToErrorBoundaryKey = fileSystemPageToErrorBoundaryKey;
|
|
115
|
-
exports.fileSystemPageToLayoutKey = fileSystemPageToLayoutKey;
|
|
116
|
-
exports.fileSystemPageToRoute = fileSystemPageToRoute;
|
|
117
|
-
exports.fileSystemPageToWebpackChunkName = fileSystemPageToWebpackChunkName;
|
|
118
|
-
exports.fileSystemPagesEnabled = fileSystemPagesEnabled;
|
|
119
|
-
exports.getAllFileSystemErrorBoundaries = getAllFileSystemErrorBoundaries;
|
|
120
|
-
exports.getAllFileSystemLayouts = getAllFileSystemLayouts;
|
|
121
|
-
exports.getAllFileSystemPages = getAllFileSystemPages;
|
|
122
|
-
exports.getExternalFileSystemPages = getExternalFileSystemPages;
|
|
123
|
-
exports.getStaticFileSystemPages = getStaticFileSystemPages;
|
|
124
|
-
exports.isFileSystemPageComponent = isFileSystemPageComponent;
|
|
125
|
-
exports.pathToExternalFileSystemPage = pathToExternalFileSystemPage;
|
|
126
|
-
exports.staticFileSystemPageToPath = staticFileSystemPageToPath;
|
|
9
|
+
exports.FILE_SYSTEM_PAGES_PREFIX = fileSystemPages.FILE_SYSTEM_PAGES_PREFIX;
|
|
10
|
+
exports.fileSystemPageComponentExists = fileSystemPages.fileSystemPageComponentExists;
|
|
11
|
+
exports.fileSystemPageToErrorBoundaryKey = fileSystemPages.fileSystemPageToErrorBoundaryKey;
|
|
12
|
+
exports.fileSystemPageToLayoutKey = fileSystemPages.fileSystemPageToLayoutKey;
|
|
13
|
+
exports.fileSystemPageToRoute = fileSystemPages.fileSystemPageToRoute;
|
|
14
|
+
exports.fileSystemPageToWebpackChunkName = fileSystemPages.fileSystemPageToWebpackChunkName;
|
|
15
|
+
exports.fileSystemPagesEnabled = fileSystemPages.fileSystemPagesEnabled;
|
|
16
|
+
exports.getAllFileSystemErrorBoundaries = fileSystemPages.getAllFileSystemErrorBoundaries;
|
|
17
|
+
exports.getAllFileSystemLayouts = fileSystemPages.getAllFileSystemLayouts;
|
|
18
|
+
exports.getAllFileSystemPages = fileSystemPages.getAllFileSystemPages;
|
|
19
|
+
exports.getExternalFileSystemPages = fileSystemPages.getExternalFileSystemPages;
|
|
20
|
+
exports.getStaticFileSystemPages = fileSystemPages.getStaticFileSystemPages;
|
|
21
|
+
exports.isFileSystemPageComponent = fileSystemPages.isFileSystemPageComponent;
|
|
22
|
+
exports.pathToExternalFileSystemPage = fileSystemPages.pathToExternalFileSystemPage;
|
|
23
|
+
exports.staticFileSystemPageToPath = fileSystemPages.staticFileSystemPageToPath;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/experiments",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.72.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/index.es.js",
|
|
@@ -14,14 +14,13 @@
|
|
|
14
14
|
"url": "git@github.com:Tinkoff/tramvai.git"
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "tramvai-build --
|
|
18
|
-
"watch": "tsc -w"
|
|
19
|
-
"build-for-publish": "true"
|
|
17
|
+
"build": "tramvai-build --forPublish --preserveModules",
|
|
18
|
+
"watch": "tsc -w"
|
|
20
19
|
},
|
|
21
20
|
"dependencies": {},
|
|
22
21
|
"peerDependencies": {
|
|
23
|
-
"@tinkoff/router": "0.2.
|
|
24
|
-
"@tramvai/cli": "2.
|
|
22
|
+
"@tinkoff/router": "0.2.8",
|
|
23
|
+
"@tramvai/cli": "2.72.0",
|
|
25
24
|
"tslib": "^2.4.0"
|
|
26
25
|
},
|
|
27
26
|
"license": "Apache-2.0"
|