@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.js CHANGED
@@ -1467,6 +1467,17 @@ var import_promises6 = __toESM(require("fs/promises"));
1467
1467
  var import_node_path8 = __toESM(require("path"));
1468
1468
  var import_node_fs3 = __toESM(require("fs"));
1469
1469
  var import_gray_matter3 = __toESM(require("gray-matter"));
1470
+ var resolveDomainWriteDirectory = async (directory, id, version) => {
1471
+ const existingResource = await findFileById(directory, id, version);
1472
+ if (!existingResource) return directory;
1473
+ const normalizedPath = existingResource.replace(/\\/g, "/");
1474
+ const lastDomainsIndex = normalizedPath.lastIndexOf("/domains/");
1475
+ const lastSubdomainsIndex = normalizedPath.lastIndexOf("/subdomains/");
1476
+ const lastIndex = Math.max(lastDomainsIndex, lastSubdomainsIndex);
1477
+ if (lastIndex === -1) return directory;
1478
+ const segment = lastSubdomainsIndex > lastDomainsIndex ? "/subdomains" : "/domains";
1479
+ return existingResource.substring(0, lastIndex + segment.length);
1480
+ };
1470
1481
  var getDomain = (directory) => async (id, version) => getResource(directory, id, version, { type: "domain" });
1471
1482
  var getDomains = (directory) => async (options) => getResources(directory, {
1472
1483
  type: "domains",
@@ -1536,8 +1547,9 @@ var addServiceToDomain = (directory) => async (id, service, version) => {
1536
1547
  return;
1537
1548
  }
1538
1549
  domain.services.push(service);
1550
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1539
1551
  await rmDomainById(directory)(id, version, true);
1540
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1552
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1541
1553
  };
1542
1554
  var addSubDomainToDomain = (directory) => async (id, subDomain, version) => {
1543
1555
  let domain = await getDomain(directory)(id, version);
@@ -1551,8 +1563,9 @@ var addSubDomainToDomain = (directory) => async (id, subDomain, version) => {
1551
1563
  return;
1552
1564
  }
1553
1565
  domain.domains.push(subDomain);
1566
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1554
1567
  await rmDomainById(directory)(id, version, true);
1555
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1568
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1556
1569
  };
1557
1570
  var addEntityToDomain = (directory) => async (id, entity, version) => {
1558
1571
  let domain = await getDomain(directory)(id, version);
@@ -1566,8 +1579,9 @@ var addEntityToDomain = (directory) => async (id, entity, version) => {
1566
1579
  return;
1567
1580
  }
1568
1581
  domain.entities.push(entity);
1582
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1569
1583
  await rmDomainById(directory)(id, version, true);
1570
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1584
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1571
1585
  };
1572
1586
  var addDataProductToDomain = (directory) => async (id, dataProduct, version) => {
1573
1587
  let domain = await getDomain(directory)(id, version);
@@ -1583,8 +1597,9 @@ var addDataProductToDomain = (directory) => async (id, dataProduct, version) =>
1583
1597
  return;
1584
1598
  }
1585
1599
  domain.dataProducts.push(dataProduct);
1600
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1586
1601
  await rmDomainById(directory)(id, version, true);
1587
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1602
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1588
1603
  };
1589
1604
  var addMessageToDomain = (directory) => async (id, direction, message, version) => {
1590
1605
  let domain = await getDomain(directory)(id, version);
@@ -1613,15 +1628,9 @@ var addMessageToDomain = (directory) => async (id, direction, message, version)
1613
1628
  } else {
1614
1629
  throw new Error(`Direction ${direction} is invalid, only 'receives' and 'sends' are supported`);
1615
1630
  }
1616
- const existingResource = await findFileById(directory, id, version);
1617
- if (!existingResource) {
1618
- throw new Error(`Cannot find domain ${id} in the catalog`);
1619
- }
1620
- const normalizedPath = existingResource.replace(/\\/g, "/");
1621
- const lastDomainsIndex = normalizedPath.lastIndexOf("/domains/");
1622
- const pathToResource = existingResource.substring(0, lastDomainsIndex + "/domains".length);
1631
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1623
1632
  await rmDomainById(directory)(id, version, true);
1624
- await writeDomain(pathToResource)(domain, { format: extension === ".md" ? "md" : "mdx" });
1633
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1625
1634
  };
1626
1635
 
1627
1636
  // src/channels.ts