create-blocklet 0.2.16 → 0.3.0

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 (81) hide show
  1. package/README.md +8 -3
  2. package/common/.github/workflows/main.yml +5 -5
  3. package/common/.husky/pre-commit +4 -0
  4. package/common/_eslintignore +10 -0
  5. package/common/_eslintrc.js +1 -0
  6. package/common/_gitignore +15 -9
  7. package/common/logo.png +0 -0
  8. package/common/public/favicon.ico +0 -0
  9. package/index.js +177 -105
  10. package/lib/arcblock.js +3 -1
  11. package/lib/git.js +25 -0
  12. package/lib/index.js +17 -5
  13. package/lib/npm.js +7 -9
  14. package/lib/server.js +26 -20
  15. package/package.json +18 -16
  16. package/template-dapp/react/README.md +5 -5
  17. package/template-dapp/react/{server → api}/hooks/pre-start.js +0 -0
  18. package/template-dapp/react/{server → api}/index.js +0 -0
  19. package/template-dapp/react/{server → api}/libs/auth.js +0 -0
  20. package/template-dapp/react/{server → api}/libs/env.js +0 -0
  21. package/template-dapp/react/{server → api}/libs/logger.js +0 -0
  22. package/template-dapp/{vue2/server → react/api}/routes/index.js +1 -1
  23. package/template-dapp/react/blocklet.yml +6 -6
  24. package/template-dapp/react/package.json +35 -23
  25. package/template-dapp/react/public/index.html +1 -3
  26. package/template-dapp/react/src/app.js +8 -8
  27. package/template-dapp/vue/.browserslistrc +4 -0
  28. package/template-dapp/vue/.eslintrc.js +25 -0
  29. package/template-dapp/vue/{server → api}/hooks/pre-start.js +0 -0
  30. package/template-dapp/vue/{server → api}/index.js +0 -0
  31. package/template-dapp/vue/{server → api}/libs/auth.js +0 -0
  32. package/template-dapp/vue/{server → api}/libs/env.js +0 -0
  33. package/template-dapp/vue/{server → api}/libs/logger.js +0 -0
  34. package/template-dapp/{react/server → vue/api}/routes/index.js +1 -1
  35. package/template-dapp/vue/blocklet.yml +6 -5
  36. package/template-dapp/vue/index.html +2 -3
  37. package/template-dapp/vue/package.json +38 -21
  38. package/template-dapp/vue/src/App.vue +4 -2
  39. package/template-dapp/vue/vite.config.js +8 -6
  40. package/template-dapp/vue2/.browserslistrc +4 -0
  41. package/template-dapp/vue2/.eslintrc.js +14 -0
  42. package/template-dapp/vue2/{server → api}/hooks/pre-start.js +0 -0
  43. package/template-dapp/vue2/{server → api}/index.js +0 -0
  44. package/template-dapp/vue2/{server → api}/libs/auth.js +0 -0
  45. package/template-dapp/vue2/{server → api}/libs/env.js +0 -0
  46. package/template-dapp/vue2/{server → api}/libs/logger.js +0 -0
  47. package/template-dapp/{vue/server → vue2/api}/routes/index.js +1 -1
  48. package/template-dapp/vue2/blocklet.yml +7 -5
  49. package/template-dapp/vue2/jsconfig.json +19 -0
  50. package/template-dapp/vue2/package.json +38 -43
  51. package/template-dapp/vue2/public/index.html +2 -9
  52. package/template-dapp/vue2/src/App.vue +17 -1
  53. package/template-dapp/vue2/src/main.js +0 -2
  54. package/template-dapp/vue2/vue.config.js +0 -1
  55. package/template-static/blocklet-page/package.json +5 -5
  56. package/template-static/react/blocklet.yml +3 -3
  57. package/template-static/react/package.json +21 -9
  58. package/template-static/react/public/index.html +1 -3
  59. package/template-static/react/src/app.js +8 -8
  60. package/template-static/vue/.browserslistrc +4 -0
  61. package/template-static/vue/.eslintrc.js +25 -0
  62. package/template-static/vue/blocklet.yml +3 -3
  63. package/template-static/vue/index.html +2 -3
  64. package/template-static/vue/package.json +25 -8
  65. package/template-static/vue/vite.config.js +8 -6
  66. package/template-static/vue2/.browserslistrc +4 -0
  67. package/template-static/vue2/.eslintrc.js +14 -0
  68. package/template-static/vue2/blocklet.yml +3 -3
  69. package/template-static/vue2/jsconfig.json +19 -0
  70. package/template-static/vue2/package.json +25 -30
  71. package/template-static/vue2/public/index.html +2 -9
  72. package/template-static/vue2/src/App.vue +7 -1
  73. package/template-static/vue2/src/main.js +0 -2
  74. package/template-static/vue2/vue.config.js +0 -3
  75. package/common/public/favicon.svg +0 -1
  76. package/template-dapp/vue2/src/pages/About.vue +0 -13
  77. package/template-dapp/vue2/src/pages/Home.vue +0 -27
  78. package/template-dapp/vue2/src/router.js +0 -24
  79. package/template-static/vue2/src/pages/About.vue +0 -13
  80. package/template-static/vue2/src/pages/Home.vue +0 -20
  81. package/template-static/vue2/src/router.js +0 -24
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-blocklet",
3
- "version": "0.2.16",
3
+ "version": "0.3.0",
4
4
  "exports": "./index.js",
5
5
  "type": "module",
6
6
  "repository": "git@github.com:blocklet/create-blocklet.git",
@@ -13,36 +13,37 @@
13
13
  "index.js",
14
14
  "common",
15
15
  "lib",
16
+ "template-api",
16
17
  "template-dapp",
17
18
  "template-static"
18
19
  ],
19
20
  "engines": {
20
- "node": ">=14.0.0"
21
+ "node": ">=16.0.0"
21
22
  },
22
23
  "bugs": {
23
24
  "url": "https://github.com/blocklet/create-blocklet/issues"
24
25
  },
25
26
  "homepage": "https://github.com/blocklet/create-blocklet/tree/main#readme",
26
27
  "scripts": {
27
- "lint": "eslint ."
28
+ "lint": "eslint .",
29
+ "test": "vitest",
30
+ "test:ui": "vitest --ui",
31
+ "test:run": "vitest run"
28
32
  },
29
33
  "dependencies": {
30
- "@arcblock/did": "^1.13.55",
31
- "@ocap/mcrypto": "^1.13.55",
32
- "@ocap/util": "^1.13.55",
34
+ "@arcblock/did": "^1.14.25",
35
+ "@ocap/mcrypto": "^1.14.25",
36
+ "@ocap/util": "^1.14.25",
37
+ "boxen": "^6.2.1",
33
38
  "ejs": "^3.1.6",
34
- "envfile": "^6.15.0",
35
- "figlet": "^1.5.0",
36
- "gradient-string": "^1.2.0",
39
+ "envfile": "^6.17.0",
40
+ "figlet": "^1.5.2",
41
+ "gradient-string": "^2.0.0",
37
42
  "jdenticon": "^3.1.1",
38
- "kolorist": "^1.5.0",
39
- "minimist": "^1.2.5",
40
- "prompts": "^2.4.1",
41
- "rc": "^1.2.8",
43
+ "prompts": "^2.4.2",
42
44
  "semver": "^7.3.5",
43
- "shelljs": "^0.8.5",
44
45
  "terminal-link": "^3.0.0",
45
- "yaml": "^1.10.2"
46
+ "zx": "^6.0.6"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@arcblock/eslint-config": "0.1.8",
@@ -56,6 +57,7 @@
56
57
  "eslint-plugin-react": "^7.24.0",
57
58
  "eslint-plugin-react-hooks": "^4.2.0",
58
59
  "eslint-plugin-unicorn": "^34.0.1",
59
- "prettier": "^2.3.2"
60
+ "prettier": "^2.3.2",
61
+ "vitest": "^0.7.6"
60
62
  }
61
63
  }
@@ -11,12 +11,12 @@ This blocklet is a dapp project, which means this is a full-stack application. I
11
11
  - favicon.svg - favicon
12
12
  - index.html - main html file, template for react
13
13
  - screenshots/ - Screenshots
14
- - server/ - Server side code
14
+ - api/ - Api side code
15
15
  - hooks/ - blocklet lifecycle hooks
16
- - libs/ - Server side libraries
17
- - middlewares/ - Server side middlewares
18
- - routes/ - Server side routes
19
- - index.js - Server side entry point
16
+ - libs/ - Api side libraries
17
+ - middlewares/ - Api side middlewares
18
+ - routes/ - Api side routes
19
+ - index.js - Api side entry point
20
20
  - src/ - Client side code (A standard react app structure)
21
21
  - .env - Environment variables
22
22
  - .env.local - Local environment variables
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  const middleware = require('@blocklet/sdk/lib/middlewares');
2
2
  const router = require('express').Router();
3
3
 
4
- router.use('/user', middleware.user(), (req, res) => res.json(req.user));
4
+ router.use('/user', middleware.user(), (req, res) => res.json(req.user || {}));
5
5
 
6
6
  module.exports = router;
@@ -6,10 +6,10 @@ keywords:
6
6
  - react
7
7
  group: dapp
8
8
  did: ''
9
- main: server/index.js
9
+ main: api/index.js
10
10
  author:
11
- name: zhanghan
12
- email: zhanghan@arcblock.io
11
+ name: Blocklet
12
+ email: blocklet@arcblock.io
13
13
  repository:
14
14
  type: git
15
15
  url: 'git+https://github.com/blocklet/create-blocklet.git'
@@ -22,7 +22,7 @@ files:
22
22
  - README.md
23
23
  - blocklet.md
24
24
  - screenshots
25
- - server/hooks/pre-start.js
25
+ - api/hooks/pre-start.js
26
26
  interfaces:
27
27
  - type: web
28
28
  name: publicUrl
@@ -41,11 +41,11 @@ charging:
41
41
  timeout:
42
42
  start: 60
43
43
  requirements:
44
- abtnode: '>=1.4.0'
44
+ server: '>=1.6.29'
45
45
  os: '*'
46
46
  cpu: '*'
47
47
  scripts:
48
- preStart: node server/hooks/pre-start.js
48
+ preStart: node api/hooks/pre-start.js
49
49
  dev: npm run start
50
50
  environments:
51
51
  - name: CHAIN_HOST
@@ -2,19 +2,29 @@
2
2
  "name": "template-react",
3
3
  "version": "0.1.0",
4
4
  "scripts": {
5
+ "dev": "react-scripts start",
5
6
  "build": "react-scripts build",
6
7
  "eject": "react-scripts eject",
7
- "lint": "eslint src server",
8
- "dev": "react-scripts start",
8
+ "lint": "eslint src api --ext .mjs,.js,.jsx,.ts,.tsx",
9
9
  "start": "npm-run-all --parallel start:*",
10
10
  "start:client": "npm run dev",
11
- "start:server": "NODE_ENV=development nodemon server/index.js -w server",
11
+ "start:api": "NODE_ENV=development nodemon api/index.js -w api",
12
12
  "clean": "rm -rf .blocklet",
13
- "bundle": "npm run bundle:client && npm run bundle:server",
13
+ "bundle": "npm run bundle:client && npm run bundle:api",
14
14
  "bundle:client": "PUBLIC_URL='/.blocklet/proxy/<%= did %>' npm run build",
15
- "bundle:server": "npm run clean && blocklet bundle --zip --create-release",
15
+ "bundle:api": "npm run clean && blocklet bundle --zip --create-release",
16
16
  "deploy": "npm run bundle && blocklet deploy .blocklet/bundle",
17
- "upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json"
17
+ "upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json",
18
+ "prepare": "husky install"
19
+ },
20
+ "lint-staged": {
21
+ "*.{mjs,js,jsx,ts,tsx}": [
22
+ "prettier --write",
23
+ "eslint"
24
+ ],
25
+ "*.{css,less,scss,json,graphql}": [
26
+ "prettier --write"
27
+ ]
18
28
  },
19
29
  "browserslist": {
20
30
  "production": [
@@ -29,40 +39,42 @@
29
39
  ]
30
40
  },
31
41
  "dependencies": {
32
- "@arcblock/did-auth": "latest",
33
- "@arcblock/did-auth-storage-nedb": "latest",
34
- "@blocklet/sdk": "latest",
35
- "@ocap/client": "latest",
36
- "@ocap/mcrypto": "latest",
37
- "@ocap/wallet": "latest",
38
- "axios": "^0.21.1",
42
+ "@arcblock/did-auth": "^1.15.2",
43
+ "@arcblock/did-auth-storage-nedb": "^1.6.3",
44
+ "@blocklet/sdk": "^1.7.0",
45
+ "@ocap/client": "^1.15.2",
46
+ "@ocap/mcrypto": "^1.15.2",
47
+ "@ocap/wallet": "^1.15.2",
48
+ "axios": "^0.26.1",
39
49
  "compression": "^1.7.4",
40
- "cookie-parser": "^1.4.5",
50
+ "cookie-parser": "^1.4.6",
41
51
  "cors": "^2.8.5",
42
52
  "dotenv-flow": "^3.2.0",
43
- "express": "^4.17.1",
53
+ "express": "^4.17.3",
44
54
  "express-async-errors": "^3.1.1",
45
55
  "express-history-api-fallback": "^2.2.1",
46
56
  "react": "^17.0.2",
47
57
  "react-dom": "^17.0.2",
48
- "react-router-dom": "^5.2.0",
49
- "react-scripts": "4.0.3"
58
+ "react-router-dom": "^6.2.2",
59
+ "react-scripts": "5.0.0"
50
60
  },
51
61
  "devDependencies": {
52
- "@arcblock/eslint-config": "latest",
62
+ "@arcblock/eslint-config": "^0.1.8",
53
63
  "babel-eslint": "^10.1.0",
54
- "eslint": "^7.31.0",
64
+ "eslint": "^7.32.0",
55
65
  "eslint-config-airbnb": "^18.2.1",
56
66
  "eslint-config-prettier": "^8.3.0",
57
67
  "eslint-plugin-import": "^2.23.4",
58
68
  "eslint-plugin-jsx-a11y": "^6.4.1",
59
- "eslint-plugin-prettier": "^3.4.0",
69
+ "eslint-plugin-prettier": "^3.4.1",
60
70
  "eslint-plugin-react": "^7.24.0",
61
71
  "eslint-plugin-react-hooks": "^4.2.0",
62
72
  "eslint-plugin-unicorn": "^34.0.1",
63
- "http-proxy-middleware": "^2.0.1",
64
- "nodemon": "^2.0.12",
73
+ "http-proxy-middleware": "^2.0.4",
74
+ "husky": "^7.0.4",
75
+ "lint-staged": "^12.3.7",
76
+ "nodemon": "^2.0.15",
65
77
  "npm-run-all": "^4.1.5",
66
- "prettier": "^2.3.2"
78
+ "prettier": "^2.6.0"
67
79
  }
68
80
  }
@@ -2,9 +2,7 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <link rel="icon" type="image/svg+xml" href="%PUBLIC_URL%/favicon.svg" />
6
- <link rel="alternate icon" href="%PUBLIC_URL%/favicon.ico" />
7
- <link rel="mask-icon" href="%PUBLIC_URL%/favicon.svg" color="#4F6AF5" />
5
+ <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
8
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
9
7
  <meta name="theme-color" content="#4F6AF5" />
10
8
  <meta name="description" content="Web site created using create-blocklet" />
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { BrowserRouter as Router, Route, Switch, Redirect, withRouter } from 'react-router-dom';
2
+ import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom';
3
3
 
4
4
  import './app.css';
5
5
  import Home from './pages/home';
@@ -8,17 +8,17 @@ import About from './pages/about';
8
8
  function App() {
9
9
  return (
10
10
  <div className="app">
11
- <Switch>
12
- <Route exact path="/" component={Home} />
13
- <Route path="/about" component={About} />
14
- <Route path="/home" component={Home} />
15
- <Redirect to="/" />
16
- </Switch>
11
+ <Routes>
12
+ <Route exact path="/" element={<Home />} />
13
+ <Route path="/about" element={<About />} />
14
+ <Route path="/home" element={<Home />} />
15
+ <Route path="*" element={<Navigate to="/" />} />
16
+ </Routes>
17
17
  </div>
18
18
  );
19
19
  }
20
20
 
21
- const WrappedApp = withRouter(App);
21
+ const WrappedApp = App;
22
22
 
23
23
  export default () => {
24
24
  // While the blocklet is deploy to a sub path, this will be work properly.
@@ -0,0 +1,4 @@
1
+ > 1%
2
+ last 2 versions
3
+ not dead
4
+ not ie 11
@@ -0,0 +1,25 @@
1
+ module.exports = {
2
+ root: true,
3
+ env: {
4
+ node: true,
5
+ },
6
+ extends: ['plugin:vue/vue3-essential', 'eslint:recommended', 'plugin:prettier/recommended'],
7
+ globals: {
8
+ // Ref sugar (take 2)
9
+ $: 'readonly',
10
+ $$: 'readonly',
11
+ $ref: 'readonly',
12
+ $shallowRef: 'readonly',
13
+ $computed: 'readonly',
14
+
15
+ // script setup
16
+ defineProps: 'readonly',
17
+ defineEmits: 'readonly',
18
+ defineExpose: 'readonly',
19
+ withDefaults: 'readonly',
20
+ },
21
+ rules: {
22
+ 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
23
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
24
+ },
25
+ };
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  const middleware = require('@blocklet/sdk/lib/middlewares');
2
2
  const router = require('express').Router();
3
3
 
4
- router.use('/user', middleware.user(), (req, res) => res.json(req.user));
4
+ router.use('/user', middleware.user(), (req, res) => res.json(req.user || {}));
5
5
 
6
6
  module.exports = router;
@@ -6,10 +6,10 @@ keywords:
6
6
  - vue
7
7
  group: dapp
8
8
  did: ''
9
- main: server/index.js
9
+ main: api/index.js
10
10
  author:
11
- name: zhanghan
12
- email: zhanghan@arcblock.io
11
+ name: Blocklet
12
+ email: blocklet@arcblock.io
13
13
  repository:
14
14
  type: git
15
15
  url: 'git+https://github.com/blocklet/create-blocklet.git'
@@ -22,6 +22,7 @@ files:
22
22
  - README.md
23
23
  - blocklet.md
24
24
  - screenshots
25
+ - api/hooks/pre-start.js
25
26
  interfaces:
26
27
  - type: web
27
28
  name: publicUrl
@@ -40,11 +41,11 @@ charging:
40
41
  timeout:
41
42
  start: 60
42
43
  requirements:
43
- abtnode: '>=1.4.0'
44
+ server: '>=1.6.29'
44
45
  os: '*'
45
46
  cpu: '*'
46
47
  scripts:
47
- preStart: node server/hooks/pre-start.js
48
+ preStart: node api/hooks/pre-start.js
48
49
  dev: npm run start
49
50
  environments:
50
51
  - name: CHAIN_HOST
@@ -2,9 +2,7 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="<%- base %>/favicon.svg" />
6
- <link rel="alternate icon" href="<%- base %>/favicon.ico" />
7
- <link rel="mask-icon" href="<%- base %>/favicon.svg" color="#4F6AF5" />
5
+ <link rel="icon" href="<%- base %>/favicon.ico" />
8
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
9
7
  <meta name="theme-color" content="#4F6AF5" />
10
8
  <meta name="description" content="Web site created using create-blocklet" />
@@ -12,6 +10,7 @@
12
10
  <script src="__meta__.js"></script>
13
11
  </head>
14
12
  <body>
13
+ <noscript>You need to enable JavaScript to run this app.</noscript>
15
14
  <div id="app"></div>
16
15
  <script type="module" src="/src/main.js"></script>
17
16
  </body>
@@ -2,42 +2,59 @@
2
2
  "name": "template-vue",
3
3
  "version": "0.1.0",
4
4
  "scripts": {
5
- "dev": "vite",
5
+ "dev": "vite --host",
6
6
  "build": "vite build",
7
7
  "serve": "vite preview",
8
8
  "start": "npm-run-all --parallel start:*",
9
- "start:client": "vite --host",
10
- "start:server": "NODE_ENV=development nodemon server/index.js -w server",
9
+ "start:client": "npm run dev",
10
+ "start:api": "NODE_ENV=development nodemon api/index.js -w api",
11
11
  "clean": "rm -rf .blocklet",
12
- "bundle": "npm run bundle:client && npm run bundle:server",
12
+ "bundle": "npm run bundle:client && npm run bundle:api",
13
13
  "bundle:client": "vite build --base /.blocklet/proxy/<%= did %>",
14
- "bundle:server": "npm run clean && blocklet bundle --zip --create-release",
14
+ "bundle:api": "npm run clean && blocklet bundle --zip --create-release",
15
15
  "deploy": "npm run bundle && blocklet deploy .blocklet/bundle",
16
- "upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json"
16
+ "upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json",
17
+ "lint": "eslint src api --ext .mjs,.js,.vue",
18
+ "prepare": "husky install"
17
19
  },
18
20
  "dependencies": {
19
- "@arcblock/did-auth": "latest",
20
- "@arcblock/did-auth-storage-nedb": "latest",
21
- "@blocklet/sdk": "latest",
22
- "@ocap/client": "latest",
23
- "@ocap/mcrypto": "latest",
24
- "@ocap/wallet": "latest",
25
- "axios": "^0.21.1",
21
+ "@arcblock/did-auth": "^1.15.2",
22
+ "@arcblock/did-auth-storage-nedb": "^1.6.3",
23
+ "@blocklet/sdk": "^1.7.0",
24
+ "@ocap/client": "^1.15.2",
25
+ "@ocap/mcrypto": "^1.15.2",
26
+ "@ocap/wallet": "^1.15.2",
27
+ "axios": "^0.26.1",
26
28
  "compression": "^1.7.4",
27
- "cookie-parser": "^1.4.5",
29
+ "cookie-parser": "^1.4.6",
28
30
  "cors": "^2.8.5",
29
31
  "dotenv-flow": "^3.2.0",
30
- "express": "^4.17.1",
32
+ "express": "^4.17.3",
31
33
  "express-async-errors": "^3.1.1",
32
34
  "express-history-api-fallback": "^2.2.1",
33
- "vite-plugin-html": "^2.1.1",
34
- "vue": "^3.2.16"
35
+ "vite-plugin-html": "^3.2.0",
36
+ "vue": "^3.2.31"
35
37
  },
36
38
  "devDependencies": {
37
- "@vitejs/plugin-vue": "^1.9.3",
38
- "nodemon": "^2.0.12",
39
+ "@vitejs/plugin-vue": "^2.2.4",
40
+ "eslint": "^7.32.0",
41
+ "eslint-config-prettier": "^8.5.0",
42
+ "eslint-plugin-prettier": "^4.0.0",
43
+ "eslint-plugin-vue": "^8.5.0",
44
+ "husky": "^7.0.4",
45
+ "lint-staged": "^12.3.7",
46
+ "nodemon": "^2.0.15",
39
47
  "npm-run-all": "^4.1.5",
40
- "vite": "^2.6.4",
41
- "prettier": "^2.3.2"
48
+ "prettier": "^2.6.0",
49
+ "vite": "^2.8.6"
50
+ },
51
+ "lint-staged": {
52
+ "*.{mjs,js,vue}": [
53
+ "prettier --write",
54
+ "eslint --ext .mjs,.js,.vue"
55
+ ],
56
+ "*.{css,less,scss,json,graphql}": [
57
+ "prettier --write"
58
+ ]
42
59
  }
43
60
  }
@@ -3,14 +3,16 @@ import { ref } from 'vue';
3
3
  // This starter template is using Vue 3 <script setup> SFCs
4
4
  // Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup
5
5
  import HelloWorld from './components/HelloWorld.vue';
6
+
7
+ const msg = ref('Hello Vue 3 + Vite');
6
8
  </script>
7
9
 
8
10
  <template>
9
11
  <img alt="Vue logo" src="./assets/logo.png" />
10
- <HelloWorld msg="Hello Vue 3 + Vite" />
12
+ <HelloWorld :msg="msg" />
11
13
  <div :style="{ display: 'flex', justifyContent: 'center' }">
12
14
  <pre :style="{ textAlign: 'left' }">
13
- <code>{{ JSON.stringify(window.blocklet, null, 2) }}</code>
15
+ <code>{{ JSON.stringify(window?.blocklet, null, 2) }}</code>
14
16
  </pre>
15
17
  </div>
16
18
  </template>
@@ -1,6 +1,6 @@
1
1
  import { defineConfig, loadEnv } from 'vite';
2
2
  import vue from '@vitejs/plugin-vue';
3
- import { minifyHtml, injectHtml } from 'vite-plugin-html';
3
+ import { createHtmlPlugin } from 'vite-plugin-html';
4
4
 
5
5
  // https://vitejs.dev/config/
6
6
  export default ({ mode }) => {
@@ -8,11 +8,13 @@ export default ({ mode }) => {
8
8
  return defineConfig({
9
9
  plugins: [
10
10
  vue(),
11
- minifyHtml(),
12
- injectHtml({
13
- data: {
14
- base: process.env.BASE_URL || '/',
15
- title: envMap.VITE_APP_TITLE,
11
+ createHtmlPlugin({
12
+ minify: true,
13
+ inject: {
14
+ data: {
15
+ base: process.env.BASE_URL || '/',
16
+ title: envMap.VITE_APP_TITLE,
17
+ },
16
18
  },
17
19
  }),
18
20
  ],
@@ -0,0 +1,4 @@
1
+ > 1%
2
+ last 2 versions
3
+ not dead
4
+ not ie 11
@@ -0,0 +1,14 @@
1
+ module.exports = {
2
+ root: true,
3
+ env: {
4
+ node: true,
5
+ },
6
+ extends: ['plugin:vue/essential', 'eslint:recommended', 'plugin:prettier/recommended'],
7
+ parserOptions: {
8
+ parser: '@babel/eslint-parser',
9
+ },
10
+ rules: {
11
+ 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
12
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
13
+ },
14
+ };
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  const middleware = require('@blocklet/sdk/lib/middlewares');
2
2
  const router = require('express').Router();
3
3
 
4
- router.use('/user', middleware.user(), (req, res) => res.json(req.user));
4
+ router.use('/user', middleware.user(), (req, res) => res.json(req.user || {}));
5
5
 
6
6
  module.exports = router;
@@ -4,12 +4,12 @@ description: A Blocklet Server blocklet
4
4
  keywords:
5
5
  - blocklet
6
6
  - vue
7
- group: static
7
+ group: dapp
8
8
  did: ''
9
- main: dist
9
+ main: api/index.js
10
10
  author:
11
- name: zhanghan
12
- email: zhanghan@arcblock.io
11
+ name: Blocklet
12
+ email: blocklet@arcblock.io
13
13
  repository:
14
14
  type: git
15
15
  url: git+https://github.com/blocklet/create-blocklet.git
@@ -21,6 +21,7 @@ files:
21
21
  - README.md
22
22
  - blocklet.md
23
23
  - screenshots
24
+ - api/hooks/pre-start.js
24
25
  interfaces:
25
26
  - type: web
26
27
  name: publicUrl
@@ -39,10 +40,11 @@ charging:
39
40
  timeout:
40
41
  start: 60
41
42
  requirements:
42
- abtnode: '>=1.4.0'
43
+ server: '>=1.6.29'
43
44
  os: '*'
44
45
  cpu: '*'
45
46
  scripts:
47
+ preStart: node api/hooks/pre-start.js
46
48
  dev: npm run start
47
49
  environments:
48
50
  - name: CHAIN_HOST
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es5",
4
+ "module": "esnext",
5
+ "baseUrl": "./",
6
+ "moduleResolution": "node",
7
+ "paths": {
8
+ "@/*": [
9
+ "src/*"
10
+ ]
11
+ },
12
+ "lib": [
13
+ "esnext",
14
+ "dom",
15
+ "dom.iterable",
16
+ "scripthost"
17
+ ]
18
+ }
19
+ }