zmp-cli 3.15.5 → 3.15.6-beta.1
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/README.md +1 -0
- package/build/index.js +1 -184
- package/config/index.js +1 -44
- package/create/index.js +1 -230
- package/create/init-zmp-ui.js +1 -216
- package/create/templates/app-parameters.js +9 -25
- package/create/templates/common/webpack/build.js +2 -40
- package/create/templates/copy-assets.js +1 -158
- package/create/templates/core/copy-assets.js +14 -82
- package/create/templates/core/generate-home-page.js +16 -38
- package/create/templates/core/generate-root.js +28 -63
- package/create/templates/core/generate-routes.js +12 -38
- package/create/templates/core/generate-scripts.js +16 -65
- package/create/templates/create-folders.js +1 -30
- package/create/templates/generate-config-xml.js +2 -9
- package/create/templates/generate-index.js +10 -35
- package/create/templates/generate-manifest.js +1 -49
- package/create/templates/generate-recoil.js +4 -16
- package/create/templates/generate-routes.js +1 -16
- package/create/templates/generate-scripts.js +1 -16
- package/create/templates/generate-service-worker.js +4 -10
- package/create/templates/generate-store.js +4 -15
- package/create/templates/generate-styles.js +10 -64
- package/create/templates/generate-webpack-config.js +43 -125
- package/create/templates/generate-zmp-custom.js +14 -72
- package/create/templates/react/copy-assets.js +1 -85
- package/create/templates/react/generate-home-page.js +20 -50
- package/create/templates/react/generate-root.js +15 -44
- package/create/templates/react/generate-routes.js +1 -16
- package/create/templates/react/generate-scripts.js +12 -38
- package/create/templates/react/pages/404.js +2 -10
- package/create/templates/react/pages/about.js +2 -10
- package/create/templates/react/pages/catalog.js +3 -17
- package/create/templates/react/pages/dynamic-route.js +2 -10
- package/create/templates/react/pages/form.js +6 -26
- package/create/templates/react/pages/index copy.js +1 -17
- package/create/templates/react/pages/index.js +1 -17
- package/create/templates/react/pages/settings.js +3 -17
- package/create/templates/react/pages/user.js +8 -27
- package/create/templates/react-typescript/components/app-items.js +2 -9
- package/create/templates/react-typescript/components/index.js +1 -9
- package/create/templates/react-typescript/components/navbar-back.js +2 -9
- package/create/templates/react-typescript/components/user-card.js +2 -9
- package/create/templates/react-typescript/copy-assets.js +1 -94
- package/create/templates/react-typescript/generate-home-page.js +20 -52
- package/create/templates/react-typescript/generate-root.js +14 -45
- package/create/templates/react-typescript/generate-routes.js +1 -12
- package/create/templates/react-typescript/generate-scripts.js +12 -37
- package/create/templates/react-typescript/pages/404.js +2 -10
- package/create/templates/react-typescript/pages/about.js +2 -10
- package/create/templates/react-typescript/pages/catalog.js +3 -17
- package/create/templates/react-typescript/pages/dynamic-route.js +2 -10
- package/create/templates/react-typescript/pages/form.js +6 -26
- package/create/templates/react-typescript/pages/index.js +1 -17
- package/create/templates/react-typescript/pages/settings.js +3 -17
- package/create/templates/react-typescript/pages/user.js +8 -27
- package/create/templates/svelte/copy-assets.js +1 -47
- package/create/templates/svelte/generate-home-page.js +20 -56
- package/create/templates/svelte/generate-root.js +22 -80
- package/create/templates/svelte/generate-routes.js +7 -22
- package/create/templates/svelte/generate-scripts.js +7 -23
- package/create/templates/vue/copy-assets.js +1 -67
- package/create/templates/vue/generate-home-page.js +2 -8
- package/create/templates/vue/generate-root.js +3 -13
- package/create/templates/vue/generate-routes.js +1 -7
- package/create/templates/vue/generate-scripts.js +9 -26
- package/create/templates/vue/global-components.d.js +1 -0
- package/create/templates/zaui/copy-assets.js +1 -90
- package/create/templates/zaui/generate-home-page.js +27 -53
- package/create/templates/zaui/generate-root.js +14 -34
- package/create/templates/zaui/generate-routes.js +1 -10
- package/create/templates/zaui/generate-scripts.js +6 -20
- package/create/templates/zaui/generate-user-card.js +3 -18
- package/create/templates/zaui/pages/about.js +3 -20
- package/create/templates/zaui/pages/form.js +3 -20
- package/create/templates/zaui/pages/index.js +1 -9
- package/create/templates/zaui/pages/user.js +3 -20
- package/create/utils/colors.js +1 -94
- package/create/utils/generate-app-config.js +1 -34
- package/create/utils/generate-gitignore.js +1 -43
- package/create/utils/generate-npm-scripts.js +1 -26
- package/create/utils/generate-package-json.js +1 -132
- package/create/utils/generate-readme.js +1 -28
- package/create/utils/get-options.js +1 -204
- package/create/utils/indent.js +1 -31
- package/create/utils/npm-scripts.js +1 -62
- package/create/utils/string.js +1 -13
- package/create/utils/styles-extension.js +1 -9
- package/create/utils/template-if.js +1 -9
- package/deploy/index.js +1 -148
- package/deploy/utils/get-options.js +1 -69
- package/deploy/utils/request-upload.js +1 -34
- package/deploy/utils/upload-app.js +1 -82
- package/index.js +1 -319
- package/login/index.js +1 -169
- package/login/utils/get-options.js +1 -58
- package/login/utils/zalo-login.js +1 -32
- package/migrate/icons/update-icon-v3.js +1 -19
- package/migrate/index.js +1 -60
- package/migrate/utils/get-options.js +1 -46
- package/migrate/utils/migrate-react.js +1 -33
- package/package.json +11 -39
- package/start/generate-hr-config.js +1 -59
- package/start/index.js +1 -382
- package/sync/index-to-app-config.js +1 -146
- package/sync/index.js +1 -55
- package/utils/axios.js +1 -15
- package/utils/check-update.js +1 -53
- package/utils/constants.js +1 -20
- package/utils/env.js +1 -39
- package/utils/error.js +1 -16
- package/utils/find-files-by-ext.js +1 -27
- package/utils/find-free-port.js +1 -11
- package/utils/fs-extra.js +1 -90
- package/utils/generate-pages-map.js +1 -17
- package/utils/get-app-info.js +1 -22
- package/utils/get-current-project.js +1 -25
- package/utils/get-ip.js +1 -19
- package/utils/log.js +1 -19
- package/utils/node-blob.js +1 -106
- package/utils/resumable.d.js +1 -0
- package/utils/resumable.js +1 -1204
- package/utils/spinner.js +1 -25
- package/utils/tunnel.js +1 -36
- package/.editorconfig +0 -15
- package/.eslintignore +0 -8
- package/.eslintrc.js +0 -10
- package/.vscode/launch.json +0 -23
- package/LICENSE +0 -21
- package/README.git.md +0 -37
- package/assets/index.js +0 -147
- package/build/dist/index.dev.js +0 -217
- package/config/dist/index.dev.js +0 -48
- package/create/templates/dist/generate-styles.dev.js +0 -46
- package/create/utils/dist/get-options.dev.js +0 -277
- package/deploy/dist/index.dev.js +0 -227
- package/dist/index.dev.js +0 -352
- package/jsconfig.json +0 -8
- package/login/dist/index.dev.js +0 -223
- package/screenshots/wellcome.jpg +0 -0
- package/show-qr-app/assets/css/style.css +0 -87
- package/show-qr-app/assets/js/qrcode.min.js +0 -1
- package/show-qr-app/index.html +0 -57
- package/show-qr-app/package.json +0 -14
- package/start/dist/index.dev.js +0 -312
- package/ui/server.js +0 -194
- package/ui/www/css/app.css +0 -1
- package/ui/www/css/app.css.map +0 -1
- package/ui/www/fonts/ZMPIcons-Regular.eot +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.ttf +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.woff +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.woff2 +0 -0
- package/ui/www/images/logo.png +0 -0
- package/ui/www/index.html +0 -1
- package/ui/www/js/app.js +0 -3
- package/ui/www/js/app.js.LICENSE.txt +0 -20
- package/ui/www/js/app.js.map +0 -1
- package/ui/www/static/icons/apple-touch-icon.png +0 -0
- package/ui/www/static/icons/favicon.png +0 -0
- package/utils/dist/get-app-info.dev.js +0 -54
|
@@ -1,67 +1 @@
|
|
|
1
|
-
const path =
|
|
2
|
-
const generateHomePage = require('./generate-home-page');
|
|
3
|
-
const generateRoot = require('./generate-root');
|
|
4
|
-
const generateStore = require('../generate-store');
|
|
5
|
-
|
|
6
|
-
module.exports = (options) => {
|
|
7
|
-
const cwd = options.cwd || process.cwd();
|
|
8
|
-
const { bundler } = options;
|
|
9
|
-
const toCopy = [];
|
|
10
|
-
|
|
11
|
-
// Copy Pages
|
|
12
|
-
const pages = ['settings'];
|
|
13
|
-
|
|
14
|
-
pages.forEach((p) => {
|
|
15
|
-
const src = path.resolve(__dirname, 'pages', `${p}.vue`);
|
|
16
|
-
const dest = path.resolve(cwd, 'src', 'pages', `${p}.vue`);
|
|
17
|
-
toCopy.push({
|
|
18
|
-
from: src,
|
|
19
|
-
to: dest,
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
toCopy.push({
|
|
23
|
-
content: generateHomePage(options),
|
|
24
|
-
to: path.resolve(cwd, 'src', 'pages', 'index.vue'),
|
|
25
|
-
});
|
|
26
|
-
toCopy.push({
|
|
27
|
-
content: generateRoot(options),
|
|
28
|
-
to: path.resolve(cwd, 'src', 'components', 'app.vue'),
|
|
29
|
-
});
|
|
30
|
-
toCopy.push({
|
|
31
|
-
content: generateStore(options),
|
|
32
|
-
to: path.resolve(cwd, 'src', 'store.js'),
|
|
33
|
-
});
|
|
34
|
-
toCopy.push({
|
|
35
|
-
from: path.resolve(__dirname, 'vite.config.js'),
|
|
36
|
-
to: path.resolve(cwd, 'vite.config.js'),
|
|
37
|
-
});
|
|
38
|
-
toCopy.push({
|
|
39
|
-
from: path.resolve(__dirname, 'global-components.d.ts'),
|
|
40
|
-
to: path.resolve(cwd, 'src', 'global-components.d.ts'),
|
|
41
|
-
});
|
|
42
|
-
toCopy.push({
|
|
43
|
-
from: path.resolve(__dirname, 'components', 'header.vue'),
|
|
44
|
-
to: path.resolve(cwd, 'src', 'components', 'header.vue'),
|
|
45
|
-
});
|
|
46
|
-
toCopy.push({
|
|
47
|
-
from: path.resolve(__dirname, 'components', 'sun-and-moon.vue'),
|
|
48
|
-
to: path.resolve(cwd, 'src', 'components', 'sun-and-moon.vue'),
|
|
49
|
-
});
|
|
50
|
-
toCopy.push({
|
|
51
|
-
from: path.resolve(__dirname, 'icons', 'sun.svg'),
|
|
52
|
-
to: path.resolve(cwd, 'src', 'static', 'icons', 'sun.svg'),
|
|
53
|
-
});
|
|
54
|
-
toCopy.push({
|
|
55
|
-
from: path.resolve(__dirname, 'icons', 'moon.svg'),
|
|
56
|
-
to: path.resolve(cwd, 'src', 'static', 'icons', 'moon.svg'),
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (bundler) {
|
|
61
|
-
toCopy.push({
|
|
62
|
-
from: path.resolve(__dirname, 'babel.config.js'),
|
|
63
|
-
to: path.resolve(cwd, 'babel.config.js'),
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
return toCopy;
|
|
67
|
-
};
|
|
1
|
+
"use strict";const e=require("path"),o=require("./generate-home-page"),s=require("./generate-root"),r=require("../generate-store");module.exports=n=>{let t=n.cwd||process.cwd(),{bundler:c}=n,v=[];return["settings"].forEach(o=>{let s=e.resolve(__dirname,"pages",`${o}.vue`),r=e.resolve(t,"src","pages",`${o}.vue`);v.push({from:s,to:r})}),v.push({content:o(n),to:e.resolve(t,"src","pages","index.vue")}),v.push({content:s(n),to:e.resolve(t,"src","components","app.vue")}),v.push({content:r(n),to:e.resolve(t,"src","store.js")}),v.push({from:e.resolve(__dirname,"vite.config.js"),to:e.resolve(t,"vite.config.js")}),v.push({from:e.resolve(__dirname,"global-components.d.ts"),to:e.resolve(t,"src","global-components.d.ts")}),v.push({from:e.resolve(__dirname,"components","header.vue"),to:e.resolve(t,"src","components","header.vue")}),v.push({from:e.resolve(__dirname,"components","sun-and-moon.vue"),to:e.resolve(t,"src","components","sun-and-moon.vue")}),v.push({from:e.resolve(__dirname,"icons","sun.svg"),to:e.resolve(t,"src","static","icons","sun.svg")}),v.push({from:e.resolve(__dirname,"icons","moon.svg"),to:e.resolve(t,"src","static","icons","moon.svg")}),c&&v.push({from:e.resolve(__dirname,"babel.config.js"),to:e.resolve(t,"babel.config.js")}),v};
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
module.exports = (options) => {
|
|
4
|
-
const { name, template } = options;
|
|
5
|
-
|
|
6
|
-
return indent(0, `
|
|
1
|
+
"use strict";const e=require("../../utils/indent");module.exports=t=>{let{name:o,template:m}=t;return e(0,`
|
|
7
2
|
<template>
|
|
8
3
|
<zmp-page name="home" :theme-dark="darkMode">
|
|
9
4
|
<Header />
|
|
@@ -52,5 +47,4 @@ module.exports = (options) => {
|
|
|
52
47
|
|
|
53
48
|
const darkMode = useStore('darkMode');
|
|
54
49
|
</script>
|
|
55
|
-
`).trim();
|
|
56
|
-
};
|
|
50
|
+
`).trim()};
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
const
|
|
2
|
-
const templateIf = require('../../utils/template-if');
|
|
3
|
-
const appParameters = require('../app-parameters');
|
|
4
|
-
|
|
5
|
-
module.exports = (options) => {
|
|
6
|
-
const { template, type, theming, customBuild } = options;
|
|
7
|
-
|
|
8
|
-
return indent(0,
|
|
9
|
-
`
|
|
1
|
+
"use strict";const r=require("../../utils/indent");require("../../utils/template-if");const e=require("../app-parameters");module.exports=t=>{let{template:a,type:p,theming:s,customBuild:m}=t;return r(0,`
|
|
10
2
|
<template>
|
|
11
3
|
<zmp-app v-bind="zmpparams">
|
|
12
4
|
<!-- Your main view, should have "view-main" class -->
|
|
@@ -23,7 +15,7 @@ module.exports = (options) => {
|
|
|
23
15
|
setup() {
|
|
24
16
|
// ZMP Parameters
|
|
25
17
|
const zmpparams = {
|
|
26
|
-
${
|
|
18
|
+
${r(6,e(t)).trim()}
|
|
27
19
|
};
|
|
28
20
|
|
|
29
21
|
onMounted(() => {
|
|
@@ -45,6 +37,4 @@ module.exports = (options) => {
|
|
|
45
37
|
}
|
|
46
38
|
}
|
|
47
39
|
</script>
|
|
48
|
-
`
|
|
49
|
-
).trim();
|
|
50
|
-
};
|
|
40
|
+
`).trim()};
|
|
@@ -1,42 +1,28 @@
|
|
|
1
|
-
const
|
|
2
|
-
const indent = require('../../utils/indent');
|
|
3
|
-
const stylesExtension = require('../../utils/styles-extension');
|
|
4
|
-
|
|
5
|
-
module.exports = (options) => {
|
|
6
|
-
const {
|
|
7
|
-
cssPreProcessor,
|
|
8
|
-
theming,
|
|
9
|
-
customBuild,
|
|
10
|
-
includeTailwind
|
|
11
|
-
} = options;
|
|
12
|
-
|
|
13
|
-
let scripts = '';
|
|
14
|
-
|
|
15
|
-
scripts += indent(0, `
|
|
1
|
+
"use strict";const p=require("../../utils/template-if"),t=require("../../utils/indent"),o=require("../../utils/styles-extension");module.exports=e=>{let{cssPreProcessor:s,theming:r,customBuild:m,includeTailwind:i}=e,n="";return(n+=t(0,`
|
|
16
2
|
// Import Vue
|
|
17
3
|
import { createApp } from 'vue';
|
|
18
4
|
|
|
19
5
|
// Import ZMP
|
|
20
|
-
import ZMP from '${
|
|
6
|
+
import ZMP from '${m?"./zmp-custom.js":"zmp-framework/core/lite-bundle"}';
|
|
21
7
|
|
|
22
8
|
// Import ZMP-Vue Plugin
|
|
23
|
-
import ZMPVue, { registerComponents } from 'zmp-vue/bundle';${
|
|
9
|
+
import ZMPVue, { registerComponents } from 'zmp-vue/bundle';${i?`
|
|
24
10
|
|
|
25
11
|
// Import tailwind styles
|
|
26
|
-
import './css/tailwind.css'
|
|
12
|
+
import './css/tailwind.css';`:""}
|
|
27
13
|
|
|
28
14
|
// Import ZMP Styles
|
|
29
|
-
${
|
|
15
|
+
${p(m,()=>`
|
|
30
16
|
import '../css/zmp-custom.less';
|
|
31
|
-
`,
|
|
17
|
+
`,()=>`
|
|
32
18
|
import 'zmp-framework/zmp-bundle.min.css';
|
|
33
19
|
`)}
|
|
34
20
|
|
|
35
21
|
// Import Icons and App Custom Styles
|
|
36
|
-
${
|
|
22
|
+
${p(r.iconFonts,()=>`
|
|
37
23
|
import './css/icons.css';
|
|
38
24
|
`)}
|
|
39
|
-
import './css/app.${
|
|
25
|
+
import './css/app.${o(s)}';
|
|
40
26
|
|
|
41
27
|
// Import App Component
|
|
42
28
|
import App from './components/app.vue';
|
|
@@ -57,7 +43,4 @@ module.exports = (options) => {
|
|
|
57
43
|
|
|
58
44
|
// Mount the app
|
|
59
45
|
app.mount('#app');
|
|
60
|
-
`);
|
|
61
|
-
|
|
62
|
-
return scripts.trim();
|
|
63
|
-
};
|
|
46
|
+
`)).trim()};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1,90 +1 @@
|
|
|
1
|
-
const path =
|
|
2
|
-
const generateHomePage = require('./generate-home-page');
|
|
3
|
-
const generateRoot = require('./generate-root');
|
|
4
|
-
const generateRecoil = require('../generate-recoil');
|
|
5
|
-
const generateUserCard = require('./generate-user-card');
|
|
6
|
-
const copyPages = require('./pages');
|
|
7
|
-
const { projectFramework } = require('../../../utils/constants');
|
|
8
|
-
const fse = require('../../../utils/fs-extra');
|
|
9
|
-
|
|
10
|
-
module.exports = (options) => {
|
|
11
|
-
const cwd = options.cwd || process.cwd();
|
|
12
|
-
const { template, stateManagement, framework } = options;
|
|
13
|
-
const toCopy = [];
|
|
14
|
-
|
|
15
|
-
// Copy Pages
|
|
16
|
-
|
|
17
|
-
const ext = framework === projectFramework.REACT_TYPESCRIPT ?'tsx': 'jsx'
|
|
18
|
-
|
|
19
|
-
let pages = [];
|
|
20
|
-
if (template !== 'blank')
|
|
21
|
-
pages.push(
|
|
22
|
-
...[
|
|
23
|
-
{ fileName: 'about', content: 'copyAbout' },
|
|
24
|
-
{ fileName: 'user', content: 'copyUser' },
|
|
25
|
-
{ fileName: 'form', content: 'copyForm' },
|
|
26
|
-
]
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
pages.forEach(({ fileName, content }) => {
|
|
31
|
-
const dest = path.resolve(cwd, 'src', 'pages', `${fileName}.${ext}`);
|
|
32
|
-
toCopy.push({
|
|
33
|
-
content: copyPages[content](options),
|
|
34
|
-
to: dest,
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
toCopy.push({
|
|
40
|
-
content: generateHomePage(options),
|
|
41
|
-
to: path.resolve(cwd, 'src', 'pages', `index.${ext}`),
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
if(template !== 'blank') {
|
|
45
|
-
toCopy.push({
|
|
46
|
-
content: generateUserCard(options),
|
|
47
|
-
to: path.resolve(cwd, 'src','components', `user-card.${ext}`)
|
|
48
|
-
})
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
toCopy.push({
|
|
53
|
-
content: generateRoot(options),
|
|
54
|
-
to: path.resolve(cwd, 'src', 'components', `app.${ext}`),
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
if(framework === projectFramework.REACT_TYPESCRIPT){
|
|
58
|
-
if (stateManagement === 'recoil') {
|
|
59
|
-
toCopy.push({
|
|
60
|
-
content: generateRecoil(options),
|
|
61
|
-
to: path.resolve(cwd, 'src', 'state.ts'),
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}else {
|
|
67
|
-
if (stateManagement === 'recoil') {
|
|
68
|
-
toCopy.push({
|
|
69
|
-
content: generateRecoil(options),
|
|
70
|
-
to: path.resolve(cwd, 'src', 'state.js'),
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
const isTs = framework === projectFramework.REACT_TYPESCRIPT
|
|
76
|
-
|
|
77
|
-
toCopy.push({
|
|
78
|
-
content: fse.readFileSync(path.resolve(__dirname, 'vite.config.js'),'utf8'),
|
|
79
|
-
to: path.resolve(cwd, `vite.config.${isTs ? 'ts':'js'}`),
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
if(framework === projectFramework.REACT_TYPESCRIPT){
|
|
83
|
-
toCopy.push({
|
|
84
|
-
from: path.resolve(__dirname, '_tsconfig.json'),
|
|
85
|
-
to: path.resolve(cwd, 'tsconfig.json')
|
|
86
|
-
})
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return toCopy;
|
|
90
|
-
};
|
|
1
|
+
"use strict";const e=require("path"),t=require("./generate-home-page"),r=require("./generate-root"),o=require("../generate-recoil"),s=require("./generate-user-card"),n=require("./pages"),{projectFramework:c}=require("../../../utils/constants"),u=require("../../../utils/fs-extra");module.exports=i=>{let a=i.cwd||process.cwd(),{template:l,stateManagement:p,framework:f}=i,g=[],h=f===c.REACT_TYPESCRIPT?"tsx":"jsx",m=[];"blank"!==l&&m.push({fileName:"about",content:"copyAbout"},{fileName:"user",content:"copyUser"},{fileName:"form",content:"copyForm"}),m.forEach(({fileName:t,content:r})=>{let o=e.resolve(a,"src","pages",`${t}.${h}`);g.push({content:n[r](i),to:o})}),g.push({content:t(i),to:e.resolve(a,"src","pages",`index.${h}`)}),"blank"!==l&&g.push({content:s(i),to:e.resolve(a,"src","components",`user-card.${h}`)}),g.push({content:r(i),to:e.resolve(a,"src","components",`app.${h}`)}),f===c.REACT_TYPESCRIPT?"recoil"===p&&g.push({content:o(i),to:e.resolve(a,"src","state.ts")}):"recoil"===p&&g.push({content:o(i),to:e.resolve(a,"src","state.js")});let v=f===c.REACT_TYPESCRIPT;return g.push({content:u.readFileSync(e.resolve(__dirname,"vite.config.js"),"utf8"),to:e.resolve(a,`vite.config.${v?"ts":"js"}`)}),f===c.REACT_TYPESCRIPT&&g.push({from:e.resolve(__dirname,"_tsconfig.json"),to:e.resolve(a,"tsconfig.json")}),g};
|
|
@@ -1,41 +1,29 @@
|
|
|
1
|
-
const
|
|
2
|
-
const indent = require('../../utils/indent');
|
|
3
|
-
module.exports = (options) => {
|
|
4
|
-
const { name, template, framework, stateManagement } = options;
|
|
5
|
-
if(framework === projectFramework.REACT_TYPESCRIPT){
|
|
6
|
-
return indent(
|
|
7
|
-
0,
|
|
8
|
-
`
|
|
1
|
+
"use strict";const{projectFramework:e}=require("../../../utils/constants"),t=require("../../utils/indent");module.exports=i=>{let{name:r,template:a,framework:o,stateManagement:s}=i;return o===e.REACT_TYPESCRIPT?t(0,`
|
|
9
2
|
import React from 'react';
|
|
10
|
-
${
|
|
11
|
-
template === 'blank'
|
|
12
|
-
? `
|
|
3
|
+
${"blank"===a?`
|
|
13
4
|
import { Page } from 'zmp-ui';
|
|
14
|
-
`.trim()
|
|
15
|
-
: `
|
|
5
|
+
`.trim():`
|
|
16
6
|
import {
|
|
17
7
|
List,
|
|
18
8
|
Page,
|
|
19
9
|
Icon,
|
|
20
10
|
useNavigate
|
|
21
|
-
} from 'zmp-ui';${
|
|
11
|
+
} from 'zmp-ui';${"recoil"===s?`
|
|
22
12
|
import { useRecoilValue } from 'recoil';
|
|
23
13
|
import { userInfo } from "zmp-sdk";
|
|
24
|
-
import { userState } from '../state'
|
|
25
|
-
${
|
|
14
|
+
import { userState } from '../state';`:""}
|
|
15
|
+
${"blank"!==a?`
|
|
26
16
|
import UserCard from '../components/user-card';
|
|
27
|
-
`:
|
|
28
|
-
`.trim()
|
|
29
|
-
}
|
|
17
|
+
`:""}
|
|
18
|
+
`.trim()}
|
|
30
19
|
|
|
31
20
|
const HomePage:React.FunctionComponent = () => {
|
|
32
|
-
${
|
|
33
|
-
${
|
|
21
|
+
${"blank"!==a?"recoil"===s?"const user = useRecoilValue<userInfo>(userState);":"const user = useStore('user');":""}
|
|
22
|
+
${"blank"!==a?"const navigate = useNavigate()":""}
|
|
34
23
|
return (
|
|
35
|
-
${
|
|
24
|
+
${"blank"===a?`<Page className="page">
|
|
36
25
|
Hello Zalo Mini App
|
|
37
|
-
</Page> `.trim()
|
|
38
|
-
`
|
|
26
|
+
</Page> `.trim():`
|
|
39
27
|
<Page className="page">
|
|
40
28
|
<div className="section-container">
|
|
41
29
|
<UserCard user={user}/>
|
|
@@ -50,48 +38,37 @@ module.exports = (options) => {
|
|
|
50
38
|
</List.Item>
|
|
51
39
|
</List>
|
|
52
40
|
</div>
|
|
53
|
-
</Page>`.trim()
|
|
54
|
-
}
|
|
41
|
+
</Page>`.trim()}
|
|
55
42
|
);
|
|
56
43
|
}
|
|
57
44
|
|
|
58
45
|
export default HomePage;
|
|
59
|
-
`
|
|
60
|
-
).trim();
|
|
61
|
-
}
|
|
62
|
-
return indent(
|
|
63
|
-
0,
|
|
64
|
-
`
|
|
46
|
+
`).trim():t(0,`
|
|
65
47
|
import React from 'react';
|
|
66
|
-
${
|
|
67
|
-
template === 'blank'
|
|
68
|
-
? `
|
|
48
|
+
${"blank"===a?`
|
|
69
49
|
import {
|
|
70
50
|
Page
|
|
71
51
|
} from 'zmp-ui';
|
|
72
|
-
`.trim()
|
|
73
|
-
: `
|
|
52
|
+
`.trim():`
|
|
74
53
|
import {
|
|
75
54
|
List,
|
|
76
55
|
Page,
|
|
77
56
|
Icon,useNavigate
|
|
78
|
-
} from 'zmp-ui';${
|
|
57
|
+
} from 'zmp-ui';${"recoil"===s?`
|
|
79
58
|
import { useRecoilValue } from 'recoil';
|
|
80
|
-
import { userState } from '../state'
|
|
81
|
-
${
|
|
59
|
+
import { userState } from '../state';`:""}
|
|
60
|
+
${"blank"!==a?`
|
|
82
61
|
import UserCard from '../components/user-card';
|
|
83
|
-
`:
|
|
84
|
-
`.trim()
|
|
85
|
-
}
|
|
62
|
+
`:""}
|
|
63
|
+
`.trim()}
|
|
86
64
|
|
|
87
65
|
const HomePage = () => {
|
|
88
|
-
${
|
|
89
|
-
${
|
|
66
|
+
${"blank"!==a?"recoil"===s?"const user = useRecoilValue(userState);":"const user = useStore('user');":""}
|
|
67
|
+
${"blank"!==a?"const navigate = useNavigate()":""}
|
|
90
68
|
return (
|
|
91
|
-
${
|
|
69
|
+
${"blank"===a?`<Page className="page">
|
|
92
70
|
Hello Zalo Mini App
|
|
93
|
-
</Page> `.trim()
|
|
94
|
-
`
|
|
71
|
+
</Page> `.trim():`
|
|
95
72
|
<Page className="page">
|
|
96
73
|
<div className="section-container">
|
|
97
74
|
<UserCard user={user}/>
|
|
@@ -106,12 +83,9 @@ module.exports = (options) => {
|
|
|
106
83
|
</List.Item>
|
|
107
84
|
</List>
|
|
108
85
|
</div>
|
|
109
|
-
</Page>`.trim()
|
|
110
|
-
}
|
|
86
|
+
</Page>`.trim()}
|
|
111
87
|
);
|
|
112
88
|
}
|
|
113
89
|
|
|
114
90
|
export default HomePage;
|
|
115
|
-
`
|
|
116
|
-
).trim();
|
|
117
|
-
};
|
|
91
|
+
`).trim()};
|
|
@@ -1,53 +1,33 @@
|
|
|
1
|
-
const
|
|
2
|
-
const indent = require('../../utils/indent');
|
|
3
|
-
const { capitalize } = require('../../utils/string')
|
|
4
|
-
module.exports = (options) => {
|
|
5
|
-
const { template, theming, stateManagement } = options;
|
|
6
|
-
|
|
7
|
-
// Views
|
|
8
|
-
|
|
9
|
-
const routes = []
|
|
10
|
-
if(template ==='single-view'){
|
|
11
|
-
routes.push('about','form','user')
|
|
12
|
-
}
|
|
13
|
-
return indent(
|
|
14
|
-
0,
|
|
15
|
-
`
|
|
1
|
+
"use strict";const e=require("../../utils/template-if"),r=require("../../utils/indent"),{capitalize:t}=require("../../utils/string");module.exports=o=>{let{template:i,theming:m,stateManagement:u}=o,a=[];return"single-view"===i&&a.push("about","form","user"),r(0,`
|
|
16
2
|
import React from 'react';
|
|
17
3
|
import { Route} from 'react-router-dom'
|
|
18
|
-
${[
|
|
19
|
-
? `
|
|
4
|
+
${["blank","single-view"].indexOf(i)>=0?`
|
|
20
5
|
import { App, ZMPRouter, AnimationRoutes, SnackbarProvider } from 'zmp-ui';
|
|
21
|
-
`.trim():
|
|
22
|
-
}
|
|
23
|
-
${templateIf(stateManagement === 'recoil', () => `import { RecoilRoot } from 'recoil';`,'')}
|
|
6
|
+
`.trim():""}
|
|
7
|
+
${e("recoil"===u,()=>"import { RecoilRoot } from 'recoil';","")}
|
|
24
8
|
import HomePage from '../pages';
|
|
25
|
-
${
|
|
9
|
+
${a.length>0?a.map(e=>` import ${t(e)} from '../pages/${e}';
|
|
10
|
+
`).join("").trim():""}
|
|
26
11
|
|
|
27
12
|
|
|
28
13
|
const MyApp = () => {
|
|
29
14
|
${`
|
|
30
|
-
return (${
|
|
31
|
-
<RecoilRoot
|
|
32
|
-
${
|
|
15
|
+
return (${"recoil"===u?`
|
|
16
|
+
<RecoilRoot>`:""}
|
|
17
|
+
${r("recoil"===u?2:0,`<App ${m.darkTheme?"themeDark":""}>`)}
|
|
33
18
|
<SnackbarProvider>
|
|
34
19
|
<ZMPRouter>
|
|
35
20
|
<AnimationRoutes>
|
|
36
21
|
<Route path="/" element={<HomePage></HomePage>}></Route>
|
|
37
|
-
${
|
|
38
|
-
|
|
39
|
-
return ` <Route path="/${route}" element={<${pageName}></${pageName}>}></Route>\n`
|
|
40
|
-
}).join('').trim(): ''
|
|
41
|
-
}
|
|
22
|
+
${a.length>0?a.map(e=>{let r=t(e);return` <Route path="/${e}" element={<${r}></${r}>}></Route>
|
|
23
|
+
`}).join("").trim():""}
|
|
42
24
|
</AnimationRoutes>
|
|
43
25
|
</ZMPRouter>
|
|
44
26
|
</SnackbarProvider>
|
|
45
|
-
${
|
|
46
|
-
</RecoilRoot
|
|
27
|
+
${r("recoil"===u?2:0,"</App>")}${"recoil"===u?`
|
|
28
|
+
</RecoilRoot>`:""}
|
|
47
29
|
);
|
|
48
30
|
`.trim()}
|
|
49
31
|
}
|
|
50
32
|
export default MyApp;
|
|
51
|
-
`
|
|
52
|
-
).trim();
|
|
53
|
-
};
|
|
33
|
+
`).trim()};
|
|
@@ -1,10 +1 @@
|
|
|
1
|
-
module.exports
|
|
2
|
-
const { template } = options;
|
|
3
|
-
|
|
4
|
-
if (template === 'blank') {
|
|
5
|
-
return [];
|
|
6
|
-
}
|
|
7
|
-
const routes = ['/user', '/form', '/dynamic-route', '/about', '/404'];
|
|
8
|
-
|
|
9
|
-
return routes;
|
|
10
|
-
};
|
|
1
|
+
"use strict";module.exports=e=>{let{template:r}=e;return"blank"===r?[]:["/user","/form","/dynamic-route","/about","/404"]};
|
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
const
|
|
2
|
-
const stylesExtension = require('../../utils/styles-extension');
|
|
3
|
-
|
|
4
|
-
module.exports = (options) => {
|
|
5
|
-
const { cssPreProcessor, includeTailwind, framework } = options;
|
|
6
|
-
|
|
7
|
-
let scripts = '';
|
|
8
|
-
|
|
9
|
-
scripts += indent(
|
|
10
|
-
0,
|
|
11
|
-
`
|
|
1
|
+
"use strict";const t=require("../../utils/indent"),e=require("../../utils/styles-extension");module.exports=o=>{let{cssPreProcessor:p,includeTailwind:r,framework:i}=o,n="";return(n+=t(0,`
|
|
12
2
|
// Import React and ReactDOM
|
|
13
3
|
import React from 'react';
|
|
14
4
|
import { createRoot } from 'react-dom/client';
|
|
15
|
-
${
|
|
5
|
+
${r?`
|
|
16
6
|
|
|
17
7
|
// Import tailwind styles
|
|
18
|
-
import './css/tailwind.css'
|
|
8
|
+
import './css/tailwind.css';`:""}
|
|
19
9
|
|
|
20
10
|
import 'zmp-ui/zaui.css';
|
|
21
11
|
|
|
22
|
-
import './css/app.${
|
|
12
|
+
import './css/app.${e(p)}';
|
|
23
13
|
|
|
24
14
|
// Import App Component
|
|
25
15
|
import App from './components/app';
|
|
@@ -30,10 +20,6 @@ module.exports = (options) => {
|
|
|
30
20
|
}
|
|
31
21
|
|
|
32
22
|
// Mount React App
|
|
33
|
-
${
|
|
23
|
+
${"react-typescript"===i?"const root = createRoot(document.getElementById('app')!);":"const root = createRoot(document.getElementById('app'));"}
|
|
34
24
|
root.render(React.createElement(App));
|
|
35
|
-
`
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
return scripts.trim();
|
|
39
|
-
};
|
|
25
|
+
`)).trim()};
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
const
|
|
2
|
-
const {projectFramework} = require('../../../utils/constants')
|
|
3
|
-
// eslint-disable-next-line no-unused-vars
|
|
4
|
-
module.exports = (options) => {
|
|
5
|
-
const {framework} = options
|
|
6
|
-
if(framework === projectFramework.REACT_TYPESCRIPT){
|
|
7
|
-
return indent(
|
|
8
|
-
0,
|
|
9
|
-
`
|
|
1
|
+
"use strict";const r=require("../../utils/indent"),{projectFramework:t}=require("../../../utils/constants");module.exports=e=>{let{framework:a}=e;return a===t.REACT_TYPESCRIPT?r(0,`
|
|
10
2
|
import React from 'react';
|
|
11
3
|
import { Avatar, Box, Text } from 'zmp-ui';
|
|
12
4
|
import { userInfo } from 'zmp-sdk';
|
|
@@ -28,12 +20,7 @@ module.exports = (options) => {
|
|
|
28
20
|
};
|
|
29
21
|
|
|
30
22
|
export default UserCard;
|
|
31
|
-
`
|
|
32
|
-
).trim();
|
|
33
|
-
}
|
|
34
|
-
return indent(
|
|
35
|
-
0,
|
|
36
|
-
`
|
|
23
|
+
`).trim():r(0,`
|
|
37
24
|
import React from 'react';
|
|
38
25
|
import { Avatar, Box, Text } from 'zmp-ui';
|
|
39
26
|
|
|
@@ -50,6 +37,4 @@ module.exports = (options) => {
|
|
|
50
37
|
};
|
|
51
38
|
|
|
52
39
|
export default UserCard;
|
|
53
|
-
`
|
|
54
|
-
).trim();
|
|
55
|
-
};
|
|
40
|
+
`).trim()};
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
const
|
|
2
|
-
const {projectFramework} = require('../../../../utils/constants')
|
|
3
|
-
|
|
4
|
-
// eslint-disable-next-line no-unused-vars
|
|
5
|
-
module.exports = (options) => {
|
|
6
|
-
const {framework} = options
|
|
7
|
-
|
|
8
|
-
if(framework === projectFramework.REACT_TYPESCRIPT){
|
|
9
|
-
return indent(
|
|
10
|
-
0,
|
|
11
|
-
`
|
|
1
|
+
"use strict";const e=require("../../../utils/indent"),{projectFramework:t}=require("../../../../utils/constants");module.exports=n=>{let{framework:o}=n;return o===t.REACT_TYPESCRIPT?e(0,`
|
|
12
2
|
import React from "react";
|
|
13
3
|
import { Sheet, Button, Page, Text, useNavigate } from "zmp-ui";
|
|
14
4
|
|
|
@@ -63,12 +53,7 @@ module.exports = (options) => {
|
|
|
63
53
|
};
|
|
64
54
|
|
|
65
55
|
export default AboutPage;
|
|
66
|
-
`
|
|
67
|
-
).trim();
|
|
68
|
-
}
|
|
69
|
-
return indent(
|
|
70
|
-
0,
|
|
71
|
-
`
|
|
56
|
+
`).trim():e(0,`
|
|
72
57
|
import React from "react";
|
|
73
58
|
import { Sheet, Button, Page, Text, useNavigate } from "zmp-ui";
|
|
74
59
|
|
|
@@ -124,6 +109,4 @@ module.exports = (options) => {
|
|
|
124
109
|
|
|
125
110
|
export default AboutPage;
|
|
126
111
|
|
|
127
|
-
`
|
|
128
|
-
).trim();
|
|
129
|
-
};
|
|
112
|
+
`).trim()};
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
const
|
|
2
|
-
const {projectFramework} = require('../../../../utils/constants');
|
|
3
|
-
|
|
4
|
-
module.exports = (options) => {
|
|
5
|
-
const { framework } = options
|
|
6
|
-
|
|
7
|
-
if(framework === projectFramework.REACT_TYPESCRIPT){
|
|
8
|
-
return indent(
|
|
9
|
-
0,
|
|
10
|
-
`
|
|
1
|
+
"use strict";const e=require("../../../utils/indent"),{projectFramework:t}=require("../../../../utils/constants");module.exports=a=>{let{framework:r}=a;return r===t.REACT_TYPESCRIPT?e(0,`
|
|
11
2
|
import React from 'react';
|
|
12
3
|
import { Button, Input, Box, Page, useSnackbar } from 'zmp-ui';
|
|
13
4
|
import { useRecoilState } from 'recoil';
|
|
@@ -61,12 +52,7 @@ module.exports = (options) => {
|
|
|
61
52
|
}
|
|
62
53
|
|
|
63
54
|
export default FormPage;
|
|
64
|
-
`
|
|
65
|
-
).trim();
|
|
66
|
-
}
|
|
67
|
-
return indent(
|
|
68
|
-
0,
|
|
69
|
-
`
|
|
55
|
+
`).trim():e(0,`
|
|
70
56
|
import React from 'react';
|
|
71
57
|
import { Button,Input, Box, Page, useSnackbar } from 'zmp-ui';
|
|
72
58
|
import { useRecoilState } from 'recoil';
|
|
@@ -117,7 +103,4 @@ module.exports = (options) => {
|
|
|
117
103
|
}
|
|
118
104
|
|
|
119
105
|
export default FormPage;
|
|
120
|
-
`
|
|
121
|
-
).trim();
|
|
122
|
-
|
|
123
|
-
};
|
|
106
|
+
`).trim()};
|