@aicupa/plugin-cut 1.0.1 → 1.0.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aicupa/plugin-cut",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Cut and paste tree nodes",
5
5
  "main": "./service",
6
6
  "view": "./view",
@@ -24,7 +24,7 @@
24
24
  "access": "public"
25
25
  },
26
26
  "license": "MIT",
27
- "dependencies": {
28
- "@aicupa/api": "^1.0.1"
27
+ "devDependencies": {
28
+ "@aicupa/api": "^1.0.2"
29
29
  }
30
30
  }
package/service.js CHANGED
@@ -1,79 +1,82 @@
1
- const { createPlugin } = require('@aicupa/api')
2
-
3
- module.exports = createPlugin((api) => {
4
- let cutBuffer = null
1
+ /**
2
+ * @param {import('@aicupa/api').PluginApi} api
3
+ * @returns {import('@aicupa/api').Plugin}
4
+ */
5
+ module.exports = (api) => {
6
+ let cutBuffer = null;
5
7
 
6
8
  return {
7
9
  cutNode({ node, filePath }) {
8
- cutBuffer = { node, filePath }
9
- return { ok: true }
10
+ cutBuffer = { node, filePath };
11
+ return { ok: true };
10
12
  },
11
13
 
12
14
  async pasteNode({ targetNode, filePath }) {
13
15
  if (!cutBuffer) {
14
- return { ok: false, error: 'No node in cut buffer' }
16
+ return { ok: false, error: "No node in cut buffer" };
15
17
  }
16
18
 
17
- const source = cutBuffer
18
- cutBuffer = null
19
+ const source = cutBuffer;
20
+ cutBuffer = null;
19
21
 
20
- const tree = await api.getTree(filePath)
21
- if (!tree) {
22
- return { ok: false, error: 'Failed to read tree' }
22
+ const storeData = await api.getTree(filePath);
23
+ if (!storeData) {
24
+ return { ok: false, error: "Failed to read tree" };
23
25
  }
24
26
 
25
- const treeData = api.getArray(tree.tree || tree)
27
+ const treeData = api.getArray(storeData.tree);
26
28
 
27
- const removed = removeNodeByKey(treeData, source.node.key)
29
+ const removed = removeNodeByKey(treeData, source.node.key);
28
30
  if (!removed) {
29
- return { ok: false, error: 'Source node not found' }
31
+ return { ok: false, error: "Source node not found" };
30
32
  }
31
33
 
32
- const target = findNode(treeData, targetNode.key)
34
+ const target = findNode(treeData, targetNode.key);
33
35
  if (!target) {
34
- return { ok: false, error: 'Target node not found' }
36
+ return { ok: false, error: "Target node not found" };
35
37
  }
36
38
 
37
39
  if (!Array.isArray(target.children)) {
38
- target.children = []
40
+ target.children = [];
39
41
  }
40
- target.children.push(removed)
42
+ target.children.push(removed);
41
43
 
42
- await api.store('todotree', treeData, filePath)
43
- api.reload(filePath)
44
+ storeData.tree = treeData;
45
+ await api.store("todotree", storeData, filePath);
46
+ api.reload(filePath);
44
47
 
45
- return { ok: true }
48
+ return { ok: true };
46
49
  },
47
50
 
48
51
  getCutBuffer() {
49
- return { ok: true, node: cutBuffer?.node || null }
52
+ return { ok: true, node: cutBuffer?.node || null };
50
53
  },
51
54
 
52
55
  clearCutBuffer() {
53
- cutBuffer = null
54
- return { ok: true }
56
+ cutBuffer = null;
57
+ return { ok: true };
55
58
  },
56
- }
57
- })
59
+ };
60
+ };
58
61
 
59
62
  function findNode(tree, key) {
60
- if (!Array.isArray(tree)) return null
63
+ if (!Array.isArray(tree)) return null;
61
64
  for (const node of tree) {
62
- if (node.key == key) return node
63
- const found = findNode(node.children, key)
64
- if (found) return found
65
+ if (node.key == key) return node;
66
+ const found = findNode(node.children, key);
67
+ if (found) return found;
65
68
  }
66
- return null
69
+ return null;
67
70
  }
68
71
 
69
72
  function removeNodeByKey(tree, key) {
70
- if (!Array.isArray(tree)) return null
73
+ if (!Array.isArray(tree)) return null;
71
74
  for (let i = 0; i < tree.length; i++) {
72
75
  if (tree[i].key == key) {
73
- return tree.splice(i, 1)[0]
76
+ return tree.splice(i, 1)[0];
74
77
  }
75
- const found = removeNodeByKey(tree[i].children, key)
76
- if (found) return found
78
+ const found = removeNodeByKey(tree[i].children, key);
79
+ if (found) return found;
77
80
  }
78
- return null
81
+ return null;
79
82
  }
@@ -1,21 +0,0 @@
1
- name: Npm Publish
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v*.*.*'
7
-
8
- jobs:
9
- Npm-Publish:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - name: Checkout
13
- uses: actions/checkout@v2.3.4
14
-
15
- - name: Install Deps
16
- run: yarn install
17
-
18
- - name: publish with latest tag
19
- uses: JS-DevTools/npm-publish@v1
20
- with:
21
- token: ${{ secrets.NPM_AUTH_TOKEN }}