@buerli.io/headless 0.9.1-beta.0 → 0.9.1-beta.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.
@@ -1722,10 +1722,13 @@ class CAD {
1722
1722
  return null;
1723
1723
  }, partId);
1724
1724
  },
1725
- setExpressions: (...expressions) => {
1726
- return this.resolve(async ([...rExpressions]) => {
1727
- const expressionsToSet = [];
1728
- rExpressions.forEach(expr => {
1725
+ setExpressions: async (...expressions) => {
1726
+ var e_13, _a;
1727
+ const expressionsToSet = [];
1728
+ try {
1729
+ for (var expressions_1 = __asyncValues(expressions), expressions_1_1; expressions_1_1 = await expressions_1.next(), !expressions_1_1.done;) {
1730
+ const expr = expressions_1_1.value;
1731
+ const [rPartId] = await new Promise(res => this.resolve(id => res(id), expr.partId));
1729
1732
  const membersToModify = [];
1730
1733
  expr.members.forEach((mem) => {
1731
1734
  const isExpr = typeof mem.value === 'string'; // TODO Expression unterscheiden von normalen Strings
@@ -1736,17 +1739,22 @@ class CAD {
1736
1739
  membersToModify.push({ name: mem.name, value: featureAPIParam });
1737
1740
  });
1738
1741
  // Looking for the partId given by an identifier or name
1739
- let part = expr.partId;
1742
+ let part = rPartId;
1740
1743
  if (typeof part === 'string') {
1741
- const products = asmUtils.getPartTemplate(drawingId, part);
1742
- if (products.length > 1) {
1743
- throw 'More than one product has been found for given name or ident: ' + part;
1744
+ const foundPart = baseUtils.findObject(drawingId, { ident: part, name: part });
1745
+ if (!foundPart) {
1746
+ throw 'No part found to set expressions on for given name or ident: ' + part;
1744
1747
  }
1745
- else if (products.length < 1) {
1746
- throw 'No product found for given name or ident: ' + part;
1748
+ const clazz = (0, core_1.getDrawing)(drawingId).structure.tree[foundPart].class;
1749
+ if (!baseUtils.isA(clazz, classcad_1.CCClasses.CCPart)) {
1750
+ throw ('The part to set expressions on given by name or ident "' +
1751
+ part +
1752
+ '" is of the wrong type "' +
1753
+ clazz +
1754
+ '". Make sure the object is a part.');
1747
1755
  }
1748
1756
  else {
1749
- part = products[0];
1757
+ part = foundPart;
1750
1758
  }
1751
1759
  }
1752
1760
  expressionsToSet.push({
@@ -1755,10 +1763,17 @@ class CAD {
1755
1763
  toModifyMembers: membersToModify,
1756
1764
  toDeleteList: [],
1757
1765
  });
1758
- });
1759
- const success = await featureAPI.updateExpressions(drawingId, expressionsToSet);
1760
- return success;
1761
- }, ...expressions);
1766
+ }
1767
+ }
1768
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
1769
+ finally {
1770
+ try {
1771
+ if (expressions_1_1 && !expressions_1_1.done && (_a = expressions_1.return)) await _a.call(expressions_1);
1772
+ }
1773
+ finally { if (e_13) throw e_13.error; }
1774
+ }
1775
+ const success = await featureAPI.updateExpressions(drawingId, expressionsToSet);
1776
+ return success;
1762
1777
  },
1763
1778
  deleteExpressions: (partId, members) => {
1764
1779
  return this.resolve(async ([rPartId]) => {
@@ -1720,10 +1720,13 @@ export default class CAD {
1720
1720
  return null;
1721
1721
  }, partId);
1722
1722
  },
1723
- setExpressions: (...expressions) => {
1724
- return this.resolve(async ([...rExpressions]) => {
1725
- const expressionsToSet = [];
1726
- rExpressions.forEach(expr => {
1723
+ setExpressions: async (...expressions) => {
1724
+ var e_13, _a;
1725
+ const expressionsToSet = [];
1726
+ try {
1727
+ for (var expressions_1 = __asyncValues(expressions), expressions_1_1; expressions_1_1 = await expressions_1.next(), !expressions_1_1.done;) {
1728
+ const expr = expressions_1_1.value;
1729
+ const [rPartId] = await new Promise(res => this.resolve(id => res(id), expr.partId));
1727
1730
  const membersToModify = [];
1728
1731
  expr.members.forEach((mem) => {
1729
1732
  const isExpr = typeof mem.value === 'string'; // TODO Expression unterscheiden von normalen Strings
@@ -1734,17 +1737,22 @@ export default class CAD {
1734
1737
  membersToModify.push({ name: mem.name, value: featureAPIParam });
1735
1738
  });
1736
1739
  // Looking for the partId given by an identifier or name
1737
- let part = expr.partId;
1740
+ let part = rPartId;
1738
1741
  if (typeof part === 'string') {
1739
- const products = asmUtils.getPartTemplate(drawingId, part);
1740
- if (products.length > 1) {
1741
- throw 'More than one product has been found for given name or ident: ' + part;
1742
+ const foundPart = baseUtils.findObject(drawingId, { ident: part, name: part });
1743
+ if (!foundPart) {
1744
+ throw 'No part found to set expressions on for given name or ident: ' + part;
1742
1745
  }
1743
- else if (products.length < 1) {
1744
- throw 'No product found for given name or ident: ' + part;
1746
+ const clazz = getDrawing(drawingId).structure.tree[foundPart].class;
1747
+ if (!baseUtils.isA(clazz, CCClasses.CCPart)) {
1748
+ throw ('The part to set expressions on given by name or ident "' +
1749
+ part +
1750
+ '" is of the wrong type "' +
1751
+ clazz +
1752
+ '". Make sure the object is a part.');
1745
1753
  }
1746
1754
  else {
1747
- part = products[0];
1755
+ part = foundPart;
1748
1756
  }
1749
1757
  }
1750
1758
  expressionsToSet.push({
@@ -1753,10 +1761,17 @@ export default class CAD {
1753
1761
  toModifyMembers: membersToModify,
1754
1762
  toDeleteList: [],
1755
1763
  });
1756
- });
1757
- const success = await featureAPI.updateExpressions(drawingId, expressionsToSet);
1758
- return success;
1759
- }, ...expressions);
1764
+ }
1765
+ }
1766
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
1767
+ finally {
1768
+ try {
1769
+ if (expressions_1_1 && !expressions_1_1.done && (_a = expressions_1.return)) await _a.call(expressions_1);
1770
+ }
1771
+ finally { if (e_13) throw e_13.error; }
1772
+ }
1773
+ const success = await featureAPI.updateExpressions(drawingId, expressionsToSet);
1774
+ return success;
1760
1775
  },
1761
1776
  deleteExpressions: (partId, members) => {
1762
1777
  return this.resolve(async ([rPartId]) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buerli.io/headless",
3
- "version": "0.9.1-beta.0",
3
+ "version": "0.9.1-beta.1",
4
4
  "description": "A non-manifold CAD workflow for the web",
5
5
  "author": "AWV Informatik AG <info@awv-informatik.ch>",
6
6
  "license": "ISC",
@@ -32,7 +32,7 @@
32
32
  "three-stdlib": ">=2.11.0"
33
33
  },
34
34
  "dependencies": {
35
- "@buerli.io/classcad": "0.9.1-beta.0",
35
+ "@buerli.io/classcad": "0.9.1-beta.1",
36
36
  "flat-promise": "^1.0.3"
37
37
  }
38
38
  }