vona-cli-set-api 1.0.58 → 1.0.60
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/cli/templates/create/project/basic/boilerplate/docker-compose/config/nginx/conf.d/nginx.conf +28 -0
- package/cli/templates/create/project/basic/boilerplate/docker-compose/data/mysql/.gitkeep +0 -0
- package/cli/templates/create/project/basic/boilerplate/docker-compose/data/redis/.gitkeep +0 -0
- package/cli/templates/create/project/basic/boilerplate/docker-compose/logs/nginx/.gitkeep +0 -0
- package/cli/templates/create/project/basic/boilerplate/docker-compose/output/app/vona/.gitkeep +0 -0
- package/cli/templates/create/project/basic/boilerplate/docker-compose-dockerfile-app +13 -0
- package/cli/templates/create/project/basic/boilerplate/docker-compose.yml +79 -0
- package/cli/templates/create/project/basic/boilerplate/env/.env.docker.prod +1 -0
- package/cli/templates/create/project/basic/boilerplate/package.original.json +1 -1
- package/cli/templates/tools/crud/snippets/3-en-us.ts +3 -1
- package/cli/templates/tools/crud/snippets/4-zh-cn.ts +3 -1
- package/cli/templates/tools/crud/utils.ts +4 -5
- package/dist/lib/bean/cli.create.project.js +3 -1
- package/package.json +1 -1
package/cli/templates/create/project/basic/boilerplate/docker-compose/config/nginx/conf.d/nginx.conf
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
server {
|
|
2
|
+
|
|
3
|
+
resolver 127.0.0.11 ipv6=off;
|
|
4
|
+
|
|
5
|
+
listen 80;
|
|
6
|
+
server_name localhost;
|
|
7
|
+
|
|
8
|
+
set $node_ip app;
|
|
9
|
+
set $node_port 7102;
|
|
10
|
+
|
|
11
|
+
location / {
|
|
12
|
+
proxy_http_version 1.1;
|
|
13
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
14
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
15
|
+
proxy_set_header X-Forwarded-Host $server_name;
|
|
16
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
17
|
+
proxy_set_header Host $http_host;
|
|
18
|
+
proxy_set_header X-NginX-Proxy true;
|
|
19
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
20
|
+
proxy_set_header Connection "upgrade";
|
|
21
|
+
proxy_pass http://$node_ip:$node_port$request_uri;
|
|
22
|
+
proxy_redirect off;
|
|
23
|
+
proxy_buffer_size 64k;
|
|
24
|
+
proxy_buffers 4 32k;
|
|
25
|
+
proxy_busy_buffers_size 64k;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/cli/templates/create/project/basic/boilerplate/docker-compose/output/app/vona/.gitkeep
ADDED
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
FROM node:24
|
|
2
|
+
|
|
3
|
+
RUN mkdir -p /opt/node/app/dist
|
|
4
|
+
WORKDIR /opt/node/app
|
|
5
|
+
|
|
6
|
+
COPY ./dist/docker /opt/node/app/dist/docker
|
|
7
|
+
COPY ./scripts /opt/node/app/scripts
|
|
8
|
+
|
|
9
|
+
RUN chmod +x /opt/node/app/scripts/*.sh
|
|
10
|
+
|
|
11
|
+
# start
|
|
12
|
+
|
|
13
|
+
CMD node ./dist/docker/bootstrap.js
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
version: '3.7'
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
app:
|
|
5
|
+
depends_on:
|
|
6
|
+
- pg
|
|
7
|
+
- mysql
|
|
8
|
+
- redis
|
|
9
|
+
build:
|
|
10
|
+
context: .
|
|
11
|
+
dockerfile: docker-compose-dockerfile-app
|
|
12
|
+
restart: always
|
|
13
|
+
ports:
|
|
14
|
+
- '7202:7102'
|
|
15
|
+
volumes:
|
|
16
|
+
- ./docker-compose/output/app/vona:/root/vona
|
|
17
|
+
- ./docker-compose/logs/app:/root/logs
|
|
18
|
+
command: [./scripts/wait-for-it.sh, 'pg:5432', 'mysql:3306', 'redis:6379', -s, --, ./scripts/app-init.sh]
|
|
19
|
+
|
|
20
|
+
nginx:
|
|
21
|
+
image: nginx:latest
|
|
22
|
+
depends_on:
|
|
23
|
+
- app
|
|
24
|
+
restart: always
|
|
25
|
+
ports:
|
|
26
|
+
- '80:80'
|
|
27
|
+
volumes:
|
|
28
|
+
- ./docker-compose/output/app/vona:/usr/share/nginx/app/vona
|
|
29
|
+
- ./docker-compose/logs/nginx:/var/log/nginx
|
|
30
|
+
- ./docker-compose/config/nginx/conf.d:/etc/nginx/conf.d
|
|
31
|
+
|
|
32
|
+
pg:
|
|
33
|
+
image: postgres:17
|
|
34
|
+
restart: always
|
|
35
|
+
ports:
|
|
36
|
+
- '35432:5432'
|
|
37
|
+
# set shared memory limit when using docker compose
|
|
38
|
+
shm_size: 128mb
|
|
39
|
+
# or set shared memory limit when deploy via swarm stack
|
|
40
|
+
volumes:
|
|
41
|
+
- ./docker-compose/data/pg:/var/lib/postgresql/data
|
|
42
|
+
environment:
|
|
43
|
+
POSTGRES_DB: <%=argv.name%>
|
|
44
|
+
POSTGRES_USER: <%=argv.DATABASE_CLIENT_PG_USER%>
|
|
45
|
+
POSTGRES_PASSWORD: '<%=argv.DATABASE_CLIENT_PG_PASSWORD%>'
|
|
46
|
+
|
|
47
|
+
mysql:
|
|
48
|
+
image: mysql:8.1
|
|
49
|
+
command:
|
|
50
|
+
- --default-authentication-plugin=mysql_native_password
|
|
51
|
+
- --character-set-server=utf8mb4
|
|
52
|
+
- --collation-server=utf8mb4_general_ci
|
|
53
|
+
- --skip-host-cache
|
|
54
|
+
- --skip-name-resolve
|
|
55
|
+
- --slow_query_log=1
|
|
56
|
+
- --long_query_time=0.5
|
|
57
|
+
- --log-queries-not-using-indexes=1
|
|
58
|
+
- --lower_case_table_names=1
|
|
59
|
+
restart: always
|
|
60
|
+
ports:
|
|
61
|
+
- '33306:3306'
|
|
62
|
+
volumes:
|
|
63
|
+
- ./docker-compose/data/mysql:/var/lib/mysql
|
|
64
|
+
environment:
|
|
65
|
+
MYSQL_ROOT_PASSWORD: '<%=argv.DATABASE_CLIENT_MYSQL_PASSWORD_ROOT%>'
|
|
66
|
+
MYSQL_DATABASE: <%=argv.name%>
|
|
67
|
+
MYSQL_USER: <%=argv.DATABASE_CLIENT_MYSQL_USER%>
|
|
68
|
+
MYSQL_PASSWORD: '<%=argv.DATABASE_CLIENT_MYSQL_PASSWORD%>'
|
|
69
|
+
security_opt:
|
|
70
|
+
- seccomp:unconfined
|
|
71
|
+
|
|
72
|
+
redis:
|
|
73
|
+
image: redis:latest
|
|
74
|
+
command: [redis-server, --appendonly, yes]
|
|
75
|
+
restart: always
|
|
76
|
+
ports:
|
|
77
|
+
- '36379:6379'
|
|
78
|
+
volumes:
|
|
79
|
+
- ./docker-compose/data/redis:/data
|
|
@@ -3,6 +3,8 @@ import { metadataCustomSnippet } from '@cabloy/cli';
|
|
|
3
3
|
import { catchError } from '@cabloy/utils';
|
|
4
4
|
import { locale_transform } from '../utils.ts';
|
|
5
5
|
|
|
6
|
+
const __resources = { Name: 'Name', Description: 'Description' };
|
|
7
|
+
|
|
6
8
|
declare module '@cabloy/cli' {
|
|
7
9
|
interface ICommandArgv {
|
|
8
10
|
module: string;
|
|
@@ -22,6 +24,6 @@ export default metadataCustomSnippet({
|
|
|
22
24
|
return fs.readFileSync(targetFile).toString('utf8');
|
|
23
25
|
},
|
|
24
26
|
async transform({ ast, argv }) {
|
|
25
|
-
return locale_transform({ ast, argv });
|
|
27
|
+
return locale_transform({ ast, argv, resources: __resources });
|
|
26
28
|
},
|
|
27
29
|
});
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { metadataCustomSnippet } from '@cabloy/cli';
|
|
2
2
|
import { locale_transform } from '../utils.ts';
|
|
3
3
|
|
|
4
|
+
const __resources = { Name: '名称', Description: '描述' };
|
|
5
|
+
|
|
4
6
|
export default metadataCustomSnippet({
|
|
5
7
|
file: 'src/config/locale/zh-cn.ts',
|
|
6
8
|
language: 'gogo',
|
|
7
9
|
async transform({ ast, argv }) {
|
|
8
|
-
return locale_transform({ ast, argv });
|
|
10
|
+
return locale_transform({ ast, argv, resources: __resources });
|
|
9
11
|
},
|
|
10
12
|
});
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export async function locale_transform({ ast, argv }) {
|
|
4
|
-
const names = __names.concat(argv.resourceNameCapitalize);
|
|
1
|
+
export async function locale_transform({ ast, argv, resources }) {
|
|
2
|
+
const names = Object.keys(resources).concat(argv.resourceNameCapitalize);
|
|
5
3
|
const nodes = ast.find('export default {$$$0}');
|
|
6
4
|
for (const name of names) {
|
|
7
5
|
const node = nodes.match.$$$0.find(node => {
|
|
8
6
|
return (node as any).key.name === name;
|
|
9
7
|
});
|
|
10
8
|
if (!node) {
|
|
11
|
-
const
|
|
9
|
+
const value = resources[name] ?? argv.resourceNameCapitalize;
|
|
10
|
+
const code = `${name}: '${value}',`;
|
|
12
11
|
ast.replace(
|
|
13
12
|
'export default {$$$0}',
|
|
14
13
|
`export default { $$$0, \n ${code}}`,
|
|
@@ -34,7 +34,7 @@ export class CliCreateProject extends BeanCliBase {
|
|
|
34
34
|
argv.DATABASE_CLIENT_MYSQL_USER = 'web_user';
|
|
35
35
|
argv.DATABASE_CLIENT_MYSQL_PASSWORD = randomize('*', 16, { exclude: '\\\'"$' });
|
|
36
36
|
argv.DATABASE_CLIENT_MYSQL_PASSWORD_ROOT = randomize('*', 16, { exclude: '\\\'"$' });
|
|
37
|
-
argv.DATABASE_CLIENT_PG_USER = '
|
|
37
|
+
argv.DATABASE_CLIENT_PG_USER = 'postgres';
|
|
38
38
|
argv.DATABASE_CLIENT_PG_PASSWORD = randomize('*', 16, { exclude: '\\\'"$' });
|
|
39
39
|
argv.DATABASE_CLIENT_PG_PASSWORD_ROOT = randomize('*', 16, { exclude: '\\\'"$' });
|
|
40
40
|
// template
|
|
@@ -46,6 +46,8 @@ export class CliCreateProject extends BeanCliBase {
|
|
|
46
46
|
snippetsPath: null,
|
|
47
47
|
boilerplatePath: `create/project/${template}/boilerplate`,
|
|
48
48
|
});
|
|
49
|
+
// create docker-compose/data/pg
|
|
50
|
+
fse.ensureDirSync(path.join(targetDir, 'docker-compose/data/pg'));
|
|
49
51
|
// copy package.json
|
|
50
52
|
fse.copyFileSync(path.join(targetDir, 'package.original.json'), path.join(targetDir, 'package.json'));
|
|
51
53
|
// npm run init
|