@eventcatalog/core 0.0.12 → 0.1.1
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +39 -38
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/eslint/.cache_1bay4w0 +1 -1
- package/.next/cache/next-server.js.nft.json +1 -1
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/export-detail.json +1 -0
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/526.js +5 -5
- package/.next/server/chunks/565.js +6 -3
- package/.next/server/chunks/{959.js → 681.js} +126 -4
- package/.next/server/chunks/730.js +6 -7
- package/.next/server/chunks/938.js +18 -4
- package/.next/server/chunks/944.js +22 -26
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/_app.js +18 -1
- package/.next/server/pages/events/AddedItemToCart/logs.html +1 -0
- package/.next/server/pages/events/AddedItemToCart/logs.json +1 -0
- package/.next/server/pages/events/AddedItemToCart/v/0.0.1.html +48 -0
- package/.next/server/pages/events/AddedItemToCart/v/0.0.1.json +1 -0
- package/.next/server/pages/events/AddedItemToCart/v/0.0.2.html +55 -0
- package/.next/server/pages/events/AddedItemToCart/v/0.0.2.json +1 -0
- package/.next/server/pages/events/AddedItemToCart.html +4 -4
- package/.next/server/pages/events/AddedItemToCart.json +1 -1
- package/.next/server/pages/events/OrderComplete/logs.html +1 -0
- package/.next/server/pages/events/OrderComplete/logs.json +1 -0
- package/.next/server/pages/events/OrderComplete.html +3 -3
- package/.next/server/pages/events/OrderComplete.json +1 -1
- package/.next/server/pages/events/OrderConfirmed/logs.html +1 -0
- package/.next/server/pages/events/OrderConfirmed/logs.json +1 -0
- package/.next/server/pages/events/OrderConfirmed.html +3 -3
- package/.next/server/pages/events/OrderConfirmed.json +1 -1
- package/.next/server/pages/events/OrderRequested/logs.html +1 -0
- package/.next/server/pages/events/OrderRequested/logs.json +1 -0
- package/.next/server/pages/events/OrderRequested.html +3 -3
- package/.next/server/pages/events/OrderRequested.json +1 -1
- package/.next/server/pages/events/PaymentProcessed/logs.html +1 -0
- package/.next/server/pages/events/PaymentProcessed/logs.json +1 -0
- package/.next/server/pages/events/PaymentProcessed.html +3 -3
- package/.next/server/pages/events/PaymentProcessed.json +1 -1
- package/.next/server/pages/events/RemovedItemFromCart/logs.html +1 -0
- package/.next/server/pages/events/RemovedItemFromCart/logs.json +1 -0
- package/.next/server/pages/events/RemovedItemFromCart.html +3 -3
- package/.next/server/pages/events/RemovedItemFromCart.json +1 -1
- package/.next/server/pages/events/ShipmentDelivered/logs.html +1 -0
- package/.next/server/pages/events/ShipmentDelivered/logs.json +1 -0
- package/.next/server/pages/events/ShipmentDelivered.html +3 -3
- package/.next/server/pages/events/ShipmentDelivered.json +1 -1
- package/.next/server/pages/events/ShipmentDispatched/logs.html +1 -0
- package/.next/server/pages/events/ShipmentDispatched/logs.json +1 -0
- package/.next/server/pages/events/ShipmentDispatched.html +3 -3
- package/.next/server/pages/events/ShipmentDispatched.json +1 -1
- package/.next/server/pages/events/ShipmentPrepared/logs.html +1 -0
- package/.next/server/pages/events/ShipmentPrepared/logs.json +1 -0
- package/.next/server/pages/events/ShipmentPrepared.html +3 -3
- package/.next/server/pages/events/ShipmentPrepared.json +1 -1
- package/.next/server/pages/events/[name]/logs.js +18 -4
- package/.next/server/pages/events/[name]/logs.js.nft.json +1 -1
- package/.next/server/pages/events/[name]/v/[version].js +25 -9
- package/.next/server/pages/events/[name]/v/[version].js.nft.json +1 -1
- package/.next/server/pages/events/[name].js +7 -7
- package/.next/server/pages/events/[name].js.nft.json +1 -1
- package/.next/server/pages/events.html +10 -0
- package/.next/server/pages/events.js +90 -38
- package/.next/server/pages/events.js.nft.json +1 -1
- package/.next/server/pages/events.json +1 -0
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/overview.html +1 -0
- package/.next/server/pages/overview.js +12 -9
- package/.next/server/pages/overview.js.nft.json +1 -1
- package/.next/server/pages/overview.json +1 -0
- package/.next/server/pages/services/Basket Service.html +2 -2
- package/.next/server/pages/services/Basket Service.json +1 -1
- package/.next/server/pages/services/Data Lake.html +2 -2
- package/.next/server/pages/services/Data Lake.json +1 -1
- package/.next/server/pages/services/Payment Service.html +2 -2
- package/.next/server/pages/services/Payment Service.json +1 -1
- package/.next/server/pages/services/Shipping Service.html +2 -2
- package/.next/server/pages/services/Shipping Service.json +1 -1
- package/.next/server/pages/services/[name].js +5 -5
- package/.next/server/pages/services/[name].js.nft.json +1 -1
- package/.next/server/pages/services.html +5 -0
- package/.next/server/pages/services.js +68 -62
- package/.next/server/pages/services.js.nft.json +1 -1
- package/.next/server/pages/services.json +1 -0
- package/.next/server/pages/users/[id].js +20 -6
- package/.next/server/pages/users/[id].js.nft.json +1 -1
- package/.next/server/pages/users/dboyne.html +14 -0
- package/.next/server/pages/users/dboyne.json +1 -0
- package/.next/server/pages/users/mSmith.html +10 -0
- package/.next/server/pages/users/mSmith.json +1 -0
- package/.next/server/pages-manifest.json +0 -1
- package/.next/static/chunks/28-812913d1c0167bab.js +1 -0
- package/.next/static/chunks/{336-323c44d05b2ca502.js → 336-8b7da71a40e0c439.js} +1 -1
- package/.next/static/chunks/519-7c428c1e49c8e614.js +1 -0
- package/.next/static/chunks/873-f2bce094caa95964.js +1 -0
- package/.next/static/chunks/pages/_app-2b86b0fb5ed8c085.js +1 -0
- package/.next/static/chunks/pages/events/[name]/{logs-d159d7b82f44847f.js → logs-707da36de8222a98.js} +1 -1
- package/.next/static/chunks/pages/events/[name]/v/{[version]-963d3e8377b51e86.js → [version]-5652060e116d4a61.js} +1 -1
- package/.next/static/chunks/pages/events/{[name]-578828157369b5cd.js → [name]-146170e56a404524.js} +1 -1
- package/.next/static/chunks/pages/events-2bca09b458bde8ab.js +1 -0
- package/.next/static/chunks/pages/index-fe1a9e09c7f51e66.js +1 -0
- package/.next/static/chunks/pages/{overview-5ac749891cbe1922.js → overview-6bd5a86d5a28a942.js} +1 -1
- package/.next/static/chunks/pages/services/[name]-78378d531eb27bc2.js +1 -0
- package/.next/static/chunks/pages/services-1293e4d7df6174bf.js +1 -0
- package/.next/static/chunks/pages/users/[id]-5374b99d99fe576e.js +1 -0
- package/.next/static/chunks/{webpack-afe52d4a9fcc5a75.js → webpack-f27c5bb37992d94f.js} +1 -1
- package/.next/static/css/2532bb4d95ad483e.css +3 -0
- package/.next/static/xWuchBA47-kIcuK-WNSOY/_buildManifest.js +1 -0
- package/.next/static/{Ar5NkcdCFs9vlh-33wGgn → xWuchBA47-kIcuK-WNSOY}/_middlewareManifest.js +0 -0
- package/.next/static/xWuchBA47-kIcuK-WNSOY/_ssgManifest.js +1 -0
- package/.next/trace +37 -37
- package/CHANGELOG.md +26 -0
- package/README.md +2 -1
- package/bin/eventcatalog.js +12 -0
- package/components/Grids/EventGrid.tsx +2 -2
- package/components/Grids/ServiceGrid.tsx +8 -1
- package/components/Header.tsx +4 -1
- package/components/NotFound/index.tsx +4 -3
- package/components/Sidebars/EventSidebar.tsx +21 -21
- package/components/Sidebars/ServiceSidebar.tsx +3 -3
- package/components/SyntaxHighlighter.tsx +1 -1
- package/lib/events.ts +24 -0
- package/lib/graphs.ts +7 -3
- package/next.config.js +7 -0
- package/out/404.html +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/AddedItemToCart/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/AddedItemToCart/v/0.0.1.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/AddedItemToCart/v/0.0.2.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/AddedItemToCart.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/OrderComplete/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/OrderComplete.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/OrderConfirmed/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/OrderConfirmed.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/OrderRequested/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/OrderRequested.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/PaymentProcessed/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/PaymentProcessed.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/RemovedItemFromCart/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/RemovedItemFromCart.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/ShipmentDelivered/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/ShipmentDelivered.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/ShipmentDispatched/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/ShipmentDispatched.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/ShipmentPrepared/logs.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events/ShipmentPrepared.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/events.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/overview.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/services/Basket Service.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/services/Data Lake.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/services/Payment Service.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/services/Shipping Service.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/services.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/users/dboyne.json +1 -0
- package/out/_next/data/xWuchBA47-kIcuK-WNSOY/users/mSmith.json +1 -0
- package/out/_next/static/chunks/020d8314.aea2d24215754e7b.js +1 -0
- package/out/_next/static/chunks/176cb4e4-8a0f6f010ef8accb.js +1 -0
- package/out/_next/static/chunks/274-11c4d093341d7201.js +1 -0
- package/out/_next/static/chunks/28-812913d1c0167bab.js +1 -0
- package/out/_next/static/chunks/336-8b7da71a40e0c439.js +1 -0
- package/out/_next/static/chunks/364-3cb3c8cf1d3c95de.js +1 -0
- package/out/_next/static/chunks/519-7c428c1e49c8e614.js +1 -0
- package/out/_next/static/chunks/638.d570519ae49c92c8.js +1 -0
- package/out/_next/static/chunks/873-f2bce094caa95964.js +1 -0
- package/out/_next/static/chunks/962-d5070461f6d4a478.js +1 -0
- package/out/_next/static/chunks/framework-576ec6a1c1386453.js +1 -0
- package/out/_next/static/chunks/main-0289ecbd51cd4cb4.js +1 -0
- package/out/_next/static/chunks/pages/_app-2b86b0fb5ed8c085.js +1 -0
- package/out/_next/static/chunks/pages/_error-5a714c45c50a8db4.js +1 -0
- package/out/_next/static/chunks/pages/events/[name]/logs-707da36de8222a98.js +1 -0
- package/out/_next/static/chunks/pages/events/[name]/v/[version]-5652060e116d4a61.js +1 -0
- package/out/_next/static/chunks/pages/events/[name]-146170e56a404524.js +1 -0
- package/out/_next/static/chunks/pages/events-2bca09b458bde8ab.js +1 -0
- package/out/_next/static/chunks/pages/index-fe1a9e09c7f51e66.js +1 -0
- package/out/_next/static/chunks/pages/overview-6bd5a86d5a28a942.js +1 -0
- package/out/_next/static/chunks/pages/services/[name]-78378d531eb27bc2.js +1 -0
- package/out/_next/static/chunks/pages/services-1293e4d7df6174bf.js +1 -0
- package/out/_next/static/chunks/pages/users/[id]-5374b99d99fe576e.js +1 -0
- package/out/_next/static/chunks/polyfills-5cd94c89d3acac5f.js +1 -0
- package/out/_next/static/chunks/webpack-f27c5bb37992d94f.js +1 -0
- package/out/_next/static/css/2532bb4d95ad483e.css +3 -0
- package/out/_next/static/css/5eeed9cb243ce668.css +1 -0
- package/out/_next/static/xWuchBA47-kIcuK-WNSOY/_buildManifest.js +1 -0
- package/out/_next/static/xWuchBA47-kIcuK-WNSOY/_middlewareManifest.js +1 -0
- package/out/_next/static/xWuchBA47-kIcuK-WNSOY/_ssgManifest.js +1 -0
- package/out/events/AddedItemToCart/logs.html +1 -0
- package/out/events/AddedItemToCart/v/0.0.1.html +48 -0
- package/out/events/AddedItemToCart/v/0.0.2.html +55 -0
- package/out/events/AddedItemToCart.html +73 -0
- package/out/events/OrderComplete/logs.html +1 -0
- package/out/events/OrderComplete.html +48 -0
- package/out/events/OrderConfirmed/logs.html +1 -0
- package/out/events/OrderConfirmed.html +48 -0
- package/out/events/OrderRequested/logs.html +1 -0
- package/out/events/OrderRequested.html +48 -0
- package/out/events/PaymentProcessed/logs.html +1 -0
- package/out/events/PaymentProcessed.html +52 -0
- package/out/events/RemovedItemFromCart/logs.html +1 -0
- package/out/events/RemovedItemFromCart.html +55 -0
- package/out/events/ShipmentDelivered/logs.html +1 -0
- package/out/events/ShipmentDelivered.html +53 -0
- package/out/events/ShipmentDispatched/logs.html +1 -0
- package/out/events/ShipmentDispatched.html +52 -0
- package/out/events/ShipmentPrepared/logs.html +1 -0
- package/out/events/ShipmentPrepared.html +52 -0
- package/out/events.html +10 -0
- package/out/favicon.ico +0 -0
- package/out/index.html +1 -0
- package/out/logo-random.svg +114 -0
- package/out/logo.svg +44 -0
- package/out/opengraph.png +0 -0
- package/out/overview.html +1 -0
- package/out/services/Basket Service.html +11 -0
- package/out/services/Data Lake.html +12 -0
- package/out/services/Payment Service.html +10 -0
- package/out/services/Shipping Service.html +14 -0
- package/out/services.html +5 -0
- package/out/users/dboyne.html +14 -0
- package/out/users/mSmith.html +10 -0
- package/package.json +4 -3
- package/pages/_app.tsx +2 -0
- package/pages/events/[name]/logs.tsx +12 -3
- package/pages/events/[name]/v/[version].tsx +14 -2
- package/pages/events/[name].tsx +2 -2
- package/pages/events.tsx +75 -31
- package/pages/index.tsx +4 -2
- package/pages/overview.tsx +8 -5
- package/pages/services/[name].tsx +1 -1
- package/pages/services.tsx +28 -15
- package/pages/users/[id].tsx +14 -3
- package/scripts/move-schemas-for-download.js +59 -0
- package/.next/server/chunks/596.js +0 -98
- package/.next/server/pages/api/event/[name]/download.js +0 -64
- package/.next/server/pages/api/event/[name]/download.js.nft.json +0 -1
- package/.next/server/webpack-api-runtime.js +0 -160
- package/.next/static/Ar5NkcdCFs9vlh-33wGgn/_buildManifest.js +0 -1
- package/.next/static/Ar5NkcdCFs9vlh-33wGgn/_ssgManifest.js +0 -1
- package/.next/static/chunks/519-7f22292093abd7c3.js +0 -1
- package/.next/static/chunks/873-cd558fb98674abe5.js +0 -1
- package/.next/static/chunks/954-4d4a09c3269dda3f.js +0 -1
- package/.next/static/chunks/pages/_app-c9d3172cc09cf069.js +0 -1
- package/.next/static/chunks/pages/events-a38d51b4dd9dd7cf.js +0 -1
- package/.next/static/chunks/pages/index-3eeab7e4014a02ea.js +0 -1
- package/.next/static/chunks/pages/services/[name]-881a79d880506d8a.js +0 -1
- package/.next/static/chunks/pages/services-bcc61898062e1bf4.js +0 -1
- package/.next/static/chunks/pages/users/[id]-a2fec953b3532a74.js +0 -1
- package/.next/static/css/b44e1178a88a93b4.css +0 -3
- package/pages/api/event/[name]/download.js +0 -28
package/pages/events.tsx
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Fragment, useState } from 'react';
|
|
1
|
+
import { Fragment, useState, useCallback, useEffect } from 'react';
|
|
2
2
|
import Head from 'next/head';
|
|
3
3
|
import type { Event, Service } from '@eventcatalog/types';
|
|
4
|
-
|
|
5
|
-
import Link from 'next/link';
|
|
4
|
+
import debounce from 'lodash.debounce';
|
|
6
5
|
|
|
7
6
|
import { Menu, Transition } from '@headlessui/react';
|
|
8
|
-
import { ChevronDownIcon } from '@heroicons/react/solid';
|
|
7
|
+
import { ChevronDownIcon, SearchIcon } from '@heroicons/react/solid';
|
|
9
8
|
import EventGrid from '@/components/Grids/EventGrid';
|
|
10
9
|
import { getAllEvents, getUniqueServicesNamesFromEvents } from '@/lib/events';
|
|
11
10
|
|
|
@@ -20,7 +19,7 @@ const sortOptions = [
|
|
|
20
19
|
];
|
|
21
20
|
|
|
22
21
|
export interface PageProps {
|
|
23
|
-
events: [
|
|
22
|
+
events: Event[];
|
|
24
23
|
services: [Service];
|
|
25
24
|
}
|
|
26
25
|
|
|
@@ -28,7 +27,7 @@ export default function Page({ events, services }: PageProps) {
|
|
|
28
27
|
const filters = [
|
|
29
28
|
{
|
|
30
29
|
id: 'services',
|
|
31
|
-
name:
|
|
30
|
+
name: `Filter by Services (${services.length})`,
|
|
32
31
|
options: services.map((service) => ({
|
|
33
32
|
value: service,
|
|
34
33
|
label: service,
|
|
@@ -39,6 +38,8 @@ export default function Page({ events, services }: PageProps) {
|
|
|
39
38
|
|
|
40
39
|
const [selectedFilters, setSelectedFilters] = useState({ services: [] });
|
|
41
40
|
const [showMermaidDiagrams, setShowMermaidDiagrams] = useState(false);
|
|
41
|
+
const [eventsToRender, setEventsToRender] = useState(events);
|
|
42
|
+
const [searchFilter, setSearchFilter] = useState('');
|
|
42
43
|
|
|
43
44
|
const handleFilterSelection = (option, type, event) => {
|
|
44
45
|
if (event.target.checked) {
|
|
@@ -50,19 +51,44 @@ export default function Page({ events, services }: PageProps) {
|
|
|
50
51
|
}
|
|
51
52
|
};
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
const getFilteredEvents = (): any => {
|
|
55
|
+
if (!selectedFilters.services && !searchFilter) return events;
|
|
56
|
+
|
|
57
|
+
let filteredEvents = events;
|
|
58
|
+
|
|
59
|
+
if (selectedFilters.services.length > 0) {
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
filteredEvents = filteredEvents.filter((event) => {
|
|
62
|
+
const { services: serviceFilters } = selectedFilters;
|
|
63
|
+
|
|
64
|
+
const hasConsumersFromFilters = event.consumers.some((consumerId) => serviceFilters.indexOf(consumerId) > -1);
|
|
65
|
+
const hasProducersFromFilters = event.producers.some((producerId) => serviceFilters.indexOf(producerId) > -1);
|
|
54
66
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const { services: serviceFilters } = selectedFilters;
|
|
67
|
+
return hasConsumersFromFilters || hasProducersFromFilters;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
59
70
|
|
|
60
|
-
|
|
61
|
-
|
|
71
|
+
if (searchFilter) {
|
|
72
|
+
filteredEvents = filteredEvents.filter((event) => event.name.toLowerCase().includes(searchFilter.toLowerCase()));
|
|
73
|
+
}
|
|
62
74
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
75
|
+
return filteredEvents;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
setEventsToRender(getFilteredEvents());
|
|
80
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
81
|
+
}, [selectedFilters, searchFilter]);
|
|
82
|
+
|
|
83
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
84
|
+
const debouncedFilter = useCallback(
|
|
85
|
+
debounce((e) => {
|
|
86
|
+
setSearchFilter(e.target.value);
|
|
87
|
+
}, 500),
|
|
88
|
+
[eventsToRender]
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
const filtersApplied = !!searchFilter || selectedFilters.services.length > 0;
|
|
66
92
|
|
|
67
93
|
return (
|
|
68
94
|
<>
|
|
@@ -123,22 +149,28 @@ export default function Page({ events, services }: PageProps) {
|
|
|
123
149
|
<div className="grid grid-cols-4 gap-x-8 gap-y-10">
|
|
124
150
|
{/* Filters */}
|
|
125
151
|
<form className="hidden lg:block">
|
|
126
|
-
<
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
</
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
152
|
+
<div className="border-b border-gray-200 pb-6">
|
|
153
|
+
<label htmlFor="event" className="font-bold block text-sm font-medium text-gray-700">
|
|
154
|
+
Search Events
|
|
155
|
+
</label>
|
|
156
|
+
<div className="mt-1 relative rounded-md shadow-sm">
|
|
157
|
+
<div className="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
|
|
158
|
+
<SearchIcon className="h-5 w-5 text-gray-400" aria-hidden="true" />
|
|
159
|
+
</div>
|
|
160
|
+
<input
|
|
161
|
+
type="text"
|
|
162
|
+
name="event"
|
|
163
|
+
id="event"
|
|
164
|
+
onChange={debouncedFilter}
|
|
165
|
+
className="focus:ring-gray-500 focus:border-gray-500 block w-full pl-10 sm:text-sm border-gray-300 rounded-md"
|
|
166
|
+
/>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
137
169
|
{filters.map((section: any) => (
|
|
138
170
|
<div key={section.id} className="border-b border-gray-200 py-6">
|
|
139
171
|
<h3 className="-my-3 flow-root">
|
|
140
172
|
<div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
|
|
141
|
-
<span className="font-medium text-gray-900">{section.name}</span>
|
|
173
|
+
<span className="font-bold font-medium text-gray-900">{section.name}</span>
|
|
142
174
|
</div>
|
|
143
175
|
</h3>
|
|
144
176
|
<div className="pt-6">
|
|
@@ -167,7 +199,7 @@ export default function Page({ events, services }: PageProps) {
|
|
|
167
199
|
<div className="border-b border-gray-200 py-6">
|
|
168
200
|
<h3 className="-my-3 flow-root">
|
|
169
201
|
<div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
|
|
170
|
-
<span className="font-medium text-gray-900">Features</span>
|
|
202
|
+
<span className="font-bold font-medium text-gray-900">Features</span>
|
|
171
203
|
</div>
|
|
172
204
|
</h3>
|
|
173
205
|
<div className="pt-6">
|
|
@@ -191,8 +223,20 @@ export default function Page({ events, services }: PageProps) {
|
|
|
191
223
|
|
|
192
224
|
<div className="col-span-4 lg:col-span-3">
|
|
193
225
|
<div>
|
|
194
|
-
<h2 className="text-gray-500 text-xs font-medium uppercase tracking-wide">
|
|
226
|
+
<h2 className="text-gray-500 text-xs font-medium uppercase tracking-wide">
|
|
227
|
+
{filtersApplied
|
|
228
|
+
? `Filtered Events (${eventsToRender.length}/${events.length})`
|
|
229
|
+
: `All Events (${events.length})`}
|
|
230
|
+
</h2>
|
|
195
231
|
<EventGrid events={eventsToRender} showMermaidDiagrams={showMermaidDiagrams} />
|
|
232
|
+
{eventsToRender.length === 0 && (
|
|
233
|
+
<div className="text-gray-400 flex h-96 justify-center items-center">
|
|
234
|
+
<div>
|
|
235
|
+
<SearchIcon className="w-6 h-6 inline-block mr-1" />
|
|
236
|
+
No events found.
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
)}
|
|
196
240
|
</div>
|
|
197
241
|
</div>
|
|
198
242
|
</div>
|
|
@@ -202,7 +246,7 @@ export default function Page({ events, services }: PageProps) {
|
|
|
202
246
|
);
|
|
203
247
|
}
|
|
204
248
|
|
|
205
|
-
export const
|
|
249
|
+
export const getStaticProps = () => {
|
|
206
250
|
const events = getAllEvents();
|
|
207
251
|
const services = getUniqueServicesNamesFromEvents(events);
|
|
208
252
|
|
package/pages/index.tsx
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
/* This example requires Tailwind CSS v2.0+ */
|
|
2
2
|
|
|
3
3
|
import Link from 'next/link';
|
|
4
|
+
import getConfig from 'next/config';
|
|
4
5
|
import { useConfig } from '@/hooks/EventCatalog';
|
|
5
6
|
|
|
6
7
|
export default function Example() {
|
|
7
8
|
const { title, tagline, logo } = useConfig();
|
|
8
9
|
|
|
9
|
-
const
|
|
10
|
+
const { publicRuntimeConfig: { basePath = '' } = {} } = getConfig();
|
|
11
|
+
const logoToLoad = logo || { alt: 'EventCatalog Logo', src: `logo.svg` };
|
|
10
12
|
|
|
11
13
|
return (
|
|
12
14
|
<main className="sm:bg-top md:min-h-screen bg-gradient-to-t from-blue-700 to-gray-800">
|
|
13
15
|
<div className="max-w-7xl mx-auto px-4 py-16 text-center sm:px-6 sm:py-24 lg:px-8 lg:py-48">
|
|
14
|
-
<img src={logoToLoad.src} alt={logoToLoad.alt} style={{ height: '85px' }} className="mx-auto" />
|
|
16
|
+
<img src={`${basePath}/${logoToLoad.src}`} alt={logoToLoad.alt} style={{ height: '85px' }} className="mx-auto" />
|
|
15
17
|
<h1 className="mt-2 text-4xl font-extrabold text-white tracking-tight sm:text-5xl">{title}</h1>
|
|
16
18
|
{tagline && <p className="mt-2 text-lg font-medium text-white">{tagline}</p>}
|
|
17
19
|
<div className="mt-5 max-w-md mx-auto sm:flex sm:justify-center md:mt-8">
|
package/pages/overview.tsx
CHANGED
|
@@ -12,15 +12,18 @@ function NodeElement({ node: { id } }: { node: { id: string } }) {
|
|
|
12
12
|
return <div className={`text-sm text-center p-1 rounded-md `}>{id}</div>;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
const MAX_LENGTH_FOR_NODES = 30;
|
|
16
|
+
const truncateNode = (value) => (value.length > MAX_LENGTH_FOR_NODES ? `${value.substring(0, MAX_LENGTH_FOR_NODES)}...` : value);
|
|
17
|
+
|
|
15
18
|
const graph = ({ events, services }) => {
|
|
16
|
-
const eventNodes = events.map(({ name: event }) => ({ id: event, group: 1, type: 'event' }));
|
|
17
|
-
const serviceNodes = services.map((service) => ({ id: service, group: 2, type: 'service' }));
|
|
19
|
+
const eventNodes = events.map(({ name: event }) => ({ id: truncateNode(event), group: 1, type: 'event' }));
|
|
20
|
+
const serviceNodes = services.map((service) => ({ id: truncateNode(service), group: 2, type: 'service' }));
|
|
18
21
|
|
|
19
22
|
// Create all links
|
|
20
23
|
const links = events.reduce((nodes, event) => {
|
|
21
24
|
const { consumers = [], producers = [], name } = event;
|
|
22
|
-
const consumerNodes = consumers.map((consumer) => ({ source: name, target: consumer }));
|
|
23
|
-
const producerNodes = producers.map((producer) => ({ source: producer, target: name }));
|
|
25
|
+
const consumerNodes = consumers.map((consumer) => ({ source: truncateNode(name), target: truncateNode(consumer) }));
|
|
26
|
+
const producerNodes = producers.map((producer) => ({ source: truncateNode(producer), target: truncateNode(name) }));
|
|
24
27
|
return nodes.concat(consumerNodes).concat(producerNodes);
|
|
25
28
|
}, []);
|
|
26
29
|
|
|
@@ -63,7 +66,7 @@ const graph = ({ events, services }) => {
|
|
|
63
66
|
|
|
64
67
|
export default graph;
|
|
65
68
|
|
|
66
|
-
export const
|
|
69
|
+
export const getStaticProps = () => {
|
|
67
70
|
const events = getAllEvents();
|
|
68
71
|
const services = getUniqueServicesNamesFromEvents(events);
|
|
69
72
|
|
package/pages/services.tsx
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { Fragment } from 'react';
|
|
1
|
+
import { Fragment, useState } from 'react';
|
|
2
2
|
import Head from 'next/head';
|
|
3
3
|
import { Service } from '@eventcatalog/types';
|
|
4
4
|
|
|
5
|
-
import Link from 'next/link';
|
|
6
|
-
|
|
7
5
|
import { Menu, Transition } from '@headlessui/react';
|
|
8
6
|
import { ChevronDownIcon } from '@heroicons/react/solid';
|
|
9
7
|
import ServiceGrid from '@/components/Grids/ServiceGrid';
|
|
@@ -24,6 +22,8 @@ export interface PageProps {
|
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
export default function Page({ services }: PageProps) {
|
|
25
|
+
const [showMermaidDiagrams, setShowMermaidDiagrams] = useState(false);
|
|
26
|
+
|
|
27
27
|
return (
|
|
28
28
|
<>
|
|
29
29
|
<Head>
|
|
@@ -83,22 +83,35 @@ export default function Page({ services }: PageProps) {
|
|
|
83
83
|
<div className="grid grid-cols-4 gap-x-8 gap-y-10">
|
|
84
84
|
{/* Filters */}
|
|
85
85
|
<form className="hidden lg:block">
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
86
|
+
<div className="border-b border-gray-200 pb-6">
|
|
87
|
+
<h3 className="-my-3 flow-root">
|
|
88
|
+
<div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
|
|
89
|
+
<span className="font-medium text-gray-900">Features</span>
|
|
90
|
+
</div>
|
|
91
|
+
</h3>
|
|
92
|
+
<div className="pt-6">
|
|
93
|
+
<div className="space-y-4">
|
|
94
|
+
<div className="flex items-center">
|
|
95
|
+
<input
|
|
96
|
+
id="show-mermaid"
|
|
97
|
+
type="checkbox"
|
|
98
|
+
onChange={(e) => setShowMermaidDiagrams(e.target.checked)}
|
|
99
|
+
defaultChecked={showMermaidDiagrams}
|
|
100
|
+
className="h-4 w-4 border-gray-300 rounded text-gray-600 focus:ring-gray-500"
|
|
101
|
+
/>
|
|
102
|
+
<label htmlFor="show-mermaid" className="ml-3 text-sm text-gray-600">
|
|
103
|
+
Show Mermaid Diagrams
|
|
104
|
+
</label>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
96
109
|
</form>
|
|
97
110
|
|
|
98
111
|
<div className="col-span-4 lg:col-span-3">
|
|
99
112
|
<div>
|
|
100
113
|
<h2 className="text-gray-500 text-xs font-medium uppercase tracking-wide">Services</h2>
|
|
101
|
-
<ServiceGrid services={services} />
|
|
114
|
+
<ServiceGrid services={services} showMermaidDiagrams={showMermaidDiagrams} />
|
|
102
115
|
</div>
|
|
103
116
|
</div>
|
|
104
117
|
</div>
|
|
@@ -108,7 +121,7 @@ export default function Page({ services }: PageProps) {
|
|
|
108
121
|
);
|
|
109
122
|
}
|
|
110
123
|
|
|
111
|
-
export async function
|
|
124
|
+
export async function getStaticProps() {
|
|
112
125
|
const services = getAllServices();
|
|
113
126
|
|
|
114
127
|
return {
|
package/pages/users/[id].tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Event, Service } from '@eventcatalog/types';
|
|
2
2
|
import EventGrid from '@/components/Grids/EventGrid';
|
|
3
3
|
import ServiceGrid from '@/components/Grids/ServiceGrid';
|
|
4
|
-
import { getAllEventsByOwnerId } from '@/lib/events';
|
|
4
|
+
import { getAllEventsByOwnerId, getAllOwners } from '@/lib/events';
|
|
5
5
|
import { getAllServicesByOwnerId } from '@/lib/services';
|
|
6
6
|
|
|
7
7
|
import { useUser } from '@/hooks/EventCatalog';
|
|
@@ -59,8 +59,8 @@ export default function UserPage({ events, services, userId }: UserPageProps) {
|
|
|
59
59
|
);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
export const
|
|
63
|
-
const { id: userId } =
|
|
62
|
+
export const getStaticProps = async ({ params }) => {
|
|
63
|
+
const { id: userId } = params;
|
|
64
64
|
const userEvents = await getAllEventsByOwnerId(userId);
|
|
65
65
|
const services = await getAllServicesByOwnerId(userId);
|
|
66
66
|
|
|
@@ -72,3 +72,14 @@ export const getServerSideProps = async (req) => {
|
|
|
72
72
|
},
|
|
73
73
|
};
|
|
74
74
|
};
|
|
75
|
+
|
|
76
|
+
export async function getStaticPaths() {
|
|
77
|
+
const owners = getAllOwners();
|
|
78
|
+
|
|
79
|
+
const paths = owners.map((owner) => ({ params: { id: owner } }));
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
paths,
|
|
83
|
+
fallback: false,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
|
|
4
|
+
const getAllEventsAndSchemaPaths = (directory) => {
|
|
5
|
+
const folders = fs.readdirSync(directory);
|
|
6
|
+
return folders.map((folder) => {
|
|
7
|
+
const allFilesInEventFolder = fs.readdirSync(path.join(directory, folder));
|
|
8
|
+
const schemaFileName = allFilesInEventFolder.find((fileName) => fileName.includes('schema'));
|
|
9
|
+
const eventHasVersions = !!allFilesInEventFolder.find((fileName) => fileName.includes('versioned'));
|
|
10
|
+
let versions = [];
|
|
11
|
+
|
|
12
|
+
if (eventHasVersions) {
|
|
13
|
+
versions = getAllEventsAndSchemaPaths(path.join(directory, folder, 'versioned'));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
name: folder,
|
|
18
|
+
schemaFileName,
|
|
19
|
+
schemaContent: schemaFileName ? fs.readFileSync(path.join(directory, folder, schemaFileName), 'utf-8') : null,
|
|
20
|
+
versions,
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const main = async () => {
|
|
26
|
+
const publicDir = path.join(__dirname, '../public');
|
|
27
|
+
const publicSchemaDir = path.join(publicDir, 'schemas');
|
|
28
|
+
|
|
29
|
+
if (fs.existsSync(publicSchemaDir)) {
|
|
30
|
+
fs.rmSync(publicSchemaDir, { recursive: true, force: true });
|
|
31
|
+
}
|
|
32
|
+
fs.mkdirSync(publicSchemaDir);
|
|
33
|
+
|
|
34
|
+
const eventsWithSchemaPaths = getAllEventsAndSchemaPaths(path.join(process.env.PROJECT_DIR, 'events'));
|
|
35
|
+
const eventsWithSchemas = eventsWithSchemaPaths.filter((event) => !!event.schemaContent);
|
|
36
|
+
|
|
37
|
+
eventsWithSchemas.forEach((event) => {
|
|
38
|
+
const eventDir = path.join(publicSchemaDir, event.name);
|
|
39
|
+
|
|
40
|
+
if (!fs.existsSync(eventDir)) {
|
|
41
|
+
fs.mkdirSync(eventDir);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const eventVersions = event.versions;
|
|
45
|
+
const versionsWithSchemas = eventVersions.filter((version) => !!version.schemaContent);
|
|
46
|
+
|
|
47
|
+
versionsWithSchemas.forEach((version) => {
|
|
48
|
+
const versionDir = path.join(eventDir, version.name);
|
|
49
|
+
if (!fs.existsSync(versionDir)) {
|
|
50
|
+
fs.mkdirSync(versionDir);
|
|
51
|
+
}
|
|
52
|
+
fs.writeFileSync(path.join(versionDir, version.schemaFileName), version.schemaContent);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
fs.writeFileSync(path.join(eventDir, event.schemaFileName), event.schemaContent);
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
main();
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
exports.id = 596;
|
|
3
|
-
exports.ids = [596];
|
|
4
|
-
exports.modules = {
|
|
5
|
-
|
|
6
|
-
/***/ 9596:
|
|
7
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
8
|
-
|
|
9
|
-
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__) => {
|
|
10
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11
|
-
/* harmony export */ "UV": () => (/* binding */ getAllServices),
|
|
12
|
-
/* harmony export */ "vY": () => (/* binding */ getAllServicesByOwnerId),
|
|
13
|
-
/* harmony export */ "in": () => (/* binding */ getServiceByName)
|
|
14
|
-
/* harmony export */ });
|
|
15
|
-
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7147);
|
|
16
|
-
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__);
|
|
17
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1017);
|
|
18
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);
|
|
19
|
-
/* harmony import */ var next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7112);
|
|
20
|
-
/* harmony import */ var next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_2__);
|
|
21
|
-
/* harmony import */ var _lib_file_reader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2432);
|
|
22
|
-
/* harmony import */ var _lib_events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9959);
|
|
23
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_lib_events__WEBPACK_IMPORTED_MODULE_4__]);
|
|
24
|
-
_lib_events__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? await __webpack_async_dependencies__ : __webpack_async_dependencies__)[0];
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const buildService = (eventFrontMatter)=>{
|
|
31
|
-
const { name , summary , owners =[] , repository ={
|
|
32
|
-
} , tags =[] , externalLinks =[] } = eventFrontMatter;
|
|
33
|
-
return {
|
|
34
|
-
name,
|
|
35
|
-
summary,
|
|
36
|
-
owners,
|
|
37
|
-
repository,
|
|
38
|
-
tags,
|
|
39
|
-
externalLinks
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
const getAllServices = ()=>{
|
|
43
|
-
const servicesDir = path__WEBPACK_IMPORTED_MODULE_1___default().join(process.env.PROJECT_DIR, 'services');
|
|
44
|
-
const folders = fs__WEBPACK_IMPORTED_MODULE_0___default().readdirSync(servicesDir);
|
|
45
|
-
const services = folders.map((folder)=>(0,_lib_file_reader__WEBPACK_IMPORTED_MODULE_3__/* .readMarkdownFile */ .ws)(path__WEBPACK_IMPORTED_MODULE_1___default().join(servicesDir, folder, 'index.md'))
|
|
46
|
-
);
|
|
47
|
-
const events = (0,_lib_events__WEBPACK_IMPORTED_MODULE_4__/* .getAllEvents */ .IP)();
|
|
48
|
-
const parsedServices = services.map((frontMatter)=>buildService(frontMatter.data)
|
|
49
|
-
);
|
|
50
|
-
// @ts-ignore
|
|
51
|
-
return parsedServices.map((service)=>({
|
|
52
|
-
...service,
|
|
53
|
-
...(0,_lib_events__WEBPACK_IMPORTED_MODULE_4__/* .getAllEventsThatHaveRelationshipWithService */ .X4)(service, events)
|
|
54
|
-
})
|
|
55
|
-
);
|
|
56
|
-
};
|
|
57
|
-
const getAllServicesByOwnerId = async (ownerId)=>{
|
|
58
|
-
const services = await getAllServices();
|
|
59
|
-
const servicesOwnedByUser = services.filter((service)=>service.owners.some((id)=>id === ownerId
|
|
60
|
-
)
|
|
61
|
-
);
|
|
62
|
-
return servicesOwnedByUser.map((service)=>({
|
|
63
|
-
...service
|
|
64
|
-
})
|
|
65
|
-
);
|
|
66
|
-
};
|
|
67
|
-
const getServiceByName = async (serviceName)=>{
|
|
68
|
-
try {
|
|
69
|
-
const servicesDir = path__WEBPACK_IMPORTED_MODULE_1___default().join(process.env.PROJECT_DIR, 'services');
|
|
70
|
-
const serviceDirectory = path__WEBPACK_IMPORTED_MODULE_1___default().join(servicesDir, serviceName);
|
|
71
|
-
const { data , content } = (0,_lib_file_reader__WEBPACK_IMPORTED_MODULE_3__/* .readMarkdownFile */ .ws)(path__WEBPACK_IMPORTED_MODULE_1___default().join(serviceDirectory, `index.md`));
|
|
72
|
-
const service = buildService(data);
|
|
73
|
-
const events = (0,_lib_events__WEBPACK_IMPORTED_MODULE_4__/* .getAllEvents */ .IP)();
|
|
74
|
-
const mdxSource = await (0,next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_2__.serialize)(content);
|
|
75
|
-
return {
|
|
76
|
-
// @ts-ignore
|
|
77
|
-
service: {
|
|
78
|
-
...service,
|
|
79
|
-
...(0,_lib_events__WEBPACK_IMPORTED_MODULE_4__/* .getAllEventsThatHaveRelationshipWithService */ .X4)(service, events)
|
|
80
|
-
},
|
|
81
|
-
markdown: {
|
|
82
|
-
content,
|
|
83
|
-
lastModifiedDate: (0,_lib_file_reader__WEBPACK_IMPORTED_MODULE_3__/* .getLastModifiedDateOfFile */ .cn)(path__WEBPACK_IMPORTED_MODULE_1___default().join(serviceDirectory, `index.md`)),
|
|
84
|
-
source: mdxSource
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
} catch (error) {
|
|
88
|
-
console.log('Failed to get service by name', serviceName);
|
|
89
|
-
return Promise.reject();
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
/***/ })
|
|
96
|
-
|
|
97
|
-
};
|
|
98
|
-
;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
(() => {
|
|
3
|
-
var exports = {};
|
|
4
|
-
exports.id = 148;
|
|
5
|
-
exports.ids = [148];
|
|
6
|
-
exports.modules = {
|
|
7
|
-
|
|
8
|
-
/***/ 2374:
|
|
9
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
10
|
-
|
|
11
|
-
// ESM COMPAT FLAG
|
|
12
|
-
__webpack_require__.r(__webpack_exports__);
|
|
13
|
-
|
|
14
|
-
// EXPORTS
|
|
15
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
16
|
-
"default": () => (/* binding */ download)
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
;// CONCATENATED MODULE: external "fs"
|
|
20
|
-
const external_fs_namespaceObject = require("fs");
|
|
21
|
-
var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_namespaceObject);
|
|
22
|
-
;// CONCATENATED MODULE: external "path"
|
|
23
|
-
const external_path_namespaceObject = require("path");
|
|
24
|
-
var external_path_default = /*#__PURE__*/__webpack_require__.n(external_path_namespaceObject);
|
|
25
|
-
;// CONCATENATED MODULE: ./pages/api/event/[name]/download.js
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// eslint-disable-next-line func-names
|
|
29
|
-
/* harmony default export */ function download(req, res) {
|
|
30
|
-
const { name: eventName } = req.query;
|
|
31
|
-
const eventDir = external_path_default().join(process.env.PROJECT_DIR, 'events', eventName);
|
|
32
|
-
try {
|
|
33
|
-
const filesInEventDir = external_fs_default().readdirSync(eventDir);
|
|
34
|
-
const schemaFileName = filesInEventDir.find((fileName)=>fileName.indexOf('schema.') > -1
|
|
35
|
-
);
|
|
36
|
-
if (schemaFileName) {
|
|
37
|
-
const extension = schemaFileName.split('.').pop();
|
|
38
|
-
const schemaFile = external_fs_default().readFileSync(external_path_default().join(eventDir, schemaFileName));
|
|
39
|
-
res.send({
|
|
40
|
-
schema: schemaFile.toString(),
|
|
41
|
-
fileName: `${eventName}.${extension}`
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
res.status(404).end();
|
|
45
|
-
} catch (error) {
|
|
46
|
-
console.log(error);
|
|
47
|
-
res.status(404).end();
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
/***/ })
|
|
53
|
-
|
|
54
|
-
};
|
|
55
|
-
;
|
|
56
|
-
|
|
57
|
-
// load runtime
|
|
58
|
-
var __webpack_require__ = require("../../../../webpack-api-runtime.js");
|
|
59
|
-
__webpack_require__.C(exports);
|
|
60
|
-
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
61
|
-
var __webpack_exports__ = (__webpack_exec__(2374));
|
|
62
|
-
module.exports = __webpack_exports__;
|
|
63
|
-
|
|
64
|
-
})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../webpack-api-runtime.js","../../../../../../package.json","../../../../../../package.json"]}
|