@eventcatalog/core 2.12.1 → 2.12.3
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/CHANGELOG.md +12 -0
- package/README.md +9 -0
- package/images/sponsors/oso-logo-green.png +0 -0
- package/package.json +1 -1
- package/src/components/Header.astro +2 -2
- package/src/layouts/VerticalSideBarLayout.astro +20 -33
- package/src/pages/docs/index.astro +8 -4
- package/src/utils/config/catalog.ts +15 -0
- package/src/utils/pages.ts +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @eventcatalog/core
|
|
2
2
|
|
|
3
|
+
## 2.12.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d0d13c9: chore(core): fixing z-index issue with the header nav and removing the max-width
|
|
8
|
+
|
|
9
|
+
## 2.12.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 93e224c: fix(core): custom defined landing page for docs now render on docs tab
|
|
14
|
+
|
|
3
15
|
## 2.12.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -133,6 +133,15 @@ Thank you to our project sponsors.
|
|
|
133
133
|
|
|
134
134
|
<hr />
|
|
135
135
|
|
|
136
|
+
<div align="center">
|
|
137
|
+
<img alt="oso" src="./images/sponsors/oso-logo-green.png" width="30%" />
|
|
138
|
+
<p style="margin: 0; padding: 0;">Delivering Apache Kafka professional services to your business
|
|
139
|
+
</p>
|
|
140
|
+
<a href="https://oso.sh/?utm_source=eventcatalog&utm_medium=web&utm_campaign=sponsorship" target="_blank" >Learn more</a>
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
<hr />
|
|
144
|
+
|
|
136
145
|
_Sponsors help make EventCatalog sustainable, want to help the project? Get in touch! Or [visit our sponsor page](https://www.eventcatalog.dev/support)._
|
|
137
146
|
|
|
138
147
|
# Enterprise support
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -12,9 +12,9 @@ const logo = {
|
|
|
12
12
|
|
|
13
13
|
<nav
|
|
14
14
|
id="eventcatalog-header"
|
|
15
|
-
class="fixed top-0 left-0 right-0 bg-white border-b border-gray-100 py-3 font-bold text-xl bg-opacity-20 backdrop-blur-sm"
|
|
15
|
+
class="fixed top-0 left-0 right-0 bg-white border-b border-gray-100 py-3 font-bold text-xl bg-opacity-20 backdrop-blur-sm z-10"
|
|
16
16
|
>
|
|
17
|
-
<div class="
|
|
17
|
+
<div class="px-4 sm:px-4 lg:px-4">
|
|
18
18
|
<div class="flex justify-between items-center">
|
|
19
19
|
<div class="flex-shrink-0 flex items-center w-1/3">
|
|
20
20
|
<a href={buildUrl(catalog.landingPage || '/')} class="flex space-x-2 items-center">
|
|
@@ -16,10 +16,11 @@ import { getServices } from '@utils/services/services';
|
|
|
16
16
|
import { getFlows } from '@utils/flows/flows';
|
|
17
17
|
import { getTeams } from '@utils/teams';
|
|
18
18
|
import { getUsers } from '@utils/users';
|
|
19
|
-
import
|
|
19
|
+
import { isCollectionVisibleInCatalog } from '@eventcatalog';
|
|
20
20
|
import { buildUrl } from '@utils/url-builder';
|
|
21
21
|
import { getQueries } from '@utils/queries';
|
|
22
22
|
import CatalogResourcesSideBar from '@components/SideBars/CatalogResourcesSideBar';
|
|
23
|
+
import { hasLandingPageForDocs } from '@utils/pages';
|
|
23
24
|
|
|
24
25
|
const events = await getEvents({ getAllVersions: false });
|
|
25
26
|
const commands = await getCommands({ getAllVersions: false });
|
|
@@ -37,12 +38,23 @@ const allData = [...domains, ...services, ...messages, ...flows, ...teams, ...us
|
|
|
37
38
|
|
|
38
39
|
const currentPath = Astro.url.pathname;
|
|
39
40
|
|
|
41
|
+
const catalogHasDefaultLandingPageForDocs = await hasLandingPageForDocs();
|
|
42
|
+
|
|
40
43
|
const getDefaultUrl = (route: string, defaultValue: string) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
const collections = [
|
|
45
|
+
{ data: domains, key: 'domains' },
|
|
46
|
+
{ data: services, key: 'services' },
|
|
47
|
+
{ data: messages, key: 'messages' },
|
|
48
|
+
{ data: flows, key: 'flows' },
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
for (const { data, key } of collections) {
|
|
52
|
+
if (data.length > 0 && isCollectionVisibleInCatalog(key)) {
|
|
53
|
+
const item = data[0];
|
|
54
|
+
return buildUrl(`/${route}/${key}/${item.data.id}/${item.data.latestVersion}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
46
58
|
return buildUrl(defaultValue);
|
|
47
59
|
};
|
|
48
60
|
|
|
@@ -59,7 +71,7 @@ const navigationItems = [
|
|
|
59
71
|
id: '/docs',
|
|
60
72
|
label: 'Documentation',
|
|
61
73
|
icon: BookOpenText,
|
|
62
|
-
href: getDefaultUrl('docs', '/docs'),
|
|
74
|
+
href: catalogHasDefaultLandingPageForDocs ? buildUrl('/docs') : getDefaultUrl('docs', '/docs'),
|
|
63
75
|
current: currentPath.includes('/docs'),
|
|
64
76
|
sidebar: true,
|
|
65
77
|
},
|
|
@@ -81,31 +93,6 @@ const navigationItems = [
|
|
|
81
93
|
},
|
|
82
94
|
];
|
|
83
95
|
|
|
84
|
-
const eventCatalogConfig = config as CatalogConfig;
|
|
85
|
-
|
|
86
|
-
const {
|
|
87
|
-
services: servicesConfig,
|
|
88
|
-
domains: domainsConfig,
|
|
89
|
-
messages: messagesConfig,
|
|
90
|
-
flows: flowsConfig,
|
|
91
|
-
teams: teamsConfig,
|
|
92
|
-
users: usersConfig,
|
|
93
|
-
} = eventCatalogConfig?.docs?.sidebar || {};
|
|
94
|
-
|
|
95
|
-
const getConfigValue = (obj: any, key: string, defaultValue: any) => {
|
|
96
|
-
return obj?.[key] ?? defaultValue;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const visibleCollections: { [key: string]: boolean } = {
|
|
100
|
-
events: getConfigValue(messagesConfig, 'visible', true),
|
|
101
|
-
commands: getConfigValue(messagesConfig, 'visible', true),
|
|
102
|
-
domains: getConfigValue(domainsConfig, 'visible', true),
|
|
103
|
-
flows: getConfigValue(flowsConfig, 'visible', true),
|
|
104
|
-
services: getConfigValue(servicesConfig, 'visible', true),
|
|
105
|
-
teams: getConfigValue(teamsConfig, 'visible', true),
|
|
106
|
-
users: getConfigValue(usersConfig, 'visible', true),
|
|
107
|
-
};
|
|
108
|
-
|
|
109
96
|
const sideNav = allData.reduce((acc, item) => {
|
|
110
97
|
const title = item.collection;
|
|
111
98
|
const group = acc[title] || [];
|
|
@@ -120,7 +107,7 @@ const sideNav = allData.reduce((acc, item) => {
|
|
|
120
107
|
label: item.data.name,
|
|
121
108
|
version: item.collection === 'teams' || item.collection === 'users' ? null : item.data.version,
|
|
122
109
|
// items: item.collection === 'users' ? [] : item.headings,
|
|
123
|
-
visible:
|
|
110
|
+
visible: isCollectionVisibleInCatalog(item.collection),
|
|
124
111
|
// @ts-ignore
|
|
125
112
|
href: item.data.version
|
|
126
113
|
? // @ts-ignore
|
|
@@ -17,11 +17,15 @@ if (page) {
|
|
|
17
17
|
{
|
|
18
18
|
CustomContent && (
|
|
19
19
|
<VerticalSideBarLayout title="EventCatalog">
|
|
20
|
-
<main class="
|
|
21
|
-
<div class="
|
|
22
|
-
<
|
|
20
|
+
<main class="flex sm:px-8 docs-layout h-full">
|
|
21
|
+
<div class="flex docs-layout w-full">
|
|
22
|
+
<div class="w-full lg:mr-2 pr-8 overflow-y-auto py-8">
|
|
23
|
+
<div class="prose prose-md w-full !max-w-none">
|
|
24
|
+
<CustomContent components={components} />
|
|
25
|
+
</div>
|
|
26
|
+
<Footer />
|
|
27
|
+
</div>
|
|
23
28
|
</div>
|
|
24
|
-
<Footer />
|
|
25
29
|
</main>
|
|
26
30
|
</VerticalSideBarLayout>
|
|
27
31
|
)
|
|
@@ -18,4 +18,19 @@ export type CatalogConfig = {
|
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
+
const getConfigValue = (obj: any, key: string, defaultValue: any) => {
|
|
22
|
+
return obj?.[key] ?? defaultValue;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const isCollectionVisibleInCatalog = (collection: string) => {
|
|
26
|
+
const sidebarConfig = config?.default?.docs?.sidebar || {};
|
|
27
|
+
const collections = ['events', 'commands', 'queries', 'domains', 'flows', 'services', 'teams', 'users'];
|
|
28
|
+
|
|
29
|
+
if (!collections.includes(collection)) return false;
|
|
30
|
+
|
|
31
|
+
const collectionConfig =
|
|
32
|
+
sidebarConfig[collection === 'events' || collection === 'commands' || collection === 'queries' ? 'messages' : collection];
|
|
33
|
+
return getConfigValue(collectionConfig, 'visible', true);
|
|
34
|
+
};
|
|
35
|
+
|
|
21
36
|
export default config.default;
|
package/src/utils/pages.ts
CHANGED
|
@@ -13,3 +13,8 @@ export const getIndexPage = async (): Promise<Page> => {
|
|
|
13
13
|
const pages = await getCollection('pages');
|
|
14
14
|
return pages.find((page) => page.slug === 'index')!;
|
|
15
15
|
};
|
|
16
|
+
|
|
17
|
+
export const hasLandingPageForDocs = async (): Promise<boolean> => {
|
|
18
|
+
const pages = await getCollection('pages');
|
|
19
|
+
return pages.some((page) => page.slug === 'index')!;
|
|
20
|
+
};
|