@eventcatalog/sdk 2.18.0 → 2.18.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.
package/dist/index.mjs CHANGED
@@ -1433,6 +1433,17 @@ import fs6 from "fs/promises";
1433
1433
  import path2, { join as join7 } from "path";
1434
1434
  import fsSync3 from "fs";
1435
1435
  import matter3 from "gray-matter";
1436
+ var resolveDomainWriteDirectory = async (directory, id, version) => {
1437
+ const existingResource = await findFileById(directory, id, version);
1438
+ if (!existingResource) return directory;
1439
+ const normalizedPath = existingResource.replace(/\\/g, "/");
1440
+ const lastDomainsIndex = normalizedPath.lastIndexOf("/domains/");
1441
+ const lastSubdomainsIndex = normalizedPath.lastIndexOf("/subdomains/");
1442
+ const lastIndex = Math.max(lastDomainsIndex, lastSubdomainsIndex);
1443
+ if (lastIndex === -1) return directory;
1444
+ const segment = lastSubdomainsIndex > lastDomainsIndex ? "/subdomains" : "/domains";
1445
+ return existingResource.substring(0, lastIndex + segment.length);
1446
+ };
1436
1447
  var getDomain = (directory) => async (id, version) => getResource(directory, id, version, { type: "domain" });
1437
1448
  var getDomains = (directory) => async (options) => getResources(directory, {
1438
1449
  type: "domains",
@@ -1502,8 +1513,9 @@ var addServiceToDomain = (directory) => async (id, service, version) => {
1502
1513
  return;
1503
1514
  }
1504
1515
  domain.services.push(service);
1516
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1505
1517
  await rmDomainById(directory)(id, version, true);
1506
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1518
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1507
1519
  };
1508
1520
  var addSubDomainToDomain = (directory) => async (id, subDomain, version) => {
1509
1521
  let domain = await getDomain(directory)(id, version);
@@ -1517,8 +1529,9 @@ var addSubDomainToDomain = (directory) => async (id, subDomain, version) => {
1517
1529
  return;
1518
1530
  }
1519
1531
  domain.domains.push(subDomain);
1532
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1520
1533
  await rmDomainById(directory)(id, version, true);
1521
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1534
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1522
1535
  };
1523
1536
  var addEntityToDomain = (directory) => async (id, entity, version) => {
1524
1537
  let domain = await getDomain(directory)(id, version);
@@ -1532,8 +1545,9 @@ var addEntityToDomain = (directory) => async (id, entity, version) => {
1532
1545
  return;
1533
1546
  }
1534
1547
  domain.entities.push(entity);
1548
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1535
1549
  await rmDomainById(directory)(id, version, true);
1536
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1550
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1537
1551
  };
1538
1552
  var addDataProductToDomain = (directory) => async (id, dataProduct, version) => {
1539
1553
  let domain = await getDomain(directory)(id, version);
@@ -1549,8 +1563,9 @@ var addDataProductToDomain = (directory) => async (id, dataProduct, version) =>
1549
1563
  return;
1550
1564
  }
1551
1565
  domain.dataProducts.push(dataProduct);
1566
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1552
1567
  await rmDomainById(directory)(id, version, true);
1553
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1568
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1554
1569
  };
1555
1570
  var addMessageToDomain = (directory) => async (id, direction, message, version) => {
1556
1571
  let domain = await getDomain(directory)(id, version);
@@ -1579,15 +1594,9 @@ var addMessageToDomain = (directory) => async (id, direction, message, version)
1579
1594
  } else {
1580
1595
  throw new Error(`Direction ${direction} is invalid, only 'receives' and 'sends' are supported`);
1581
1596
  }
1582
- const existingResource = await findFileById(directory, id, version);
1583
- if (!existingResource) {
1584
- throw new Error(`Cannot find domain ${id} in the catalog`);
1585
- }
1586
- const normalizedPath = existingResource.replace(/\\/g, "/");
1587
- const lastDomainsIndex = normalizedPath.lastIndexOf("/domains/");
1588
- const pathToResource = existingResource.substring(0, lastDomainsIndex + "/domains".length);
1597
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1589
1598
  await rmDomainById(directory)(id, version, true);
1590
- await writeDomain(pathToResource)(domain, { format: extension === ".md" ? "md" : "mdx" });
1599
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1591
1600
  };
1592
1601
 
1593
1602
  // src/channels.ts