@aicupa/plugin-cut 1.0.1 → 1.0.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/service.js +36 -35
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aicupa/plugin-cut",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Cut and paste tree nodes",
5
5
  "main": "./service",
6
6
  "view": "./view",
package/service.js CHANGED
@@ -1,79 +1,80 @@
1
- const { createPlugin } = require('@aicupa/api')
1
+ const { createPlugin } = require("@aicupa/api");
2
2
 
3
3
  module.exports = createPlugin((api) => {
4
- let cutBuffer = null
4
+ let cutBuffer = null;
5
5
 
6
6
  return {
7
7
  cutNode({ node, filePath }) {
8
- cutBuffer = { node, filePath }
9
- return { ok: true }
8
+ cutBuffer = { node, filePath };
9
+ return { ok: true };
10
10
  },
11
11
 
12
12
  async pasteNode({ targetNode, filePath }) {
13
13
  if (!cutBuffer) {
14
- return { ok: false, error: 'No node in cut buffer' }
14
+ return { ok: false, error: "No node in cut buffer" };
15
15
  }
16
16
 
17
- const source = cutBuffer
18
- cutBuffer = null
17
+ const source = cutBuffer;
18
+ cutBuffer = null;
19
19
 
20
- const tree = await api.getTree(filePath)
21
- if (!tree) {
22
- return { ok: false, error: 'Failed to read tree' }
20
+ const storeData = await api.getTree(filePath);
21
+ if (!storeData) {
22
+ return { ok: false, error: "Failed to read tree" };
23
23
  }
24
24
 
25
- const treeData = api.getArray(tree.tree || tree)
25
+ const treeData = api.getArray(storeData.tree);
26
26
 
27
- const removed = removeNodeByKey(treeData, source.node.key)
27
+ const removed = removeNodeByKey(treeData, source.node.key);
28
28
  if (!removed) {
29
- return { ok: false, error: 'Source node not found' }
29
+ return { ok: false, error: "Source node not found" };
30
30
  }
31
31
 
32
- const target = findNode(treeData, targetNode.key)
32
+ const target = findNode(treeData, targetNode.key);
33
33
  if (!target) {
34
- return { ok: false, error: 'Target node not found' }
34
+ return { ok: false, error: "Target node not found" };
35
35
  }
36
36
 
37
37
  if (!Array.isArray(target.children)) {
38
- target.children = []
38
+ target.children = [];
39
39
  }
40
- target.children.push(removed)
40
+ target.children.push(removed);
41
41
 
42
- await api.store('todotree', treeData, filePath)
43
- api.reload(filePath)
42
+ storeData.tree = treeData;
43
+ await api.store("todotree", storeData, filePath);
44
+ api.reload(filePath);
44
45
 
45
- return { ok: true }
46
+ return { ok: true };
46
47
  },
47
48
 
48
49
  getCutBuffer() {
49
- return { ok: true, node: cutBuffer?.node || null }
50
+ return { ok: true, node: cutBuffer?.node || null };
50
51
  },
51
52
 
52
53
  clearCutBuffer() {
53
- cutBuffer = null
54
- return { ok: true }
54
+ cutBuffer = null;
55
+ return { ok: true };
55
56
  },
56
- }
57
- })
57
+ };
58
+ });
58
59
 
59
60
  function findNode(tree, key) {
60
- if (!Array.isArray(tree)) return null
61
+ if (!Array.isArray(tree)) return null;
61
62
  for (const node of tree) {
62
- if (node.key == key) return node
63
- const found = findNode(node.children, key)
64
- if (found) return found
63
+ if (node.key == key) return node;
64
+ const found = findNode(node.children, key);
65
+ if (found) return found;
65
66
  }
66
- return null
67
+ return null;
67
68
  }
68
69
 
69
70
  function removeNodeByKey(tree, key) {
70
- if (!Array.isArray(tree)) return null
71
+ if (!Array.isArray(tree)) return null;
71
72
  for (let i = 0; i < tree.length; i++) {
72
73
  if (tree[i].key == key) {
73
- return tree.splice(i, 1)[0]
74
+ return tree.splice(i, 1)[0];
74
75
  }
75
- const found = removeNodeByKey(tree[i].children, key)
76
- if (found) return found
76
+ const found = removeNodeByKey(tree[i].children, key);
77
+ if (found) return found;
77
78
  }
78
- return null
79
+ return null;
79
80
  }