owl-cli 6.159.0 → 6.161.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 (62) hide show
  1. package/.eslintrc.json +2 -2
  2. package/.vscode/launch.json +22 -22
  3. package/.vscode/settings.json +2 -2
  4. package/bin/createTables.js +94 -94
  5. package/bin/deploy.js +66 -66
  6. package/bin/dsl.js +223 -223
  7. package/bin/genEvents.js +188 -188
  8. package/bin/owl-init.js +50 -50
  9. package/bin/owl.js +322 -322
  10. package/bin/owlconfig.json +16 -16
  11. package/bin/table_mysql.js +189 -189
  12. package/bin/undeploy.js +56 -56
  13. package/defaultTemplate/api/build.xml +94 -94
  14. package/defaultTemplate/api/src/about.html +12 -12
  15. package/defaultTemplate/api/src/about.jsx +11 -11
  16. package/defaultTemplate/api/src/handlers/aggs.jsx +161 -161
  17. package/defaultTemplate/api/src/handlers/batchImport.jsx +78 -78
  18. package/defaultTemplate/api/src/handlers/delete.jsx +88 -88
  19. package/defaultTemplate/api/src/handlers/export.jsx +117 -117
  20. package/defaultTemplate/api/src/handlers/exportDoc.jsx +27 -27
  21. package/defaultTemplate/api/src/handlers/exportEx.jsx +77 -77
  22. package/defaultTemplate/api/src/handlers/exportWithTemplates.jsx +50 -50
  23. package/defaultTemplate/api/src/handlers/exportZip.jsx +26 -26
  24. package/defaultTemplate/api/src/handlers/get.jsx +50 -50
  25. package/defaultTemplate/api/src/handlers/getByIds.jsx +51 -51
  26. package/defaultTemplate/api/src/handlers/getChildren.jsx +96 -96
  27. package/defaultTemplate/api/src/handlers/getExportTaskInfo.jsx +34 -34
  28. package/defaultTemplate/api/src/handlers/getHistory.jsx +50 -0
  29. package/defaultTemplate/api/src/handlers/getSpec.jsx +40 -40
  30. package/defaultTemplate/api/src/handlers/include/checklogin.jsx +787 -787
  31. package/defaultTemplate/api/src/handlers/include/diff.jsx +315 -315
  32. package/defaultTemplate/api/src/handlers/include/util.jsx +60 -60
  33. package/defaultTemplate/api/src/handlers/list.jsx +252 -252
  34. package/defaultTemplate/api/src/handlers/listEx.jsx +142 -142
  35. package/defaultTemplate/api/src/handlers/reIndex.jsx +63 -63
  36. package/defaultTemplate/api/src/handlers/recovery.jsx +53 -53
  37. package/defaultTemplate/api/src/handlers/save.jsx +125 -125
  38. package/defaultTemplate/api/src/handlers/upload.jsx +72 -72
  39. package/defaultTemplate/api/src/init/indexConfigs/changeMapping.json +14 -14
  40. package/defaultTemplate/api/src/init/indexConfigs/createAliase.json +10 -10
  41. package/defaultTemplate/api/src/init/indexConfigs/createIndex.json +104 -104
  42. package/defaultTemplate/api/src/init/indexConfigs/rebuildIndex.sh +27 -27
  43. package/defaultTemplate/api/src/init/indexConfigs/reindex.json +9 -9
  44. package/defaultTemplate/api/src/init/init.jsx +34 -34
  45. package/defaultTemplate/api/src/meta.json +10 -10
  46. package/defaultTemplate/api/src/services/dblayer.jsx +251 -251
  47. package/defaultTemplate/api/src/services/modelService.jsx +1247 -1226
  48. package/defaultTemplate/api/src/services/sqlstring.jsx +240 -240
  49. package/defaultTemplate/api/src/tasks/export.jsx +366 -366
  50. package/defaultTemplate/api/src/tasks/exportDoc.jsx +99 -99
  51. package/defaultTemplate/api/src/tasks/exportExTask.jsx +332 -332
  52. package/defaultTemplate/api/src/tasks/exportWithTemplateTask.jsx +128 -128
  53. package/defaultTemplate/api/src/tasks/exportZip.jsx +49 -49
  54. package/examples/buildProperties/build.properties +2 -2
  55. package/examples/gitignore/gitignore_example.txt +1 -1
  56. package/examples/models/product.json +52 -52
  57. package/examples/models/shop.json +71 -71
  58. package/examples/models/sku.json +254 -254
  59. package/examples/models/user.json +49 -49
  60. package/examples/owlconfig.json +13 -13
  61. package/package.json +33 -33
  62. package/todo.txt +4 -4
@@ -1,17 +1,17 @@
1
- {
2
- "models":"/Users/zhengxiangyang/work/owl/modules/owl_models/owlPlatform_models",
3
- "templates":"/Users/zhengxiangyang/work/owl/modules/owl_templates/defaultTemplate",
4
- "generatedApps":"/Users/zhengxiangyang/work/owl/generatedApps",
5
- "buildType":"release",
6
- "buildProperties":"/Users/zhengxiangyang/work/owl/build.properties",
7
- "libpath":"/Users/zhengxiangyang/work/owl/lib",
8
- "owl_home":"/Users/zhengxiangyang/work/owl",
9
- "project": "owl",
10
- "mysql":{
11
- "host" : "${mysqlhost}",
12
- "user" : "${mysqluser}",
13
- "password" : "${mysqlpass}",
14
- "database" : "${mysqldb}"
15
- }
16
-
1
+ {
2
+ "models":"/Users/zhengxiangyang/work/owl/modules/owl_models/owlPlatform_models",
3
+ "templates":"/Users/zhengxiangyang/work/owl/modules/owl_templates/defaultTemplate",
4
+ "generatedApps":"/Users/zhengxiangyang/work/owl/generatedApps",
5
+ "buildType":"release",
6
+ "buildProperties":"/Users/zhengxiangyang/work/owl/build.properties",
7
+ "libpath":"/Users/zhengxiangyang/work/owl/lib",
8
+ "owl_home":"/Users/zhengxiangyang/work/owl",
9
+ "project": "owl",
10
+ "mysql":{
11
+ "host" : "${mysqlhost}",
12
+ "user" : "${mysqluser}",
13
+ "password" : "${mysqlpass}",
14
+ "database" : "${mysqldb}"
15
+ }
16
+
17
17
  }
@@ -1,190 +1,190 @@
1
- /**
2
- * 生成每个表的creat Table sql
3
- * 作者:郑向阳(zxy@xinshi.net)
4
- * 创建时间:2020-1-29
5
- **/
6
-
7
- function getType(field){
8
- if(field.fieldType=='string'){
9
- return "varchar(" + field.fieldSize + ")";
10
- }
11
- else if(field.fieldType=='number'){
12
- return "numeric(" + field.fieldSize + ")";
13
- }
14
- else if(field.fieldType=='date'){
15
- return "datetime";
16
- }
17
- else {
18
- return "varchar(128)";
19
- }
20
- }
21
-
22
- function getRequired(field){
23
- let required = field.required;
24
- if(required){
25
- required = required.toLowerCase();
26
- if(required=='true' || required=='t'){
27
- return "not null";
28
- }
29
- }
30
- return "";
31
- }
32
-
33
- function getFieldStatement(field,parentKey){
34
- let fieldName = field.origKey;
35
- if(parentKey){
36
- fieldName = parentKey + field.origKey;
37
- }
38
- if(fieldName=='group'){
39
- fieldName = "`group`";
40
- }
41
- let statement = fieldName + " " + getType(field) + " " + getRequired(field);
42
-
43
- let fieldDesc = {
44
- fieldName:fieldName,
45
- fieldType:field.fieldType,
46
- fieldSize:field.fieldSize
47
- }
48
- return [statement,fieldDesc];
49
- }
50
-
51
- function getFieldStatements(formSpec,parentKey){
52
- let fieldStatements = [];
53
- let fieldDescriptions = [];
54
- let fields = formSpec.fields;
55
- for(let i=0; i<fields.length; i++){
56
- let field = fields[i];
57
- if(field._ft=='field' && field.fieldType!='image'){
58
- let st = getFieldStatement(field,parentKey);
59
- if(st){
60
- fieldStatements.push(st[0]);
61
- fieldDescriptions.push(st[1]);
62
- }
63
- }
64
-
65
- else if(field._ft=='subform'){
66
- let newParentKey = field.origKey;
67
- if(parentKey){
68
- newParentKey = parentKey + "__" + newParentKey;
69
- }
70
-
71
- let subStatements = getFieldStatements(field,newParentKey);
72
- if(subStatements){
73
- fieldStatements = fieldStatements.concat(subStatements[0]);
74
- fieldDescriptions = fieldDescriptions.concat(subStatements[1])
75
- }
76
- }
77
- }
78
- return [fieldStatements,fieldDescriptions];
79
- }
80
-
81
- function getUniIndex(tableName,field){
82
- let unique = field.unique;
83
- if(unique){
84
- unique = unique.toLowerCase();
85
- if(unique=='true' || unique=='t'){
86
- /*
87
- create unique index t_order_order_code_uindex on t_order (order_code);
88
- */
89
- let sql = `create unique index ${tableName}_${field.origKey}_uindex on ${tableName} (${field.origKey});`
90
- return sql;
91
- }
92
- }
93
- return null;
94
- }
95
-
96
- function getUniIndexes(tableName,formSpec){
97
- let sqls = [];
98
- let fields = formSpec.fields;
99
- for(let i=0; i<fields.length; i++){
100
- let field = fields[i];
101
- if(field._ft=='field' && field.fieldType!='image'){
102
- let st = getUniIndex(tableName,field);
103
- if(st){
104
- sqls.push(st);
105
- }
106
- }
107
- else if(field._ft=='subform'){
108
- let subsqls = getUniIndexes(tableName,field);
109
- if(subsqls){
110
- sqls = sqls.concat(subsqls);
111
- }
112
- }
113
- }
114
- return sqls;
115
- }
116
-
117
-
118
-
119
- function genSubTables(tableName, formSpec){
120
- let sqls = [];
121
- let tables = [];
122
-
123
- let fields = formSpec.fields;
124
- for(let i=0; i<fields.length; i++){
125
- let field = fields[i];
126
- if(field._ft=='array'){
127
-
128
- let subtableInfos = genTableSql(tableName+"__" + field.origKey,field,true,tableName);
129
- if(subtableInfos){
130
- // tableInfos = tableInfos.concat(subtableInfos);
131
- sqls = sqls.concat(subtableInfos[0]);
132
- tables = tables.concat(subtableInfos[1]);
133
-
134
- }
135
- }
136
- }
137
- return [sqls, tables];
138
- }
139
-
140
-
141
- function genTableSql(tableName, formSpec,isSubTable,parentTableName) {
142
- let fieldInfos = getFieldStatements(formSpec);
143
- let fieldStatements = fieldInfos[0];
144
- let fieldDescriptions = fieldInfos[1];
145
-
146
- if(isSubTable){
147
- fieldStatements.push("id varchar(64) not null");
148
- fieldStatements.push("parentId varchar(64) not null");
149
- fieldStatements.push(`constraint foreign key (parentId) references ${parentTableName} (id) on update cascade on delete cascade`)
150
- }
151
- fieldStatements.push("_v int not null");
152
- // fieldDescriptions.push( {fieldName:"_v",
153
- // fieldType:"number",
154
- // fieldSize:10
155
- // });
156
- fieldStatements.push("deleted bool not null default false");
157
- fieldStatements.push("_lastModified datetime not null default CURRENT_TIMESTAMP");
158
- let str = "create table " + tableName + " ( \n\t" + fieldStatements.join(",\n\t") + "\n);";
159
- let sqls = [str];
160
- let tables = [];
161
-
162
- tables.push({
163
- tableName:tableName,
164
- fieldDescriptions:fieldDescriptions
165
- });
166
-
167
- //开始生成uniqueIndex 和 PK index
168
- let primaryIndex = "create unique index " + tableName + "_id_uindex on " + tableName + " (id);"
169
- sqls.push(primaryIndex);
170
-
171
- let addPrimaryKeyConstraint = `alter table ${tableName} add constraint ${tableName}_pk primary key (id);`;
172
- sqls.push(addPrimaryKeyConstraint);
173
-
174
-
175
- //针对每一个unique字段生成一个unique index
176
- sqls = sqls.concat(getUniIndexes(tableName,formSpec));
177
-
178
- let subTableInfos = genSubTables(tableName,formSpec);
179
- sqls = sqls.concat(subTableInfos[0]);
180
- tables = tables.concat(subTableInfos[1]);
181
-
182
- //生成从表的table sqls
183
- // return sqls.join("\n\n");
184
- return [sqls,tables];
185
- }
186
-
187
-
188
- module.exports = {
189
- genTableSql: genTableSql
1
+ /**
2
+ * 生成每个表的creat Table sql
3
+ * 作者:郑向阳(zxy@xinshi.net)
4
+ * 创建时间:2020-1-29
5
+ **/
6
+
7
+ function getType(field){
8
+ if(field.fieldType=='string'){
9
+ return "varchar(" + field.fieldSize + ")";
10
+ }
11
+ else if(field.fieldType=='number'){
12
+ return "numeric(" + field.fieldSize + ")";
13
+ }
14
+ else if(field.fieldType=='date'){
15
+ return "datetime";
16
+ }
17
+ else {
18
+ return "varchar(128)";
19
+ }
20
+ }
21
+
22
+ function getRequired(field){
23
+ let required = field.required;
24
+ if(required){
25
+ required = required.toLowerCase();
26
+ if(required=='true' || required=='t'){
27
+ return "not null";
28
+ }
29
+ }
30
+ return "";
31
+ }
32
+
33
+ function getFieldStatement(field,parentKey){
34
+ let fieldName = field.origKey;
35
+ if(parentKey){
36
+ fieldName = parentKey + field.origKey;
37
+ }
38
+ if(fieldName=='group'){
39
+ fieldName = "`group`";
40
+ }
41
+ let statement = fieldName + " " + getType(field) + " " + getRequired(field);
42
+
43
+ let fieldDesc = {
44
+ fieldName:fieldName,
45
+ fieldType:field.fieldType,
46
+ fieldSize:field.fieldSize
47
+ }
48
+ return [statement,fieldDesc];
49
+ }
50
+
51
+ function getFieldStatements(formSpec,parentKey){
52
+ let fieldStatements = [];
53
+ let fieldDescriptions = [];
54
+ let fields = formSpec.fields;
55
+ for(let i=0; i<fields.length; i++){
56
+ let field = fields[i];
57
+ if(field._ft=='field' && field.fieldType!='image'){
58
+ let st = getFieldStatement(field,parentKey);
59
+ if(st){
60
+ fieldStatements.push(st[0]);
61
+ fieldDescriptions.push(st[1]);
62
+ }
63
+ }
64
+
65
+ else if(field._ft=='subform'){
66
+ let newParentKey = field.origKey;
67
+ if(parentKey){
68
+ newParentKey = parentKey + "__" + newParentKey;
69
+ }
70
+
71
+ let subStatements = getFieldStatements(field,newParentKey);
72
+ if(subStatements){
73
+ fieldStatements = fieldStatements.concat(subStatements[0]);
74
+ fieldDescriptions = fieldDescriptions.concat(subStatements[1])
75
+ }
76
+ }
77
+ }
78
+ return [fieldStatements,fieldDescriptions];
79
+ }
80
+
81
+ function getUniIndex(tableName,field){
82
+ let unique = field.unique;
83
+ if(unique){
84
+ unique = unique.toLowerCase();
85
+ if(unique=='true' || unique=='t'){
86
+ /*
87
+ create unique index t_order_order_code_uindex on t_order (order_code);
88
+ */
89
+ let sql = `create unique index ${tableName}_${field.origKey}_uindex on ${tableName} (${field.origKey});`
90
+ return sql;
91
+ }
92
+ }
93
+ return null;
94
+ }
95
+
96
+ function getUniIndexes(tableName,formSpec){
97
+ let sqls = [];
98
+ let fields = formSpec.fields;
99
+ for(let i=0; i<fields.length; i++){
100
+ let field = fields[i];
101
+ if(field._ft=='field' && field.fieldType!='image'){
102
+ let st = getUniIndex(tableName,field);
103
+ if(st){
104
+ sqls.push(st);
105
+ }
106
+ }
107
+ else if(field._ft=='subform'){
108
+ let subsqls = getUniIndexes(tableName,field);
109
+ if(subsqls){
110
+ sqls = sqls.concat(subsqls);
111
+ }
112
+ }
113
+ }
114
+ return sqls;
115
+ }
116
+
117
+
118
+
119
+ function genSubTables(tableName, formSpec){
120
+ let sqls = [];
121
+ let tables = [];
122
+
123
+ let fields = formSpec.fields;
124
+ for(let i=0; i<fields.length; i++){
125
+ let field = fields[i];
126
+ if(field._ft=='array'){
127
+
128
+ let subtableInfos = genTableSql(tableName+"__" + field.origKey,field,true,tableName);
129
+ if(subtableInfos){
130
+ // tableInfos = tableInfos.concat(subtableInfos);
131
+ sqls = sqls.concat(subtableInfos[0]);
132
+ tables = tables.concat(subtableInfos[1]);
133
+
134
+ }
135
+ }
136
+ }
137
+ return [sqls, tables];
138
+ }
139
+
140
+
141
+ function genTableSql(tableName, formSpec,isSubTable,parentTableName) {
142
+ let fieldInfos = getFieldStatements(formSpec);
143
+ let fieldStatements = fieldInfos[0];
144
+ let fieldDescriptions = fieldInfos[1];
145
+
146
+ if(isSubTable){
147
+ fieldStatements.push("id varchar(64) not null");
148
+ fieldStatements.push("parentId varchar(64) not null");
149
+ fieldStatements.push(`constraint foreign key (parentId) references ${parentTableName} (id) on update cascade on delete cascade`)
150
+ }
151
+ fieldStatements.push("_v int not null");
152
+ // fieldDescriptions.push( {fieldName:"_v",
153
+ // fieldType:"number",
154
+ // fieldSize:10
155
+ // });
156
+ fieldStatements.push("deleted bool not null default false");
157
+ fieldStatements.push("_lastModified datetime not null default CURRENT_TIMESTAMP");
158
+ let str = "create table " + tableName + " ( \n\t" + fieldStatements.join(",\n\t") + "\n);";
159
+ let sqls = [str];
160
+ let tables = [];
161
+
162
+ tables.push({
163
+ tableName:tableName,
164
+ fieldDescriptions:fieldDescriptions
165
+ });
166
+
167
+ //开始生成uniqueIndex 和 PK index
168
+ let primaryIndex = "create unique index " + tableName + "_id_uindex on " + tableName + " (id);"
169
+ sqls.push(primaryIndex);
170
+
171
+ let addPrimaryKeyConstraint = `alter table ${tableName} add constraint ${tableName}_pk primary key (id);`;
172
+ sqls.push(addPrimaryKeyConstraint);
173
+
174
+
175
+ //针对每一个unique字段生成一个unique index
176
+ sqls = sqls.concat(getUniIndexes(tableName,formSpec));
177
+
178
+ let subTableInfos = genSubTables(tableName,formSpec);
179
+ sqls = sqls.concat(subTableInfos[0]);
180
+ tables = tables.concat(subTableInfos[1]);
181
+
182
+ //生成从表的table sqls
183
+ // return sqls.join("\n\n");
184
+ return [sqls,tables];
185
+ }
186
+
187
+
188
+ module.exports = {
189
+ genTableSql: genTableSql
190
190
  }
package/bin/undeploy.js CHANGED
@@ -1,56 +1,56 @@
1
- #!/usr/bin/env node
2
-
3
- const {lstatSync, readdirSync} = require('fs')
4
- const fs = require('fs')
5
- const {join, resolve} = require('path')
6
-
7
-
8
- const isDirectory = source => lstatSync(source).isDirectory()
9
- const isFile = source => {
10
- try {
11
- return fs.statSync(source).isFile()
12
- } catch (e) {
13
- return false
14
- }
15
- }
16
-
17
-
18
- function remove(owl){
19
- var appId = "owl_" + owl._t;
20
- }
21
-
22
- function processInputDir(dir, outdir, templatePath, buildType, project) {
23
- readdirSync(resolve(cwd, dir)).map(name => {
24
- if (isDirectory(resolve(dir, name))) {
25
- try {
26
- fs.mkdirSync(resolve(outdir, name))
27
- } catch (e) {
28
- }
29
- processInputDir(resolve(dir, name), resolve(outdir, name), templatePath, buildType,project)
30
- } else if (name.indexOf('.json') > 0) {
31
- processOwlFile(dir, name, outdir, templatePath, buildType, dir,project)
32
- console.log("processed " + name);
33
- }
34
- })
35
- }
36
-
37
- var configFile = resolve(cwd,"owlconfig.json");
38
- if (process.argv.length > 2) {
39
- configFile = resolve(cwd, process.argv[2]);
40
- }
41
-
42
-
43
- var content = fs.readFileSync(configFile, {encoding: 'utf-8'})
44
- var owlconfig = JSON.parse(content)
45
- var inPath = owlconfig.models;
46
- var outPath = owlconfig.generatedApps
47
- var templatePath = owlconfig.templates
48
- var buildType = owlconfig.buildType;
49
- var project = owlconfig.project;
50
- buildProperties = owlconfig.buildProperties
51
- libpath = owlconfig.libpath
52
-
53
- var fulloutPath = resolve(cwd,outPath);
54
-
55
- mkdir(fulloutPath);
56
- processInputDir(inPath, fulloutPath, templatePath, buildType,project);
1
+ #!/usr/bin/env node
2
+
3
+ const {lstatSync, readdirSync} = require('fs')
4
+ const fs = require('fs')
5
+ const {join, resolve} = require('path')
6
+
7
+
8
+ const isDirectory = source => lstatSync(source).isDirectory()
9
+ const isFile = source => {
10
+ try {
11
+ return fs.statSync(source).isFile()
12
+ } catch (e) {
13
+ return false
14
+ }
15
+ }
16
+
17
+
18
+ function remove(owl){
19
+ var appId = "owl_" + owl._t;
20
+ }
21
+
22
+ function processInputDir(dir, outdir, templatePath, buildType, project) {
23
+ readdirSync(resolve(cwd, dir)).map(name => {
24
+ if (isDirectory(resolve(dir, name))) {
25
+ try {
26
+ fs.mkdirSync(resolve(outdir, name))
27
+ } catch (e) {
28
+ }
29
+ processInputDir(resolve(dir, name), resolve(outdir, name), templatePath, buildType,project)
30
+ } else if (name.indexOf('.json') > 0) {
31
+ processOwlFile(dir, name, outdir, templatePath, buildType, dir,project)
32
+ console.log("processed " + name);
33
+ }
34
+ })
35
+ }
36
+
37
+ var configFile = resolve(cwd,"owlconfig.json");
38
+ if (process.argv.length > 2) {
39
+ configFile = resolve(cwd, process.argv[2]);
40
+ }
41
+
42
+
43
+ var content = fs.readFileSync(configFile, {encoding: 'utf-8'})
44
+ var owlconfig = JSON.parse(content)
45
+ var inPath = owlconfig.models;
46
+ var outPath = owlconfig.generatedApps
47
+ var templatePath = owlconfig.templates
48
+ var buildType = owlconfig.buildType;
49
+ var project = owlconfig.project;
50
+ buildProperties = owlconfig.buildProperties
51
+ libpath = owlconfig.libpath
52
+
53
+ var fulloutPath = resolve(cwd,outPath);
54
+
55
+ mkdir(fulloutPath);
56
+ processInputDir(inPath, fulloutPath, templatePath, buildType,project);