handler-delete-data.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { getBlockConnection } from '../helper';
  2. function deleteData({ data, outputs }) {
  3. return new Promise((resolve) => {
  4. data.deleteList.forEach((item) => {
  5. if (item.type === 'table') {
  6. if (item.columnId === '[all]') {
  7. this.engine.referenceData.table = [];
  8. this.engine.columns = {
  9. column: { index: 0, name: 'column', type: 'any' },
  10. };
  11. } else {
  12. const columnName = this.engine.columns[item.columnId].name;
  13. this.engine.referenceData.table.forEach((_, index) => {
  14. const row = this.engine.referenceData.table[index];
  15. delete row[columnName];
  16. if (!row || Object.keys(row).length === 0) {
  17. this.engine.referenceData.table[index] = {};
  18. }
  19. });
  20. this.engine.columns[item.columnId].index = 0;
  21. }
  22. } else if (item.variableName) {
  23. delete this.engine.referenceData.variables[item.variableName];
  24. }
  25. });
  26. resolve({
  27. data: '',
  28. nextBlockId: getBlockConnection({ outputs }),
  29. });
  30. });
  31. }
  32. export default deleteData;