chore: code cleanup

Signed-off-by: Ryan Wang <i@ryanc.cc>
This commit is contained in:
Ryan Wang
2022-07-15 16:57:13 +08:00
parent 5f7b05e58a
commit a058a08907
15 changed files with 178 additions and 144 deletions

View File

@@ -44,10 +44,10 @@ jobs:
- name: Build with Gradle
run: |
./gradlew clean build -x test
- name: Archive halo-plugin-template jar
- name: Archive plugin-template jar
uses: actions/upload-artifact@v2
with:
name: halo-plugin-template
name: plugin-template
path: |
build/libs/*-plain.jar
retention-days: 1

View File

@@ -1,6 +1,7 @@
{
"name": "halo-plugin-frontend-template",
"name": "@halo-dev/plugin-frontend-template",
"version": "0.0.0",
"private": true,
"scripts": {
"dev": "vite build --watch",
"build": "vite build",
@@ -12,26 +13,26 @@
"dependencies": {
"@halo-dev/admin-shared": "^0.0.0-alpha.1",
"@halo-dev/components": "^0.0.0-alpha.0",
"vue": "^3.2.36"
"vue": "^3.2.37"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.1.0",
"@rushstack/eslint-patch": "^1.1.4",
"@types/jsdom": "^16.2.14",
"@types/node": "^16.11.36",
"@types/node": "^16.11.44",
"@vitejs/plugin-vue": "^2.3.3",
"@vitejs/plugin-vue-jsx": "^1.3.10",
"@vue/eslint-config-prettier": "^7.0.0",
"@vue/eslint-config-typescript": "^10.0.0",
"@vue/test-utils": "^2.0.0",
"@vue/test-utils": "^2.0.2",
"@vue/tsconfig": "^0.1.3",
"eslint": "^8.5.0",
"eslint-plugin-vue": "^8.2.0",
"eslint": "^8.19.0",
"eslint-plugin-vue": "^8.7.1",
"jsdom": "^19.0.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.5.1",
"typescript": "~4.7.2",
"vite": "^2.9.9",
"vitest": "^0.13.0",
"prettier": "^2.7.1",
"typescript": "~4.7.4",
"vite": "^2.9.14",
"vitest": "^0.13.1",
"vue-tsc": "^0.35.2"
}
}

View File

@@ -3,24 +3,24 @@ lockfileVersion: 5.4
specifiers:
'@halo-dev/admin-shared': ^0.0.0-alpha.1
'@halo-dev/components': ^0.0.0-alpha.0
'@rushstack/eslint-patch': ^1.1.0
'@rushstack/eslint-patch': ^1.1.4
'@types/jsdom': ^16.2.14
'@types/node': ^16.11.36
'@types/node': ^16.11.44
'@vitejs/plugin-vue': ^2.3.3
'@vitejs/plugin-vue-jsx': ^1.3.10
'@vue/eslint-config-prettier': ^7.0.0
'@vue/eslint-config-typescript': ^10.0.0
'@vue/test-utils': ^2.0.0
'@vue/test-utils': ^2.0.2
'@vue/tsconfig': ^0.1.3
eslint: ^8.5.0
eslint-plugin-vue: ^8.2.0
eslint: ^8.19.0
eslint-plugin-vue: ^8.7.1
jsdom: ^19.0.0
npm-run-all: ^4.1.5
prettier: ^2.5.1
typescript: ~4.7.2
vite: ^2.9.9
vitest: ^0.13.0
vue: ^3.2.36
prettier: ^2.7.1
typescript: ~4.7.4
vite: ^2.9.14
vitest: ^0.13.1
vue: ^3.2.37
vue-tsc: ^0.35.2
dependencies:
@@ -29,24 +29,24 @@ dependencies:
vue: 3.2.37
devDependencies:
'@rushstack/eslint-patch': 1.1.3
'@rushstack/eslint-patch': 1.1.4
'@types/jsdom': 16.2.14
'@types/node': 16.11.38
'@vitejs/plugin-vue': 2.3.3_vite@2.9.10+vue@3.2.37
'@types/node': 16.11.44
'@vitejs/plugin-vue': 2.3.3_vite@2.9.14+vue@3.2.37
'@vitejs/plugin-vue-jsx': 1.3.10
'@vue/eslint-config-prettier': 7.0.0_ddjd75dz7x3czaucyvuaamiqdi
'@vue/eslint-config-typescript': 10.0.0_o7yw3kwpe6b36wqzg4zwra6quy
'@vue/test-utils': 2.0.0_vue@3.2.37
'@vue/tsconfig': 0.1.3_@types+node@16.11.38
eslint: 8.17.0
eslint-plugin-vue: 8.7.1_eslint@8.17.0
'@vue/eslint-config-prettier': 7.0.0_exbhzpnbupd3ikhi4722x4yn6e
'@vue/eslint-config-typescript': 10.0.0_ssewovz4aeqmfxc5voqm6t57tm
'@vue/test-utils': 2.0.2_vue@3.2.37
'@vue/tsconfig': 0.1.3_@types+node@16.11.44
eslint: 8.19.0
eslint-plugin-vue: 8.7.1_eslint@8.19.0
jsdom: 19.0.0
npm-run-all: 4.1.5
prettier: 2.6.2
typescript: 4.7.3
vite: 2.9.10
prettier: 2.7.1
typescript: 4.7.4
vite: 2.9.14
vitest: 0.13.1_jsdom@19.0.0
vue-tsc: 0.35.2_typescript@4.7.3
vue-tsc: 0.35.2_typescript@4.7.4
packages:
@@ -463,8 +463,8 @@ packages:
picomatch: 2.3.1
dev: true
/@rushstack/eslint-patch/1.1.3:
resolution: {integrity: sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==}
/@rushstack/eslint-patch/1.1.4:
resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==}
dev: true
/@tootallnate/once/2.0.0:
@@ -485,7 +485,7 @@ packages:
/@types/jsdom/16.2.14:
resolution: {integrity: sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w==}
dependencies:
'@types/node': 16.11.38
'@types/node': 16.11.44
'@types/parse5': 6.0.3
'@types/tough-cookie': 4.0.2
dev: true
@@ -494,8 +494,8 @@ packages:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
dev: true
/@types/node/16.11.38:
resolution: {integrity: sha512-hjO/0K140An3GWDw2HJfq7gko3wWeznbjXgg+rzPdVzhe198hp4x2i1dgveAOEiFKd8sOilAxzoSJiVv5P/CUg==}
/@types/node/16.11.44:
resolution: {integrity: sha512-gwP6+QDgL5TDBIWh1lbYh3EFPU11pa+8xcamcsA3ROkp3A9X+/3Y5cRgq93VPEEE+CGfxlQnqkg1kkWGBgh3fw==}
dev: true
/@types/parse5/6.0.3:
@@ -506,7 +506,7 @@ packages:
resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==}
dev: true
/@typescript-eslint/eslint-plugin/5.27.1_aq7uryhocdbvbqum33pitcm3y4:
/@typescript-eslint/eslint-plugin/5.27.1_2g5gv25qcpx7aydtlrn2zdzrku:
resolution: {integrity: sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -517,23 +517,23 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4
'@typescript-eslint/parser': 5.27.1_4x5o4skxv6sl53vpwefgt23khm
'@typescript-eslint/scope-manager': 5.27.1
'@typescript-eslint/type-utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4
'@typescript-eslint/utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4
'@typescript-eslint/type-utils': 5.27.1_4x5o4skxv6sl53vpwefgt23khm
'@typescript-eslint/utils': 5.27.1_4x5o4skxv6sl53vpwefgt23khm
debug: 4.3.4
eslint: 8.17.0
eslint: 8.19.0
functional-red-black-tree: 1.0.1
ignore: 5.2.0
regexpp: 3.2.0
semver: 7.3.7
tsutils: 3.21.0_typescript@4.7.3
typescript: 4.7.3
tsutils: 3.21.0_typescript@4.7.4
typescript: 4.7.4
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/parser/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4:
/@typescript-eslint/parser/5.27.1_4x5o4skxv6sl53vpwefgt23khm:
resolution: {integrity: sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -545,10 +545,10 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.27.1
'@typescript-eslint/types': 5.27.1
'@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.3
'@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.4
debug: 4.3.4
eslint: 8.17.0
typescript: 4.7.3
eslint: 8.19.0
typescript: 4.7.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -561,7 +561,7 @@ packages:
'@typescript-eslint/visitor-keys': 5.27.1
dev: true
/@typescript-eslint/type-utils/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4:
/@typescript-eslint/type-utils/5.27.1_4x5o4skxv6sl53vpwefgt23khm:
resolution: {integrity: sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -571,11 +571,11 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4
'@typescript-eslint/utils': 5.27.1_4x5o4skxv6sl53vpwefgt23khm
debug: 4.3.4
eslint: 8.17.0
tsutils: 3.21.0_typescript@4.7.3
typescript: 4.7.3
eslint: 8.19.0
tsutils: 3.21.0_typescript@4.7.4
typescript: 4.7.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -585,7 +585,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@typescript-eslint/typescript-estree/5.27.1_typescript@4.7.3:
/@typescript-eslint/typescript-estree/5.27.1_typescript@4.7.4:
resolution: {integrity: sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -600,13 +600,13 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.3.7
tsutils: 3.21.0_typescript@4.7.3
typescript: 4.7.3
tsutils: 3.21.0_typescript@4.7.4
typescript: 4.7.4
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/utils/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4:
/@typescript-eslint/utils/5.27.1_4x5o4skxv6sl53vpwefgt23khm:
resolution: {integrity: sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -615,10 +615,10 @@ packages:
'@types/json-schema': 7.0.11
'@typescript-eslint/scope-manager': 5.27.1
'@typescript-eslint/types': 5.27.1
'@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.3
eslint: 8.17.0
'@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.4
eslint: 8.19.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0_eslint@8.17.0
eslint-utils: 3.0.0_eslint@8.19.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -646,14 +646,14 @@ packages:
- supports-color
dev: true
/@vitejs/plugin-vue/2.3.3_vite@2.9.10+vue@3.2.37:
/@vitejs/plugin-vue/2.3.3_vite@2.9.14+vue@3.2.37:
resolution: {integrity: sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==}
engines: {node: '>=12.0.0'}
peerDependencies:
vite: ^2.5.10
vue: ^3.2.25
dependencies:
vite: 2.9.10
vite: 2.9.14
vue: 3.2.37
dev: true
@@ -742,19 +742,19 @@ packages:
'@vue/compiler-dom': 3.2.37
'@vue/shared': 3.2.37
/@vue/eslint-config-prettier/7.0.0_ddjd75dz7x3czaucyvuaamiqdi:
/@vue/eslint-config-prettier/7.0.0_exbhzpnbupd3ikhi4722x4yn6e:
resolution: {integrity: sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==}
peerDependencies:
eslint: '>= 7.28.0'
prettier: '>= 2.0.0'
dependencies:
eslint: 8.17.0
eslint-config-prettier: 8.5.0_eslint@8.17.0
eslint-plugin-prettier: 4.0.0_ucegkljdju7q4zmvwxzqoprf3y
prettier: 2.6.2
eslint: 8.19.0
eslint-config-prettier: 8.5.0_eslint@8.19.0
eslint-plugin-prettier: 4.0.0_7uxdfn2xinezdgvmbammh6ev5i
prettier: 2.7.1
dev: true
/@vue/eslint-config-typescript/10.0.0_o7yw3kwpe6b36wqzg4zwra6quy:
/@vue/eslint-config-typescript/10.0.0_ssewovz4aeqmfxc5voqm6t57tm:
resolution: {integrity: sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -765,12 +765,12 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/eslint-plugin': 5.27.1_aq7uryhocdbvbqum33pitcm3y4
'@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4
eslint: 8.17.0
eslint-plugin-vue: 8.7.1_eslint@8.17.0
typescript: 4.7.3
vue-eslint-parser: 8.3.0_eslint@8.17.0
'@typescript-eslint/eslint-plugin': 5.27.1_2g5gv25qcpx7aydtlrn2zdzrku
'@typescript-eslint/parser': 5.27.1_4x5o4skxv6sl53vpwefgt23khm
eslint: 8.19.0
eslint-plugin-vue: 8.7.1_eslint@8.19.0
typescript: 4.7.4
vue-eslint-parser: 8.3.0_eslint@8.19.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -814,15 +814,15 @@ packages:
/@vue/shared/3.2.37:
resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==}
/@vue/test-utils/2.0.0_vue@3.2.37:
resolution: {integrity: sha512-zL5kygNq7hONrO1CzaUGprEAklAX+pH8J1MPMCU3Rd2xtSYkZ+PmKU3oEDRg8VAGdL5lNJHzDgrud5amFPtirw==}
/@vue/test-utils/2.0.2_vue@3.2.37:
resolution: {integrity: sha512-E2P4oXSaWDqTZNbmKZFVLrNN/siVN78YkEqs7pHryWerrlZR9bBFLWdJwRoguX45Ru6HxIflzKl4vQvwRMwm5g==}
peerDependencies:
vue: ^3.0.1
dependencies:
vue: 3.2.37
dev: true
/@vue/tsconfig/0.1.3_@types+node@16.11.38:
/@vue/tsconfig/0.1.3_@types+node@16.11.44:
resolution: {integrity: sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==}
peerDependencies:
'@types/node': '*'
@@ -830,7 +830,7 @@ packages:
'@types/node':
optional: true
dependencies:
'@types/node': 16.11.38
'@types/node': 16.11.44
dev: true
/abab/2.0.6:
@@ -1458,16 +1458,16 @@ packages:
source-map: 0.6.1
dev: true
/eslint-config-prettier/8.5.0_eslint@8.17.0:
/eslint-config-prettier/8.5.0_eslint@8.19.0:
resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
eslint: 8.17.0
eslint: 8.19.0
dev: true
/eslint-plugin-prettier/4.0.0_ucegkljdju7q4zmvwxzqoprf3y:
/eslint-plugin-prettier/4.0.0_7uxdfn2xinezdgvmbammh6ev5i:
resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==}
engines: {node: '>=6.0.0'}
peerDependencies:
@@ -1478,25 +1478,25 @@ packages:
eslint-config-prettier:
optional: true
dependencies:
eslint: 8.17.0
eslint-config-prettier: 8.5.0_eslint@8.17.0
prettier: 2.6.2
eslint: 8.19.0
eslint-config-prettier: 8.5.0_eslint@8.19.0
prettier: 2.7.1
prettier-linter-helpers: 1.0.0
dev: true
/eslint-plugin-vue/8.7.1_eslint@8.17.0:
/eslint-plugin-vue/8.7.1_eslint@8.19.0:
resolution: {integrity: sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
dependencies:
eslint: 8.17.0
eslint-utils: 3.0.0_eslint@8.17.0
eslint: 8.19.0
eslint-utils: 3.0.0_eslint@8.19.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.0.10
semver: 7.3.7
vue-eslint-parser: 8.3.0_eslint@8.17.0
vue-eslint-parser: 8.3.0_eslint@8.19.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -1517,13 +1517,13 @@ packages:
estraverse: 5.3.0
dev: true
/eslint-utils/3.0.0_eslint@8.17.0:
/eslint-utils/3.0.0_eslint@8.19.0:
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
peerDependencies:
eslint: '>=5'
dependencies:
eslint: 8.17.0
eslint: 8.19.0
eslint-visitor-keys: 2.1.0
dev: true
@@ -1537,8 +1537,8 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint/8.17.0:
resolution: {integrity: sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==}
/eslint/8.19.0:
resolution: {integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
@@ -1551,7 +1551,7 @@ packages:
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.1.1
eslint-utils: 3.0.0_eslint@8.17.0
eslint-utils: 3.0.0_eslint@8.19.0
eslint-visitor-keys: 3.3.0
espree: 9.3.2
esquery: 1.4.0
@@ -2428,8 +2428,8 @@ packages:
fast-diff: 1.2.0
dev: true
/prettier/2.6.2:
resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==}
/prettier/2.7.1:
resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}
engines: {node: '>=10.13.0'}
hasBin: true
dev: true
@@ -2687,7 +2687,7 @@ packages:
dev: true
/text-table/0.2.0:
resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=}
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
/tinypool/0.1.3:
@@ -2731,14 +2731,14 @@ packages:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
/tsutils/3.21.0_typescript@4.7.3:
/tsutils/3.21.0_typescript@4.7.4:
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
typescript: 4.7.3
typescript: 4.7.4
dev: true
/type-check/0.3.2:
@@ -2765,8 +2765,8 @@ packages:
engines: {node: '>=10'}
dev: true
/typescript/4.7.3:
resolution: {integrity: sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==}
/typescript/4.7.4:
resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
engines: {node: '>=4.2.0'}
hasBin: true
dev: true
@@ -2792,7 +2792,7 @@ packages:
dev: true
/util-deprecate/1.0.2:
resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
/v8-compile-cache/2.3.0:
@@ -2806,8 +2806,8 @@ packages:
spdx-expression-parse: 3.0.1
dev: true
/vite/2.9.10:
resolution: {integrity: sha512-TwZRuSMYjpTurLqXspct+HZE7ONiW9d+wSWgvADGxhDPPyoIcNywY+RX4ng+QpK30DCa1l/oZgi2PLZDibhzbQ==}
/vite/2.9.14:
resolution: {integrity: sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw==}
engines: {node: '>=12.2.0'}
hasBin: true
peerDependencies:
@@ -2857,7 +2857,7 @@ packages:
local-pkg: 0.4.1
tinypool: 0.1.3
tinyspy: 0.3.2
vite: 2.9.10
vite: 2.9.14
transitivePeerDependencies:
- less
- sass
@@ -2865,14 +2865,14 @@ packages:
- supports-color
dev: true
/vue-eslint-parser/8.3.0_eslint@8.17.0:
/vue-eslint-parser/8.3.0_eslint@8.19.0:
resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
eslint: 8.17.0
eslint: 8.19.0
eslint-scope: 7.1.1
eslint-visitor-keys: 3.3.0
espree: 9.3.2
@@ -2883,14 +2883,14 @@ packages:
- supports-color
dev: true
/vue-tsc/0.35.2_typescript@4.7.3:
/vue-tsc/0.35.2_typescript@4.7.4:
resolution: {integrity: sha512-aqY16VlODHzqtKGUkqdumNpH+s5ABCkufRyvMKQlL/mua+N2DfSVnHufzSNNUMr7vmOO0YsNg27jsspBMq4iGA==}
hasBin: true
peerDependencies:
typescript: '*'
dependencies:
'@volar/vue-typescript': 0.35.2
typescript: 4.7.3
typescript: 4.7.4
dev: true
/vue/3.2.37:
@@ -2979,7 +2979,7 @@ packages:
dev: true
/wrappy/1.0.2:
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
/ws/8.7.0:

View File

@@ -11,6 +11,9 @@ export default definePlugin({
path: "/hello-world",
name: "HelloWorld",
component: DefaultView,
meta: {
permissions: ["plugin:apples:view"],
},
},
],
menus: [
@@ -26,10 +29,6 @@ export default definePlugin({
},
],
extensionPoints: {},
activated() {
// TODO
},
deactivated() {
// TODO
},
activated() {},
deactivated() {},
});

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { defineComponent } from "vue";
import {defineComponent} from "vue";
import logo from "../assets/logo.svg";
export default defineComponent({
@@ -13,7 +13,7 @@ export default defineComponent({
</script>
<template>
<div class="title">Hello World</div>
<img :src="logo" alt="logo" />
<img v-permission="['plugin:apples:view']" :src="logo" alt="logo"/>
</template>
<style scoped>
.title {

View File

@@ -24,7 +24,12 @@ export default defineConfig({
fileName: () => "main.js",
},
rollupOptions: {
external: ["vue", "@halo-dev/shared", "@halo-dev/components","vue-router"],
external: [
"vue",
"@halo-dev/shared",
"@halo-dev/components",
"vue-router",
],
output: {
globals: {
vue: "Vue",

View File

@@ -5,12 +5,12 @@ plugins {
id 'java'
}
group 'io.github.guqing'
group 'run.halo.template'
version '0.0.1-SNAPSHOT'
sourceCompatibility = JavaVersion.VERSION_17
repositories {
maven {url 'https://s01.oss.sonatype.org/content/repositories/snapshots'}
maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots' }
maven { url 'https://repo.spring.io/milestone' }
mavenCentral()
}
@@ -60,7 +60,7 @@ task buildFrontend(type: NpxTask) {
args = ['build']
}
task pnpmInstall (type: NpxTask) {
task pnpmInstall(type: NpxTask) {
command = "pnpm"
args = ["install"]
}

View File

@@ -6,5 +6,5 @@ pluginManagement {
gradlePluginPortal()
}
}
rootProject.name = 'halo-plugin-template'
rootProject.name = 'plugin-template'

View File

@@ -1,4 +1,4 @@
package io.github.guqing.template;
package run.halo.template;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package io.github.guqing.template;
package run.halo.template;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

View File

@@ -1,4 +1,4 @@
package io.github.guqing.template;
package run.halo.template;
import org.pf4j.PluginWrapper;
import run.halo.app.extension.Scheme;
@@ -9,10 +9,10 @@ import run.halo.app.plugin.BasePlugin;
* @author guqing
* @since 2.0.0
*/
public class ApplePlugin extends BasePlugin {
public class TemplatePlugin extends BasePlugin {
private final SchemeManager schemeManager;
public ApplePlugin(PluginWrapper wrapper) {
public TemplatePlugin(PluginWrapper wrapper) {
super(wrapper);
this.schemeManager = getApplicationContext().getBean(SchemeManager.class);
}

File diff suppressed because one or more lines are too long

View File

@@ -6,7 +6,7 @@ metadata:
halo.run/role-template: "true"
annotations:
rbac.authorization.halo.run/module: "Apple Management"
rbac.authorization.halo.run/ui-permissions: "[\"apples:view\"]"
rbac.authorization.halo.run/ui-permissions: "[\"plugin:apples:view\"]"
rbac.authorization.halo.run/display-name: "苹果查看"
rules:
- apiGroups: [ "plugins.api.halo.run" ]
@@ -21,7 +21,7 @@ metadata:
halo.run/role-template: "true"
annotations:
rbac.authorization.halo.run/dependencies: "[\"role-template-apple-view\"]"
rbac.authorization.halo.run/ui-permissions: "[\"apples:delete\",\"apples:update\"]"
rbac.authorization.halo.run/ui-permissions: "[\"plugin:apples:delete\",\"plugin:apples:update\"]"
rbac.authorization.halo.run/module: "Apple Management"
rbac.authorization.halo.run/display-name: "苹果管理"
rules:

View File

@@ -0,0 +1,29 @@
apiVersion: v1alpha1
kind: Setting
metadata:
name: template-settings
spec:
- group: basic
label: 基本设置
formSchema:
- $formkit: text
help: This will be used for your account.
label: Email
name: email
validation: required|email
- $formkit: text
label: 访问链接
name: url
- group: advanced
label: 高级设置
formSchema:
- $formkit: text
help: This will be used for your theme.
label: color
name: color
validation: required
- $formkit: color
help: This will be used for your theme.
label: color
name: color
validation: required

View File

@@ -2,19 +2,21 @@ apiVersion: plugin.halo.run/v1alpha1
kind: Plugin
metadata:
# The name defines how the plugin is invoked,A unique name
name: apples
name: PluginTemplate
spec:
enabled: true
# 'version' is a valid semantic version string (see semver.org).
version: 0.0.1-SNAPSHOT
requires: "*"
author: guqing
logo: https://guqing.xyz/avatar
pluginClass: io.github.guqing.template.ApplePlugin
author: halo-dev
logo: https://halo.run/logo
pluginClass: run.halo.template.TemplatePlugin
settingName: template-settings
configMapName: template-settings
# 'homepage' usually links to the GitHub repository of the plugin
homepage: https://github.com/guqing/halo-plugin-template
homepage: https://github.com/halo-sigs/halo-plugin-template
# 'displayName' explains what the plugin does in only a few words
displayName: "测试插件"
description: "这是一个用来测试的插件"
displayName: "插件快速开始模板"
description: "这是一个插件快速开始模板"
license:
- name: "MIT"