@aj-shadow/z-abs-complayer-codeeditor-server 0.0.0-aj-beta.221

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 (35) hide show
  1. package/.gitattributes +26 -0
  2. package/LICENSE.txt +96 -0
  3. package/README.md +5 -0
  4. package/npm-shrinkwrap.json +13 -0
  5. package/package.json +10 -0
  6. package/project/server/_build/Server-CompLayer-Codeeditor-server.bld +12 -0
  7. package/project/server/_build/z-abs-complayer-codeeditor-server.prj +12 -0
  8. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFileDelete.js +40 -0
  9. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFileGet.js +21 -0
  10. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFileNew.js +112 -0
  11. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFileRename.js +29 -0
  12. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFileUpdate.js +20 -0
  13. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFolderDelete.js +21 -0
  14. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFolderGet.js +21 -0
  15. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFolderNew.js +21 -0
  16. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorFolderUpdate.js +21 -0
  17. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorProjectToggle.js +18 -0
  18. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorProjectUpdate.js +24 -0
  19. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorWorkspaceGet.js +184 -0
  20. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorWorkspaceNew.js +468 -0
  21. package/project/server/plugin-data/code-editor/plugin_data_CodeEditorWorkspaceSearch.js +204 -0
  22. package/project/server/plugin-data/code-editor/templates-workspace/template-bat.js +20 -0
  23. package/project/server/plugin-data/code-editor/templates-workspace/template-gitattributes.js +44 -0
  24. package/project/server/plugin-data/code-editor/templates-workspace/template-gitignore.js +28 -0
  25. package/project/server/plugin-data/code-editor/templates-workspace/template-help-text.js +55 -0
  26. package/project/server/plugin-data/code-editor/templates-workspace/template-html.js +46 -0
  27. package/project/server/plugin-data/code-editor/templates-workspace/template-main-jsx.js +74 -0
  28. package/project/server/plugin-data/code-editor/templates-workspace/template-main.js +29 -0
  29. package/project/server/plugin-data/code-editor/templates-workspace/template-package-json.js +90 -0
  30. package/project/server/plugin-data/code-editor/templates-workspace/template-postinstall.js +108 -0
  31. package/project/server/plugin-data/code-editor/templates-workspace/template-readme.js +19 -0
  32. package/project/server/plugin-data/code-editor/templates-workspace/template-settings.js +71 -0
  33. package/project/server/plugin-data/code-editor/templates-workspace/template-site-jsx.js +44 -0
  34. package/project/server/plugin-data/code-editor/templates-workspace/template-tree.js +43 -0
  35. package/project/z-abs-complayer-codeeditor-server.tree +35 -0
@@ -0,0 +1,184 @@
1
+
2
+ 'use strict';
3
+
4
+ const Project = require('z-abs-corelayer-cs/clientServer/project');
5
+ const ActorPathGenerated = require('z-abs-corelayer-server/server/path/actor-path-generated');
6
+ const ActorPathProject = require('z-abs-corelayer-server/server/path/actor-path-project');
7
+ const PluginBaseMulti = require('z-abs-corelayer-server/server/plugin-base-multi');
8
+ const Fs = require('fs');
9
+ const Os = require('os');
10
+
11
+
12
+ class CodeEditorWorkspaceGet extends PluginBaseMulti {
13
+ constructor() {
14
+ super(PluginBaseMulti.GET);
15
+ this.hasOrganization = !!Reflect.get(global, 'release-data@actorjs_global')?.organization;
16
+ }
17
+
18
+ onRequest(appName, workspaceName) {
19
+ if(appName) {
20
+ this._handleWorkspace(appName, workspaceName ? workspaceName : appName);
21
+ }
22
+ else {
23
+ this.asynchReadFile(ActorPathGenerated.getWorkspaceRecentFiles(), (err, data) => {
24
+ if(err) {
25
+ return this.expectAsynchResponseError(`Could not get recent project files '${ActorPathGenerated.getWorkspaceRecentFiles()}'.`);
26
+ }
27
+ else {
28
+ const lastWorkspace = data.recentWorkspaces[0];
29
+ this._handleWorkspace(lastWorkspace.appName, lastWorkspace.workspaceName);
30
+ }
31
+ });
32
+ }
33
+ }
34
+
35
+ _handleWorkspace(appName, workspaceName) {
36
+ const workspaceFile = ActorPathProject.getWorkspaceFile(appName, workspaceName);
37
+ this.asynchReadFile(workspaceFile, (err, workspace) => {
38
+ if(err) {
39
+ ddb.error(err);
40
+ }
41
+ else {
42
+ let projectPendings = {p:0};
43
+ let projects = [];
44
+ let projectSource = null;
45
+ let pendings = 2;
46
+ this._readAppProject(appName, null, (err, _projectSource) => {
47
+ projectSource = _projectSource;
48
+ if(0 === --pendings) {
49
+ this.expectAsynchResponseSuccess(projectSource);
50
+ this.expectAsynchResponseSuccess(projects);
51
+ this.expectAsynchResponseSuccess(Os.EOL);
52
+ }
53
+ });
54
+ workspace.projects.forEach((project) => {
55
+ this._readProject(project, projects, projectPendings, () => {
56
+ if(0 === --pendings) {
57
+ this.expectAsynchResponseSuccess(projectSource);
58
+ this.expectAsynchResponseSuccess(projects);
59
+ this.expectAsynchResponseSuccess(Os.EOL);
60
+ }
61
+ });
62
+ });
63
+ }
64
+ });
65
+ }
66
+
67
+ _readAppProject(name, type, cb) {
68
+ let pendings = 2;
69
+ let pureProject = null;
70
+ let jsonProject = null;
71
+ const codeProjectPureFileName = ActorPathProject.getCodeProjectPureFile(name, type, false);
72
+ this.asynchReadTextFile(codeProjectPureFileName, (err, pureP) => {
73
+ if(err) {
74
+ ddb.error(`Could not read '${codeProjectPureFileName}'`, err);
75
+ }
76
+ else {
77
+ pureProject = pureP;
78
+ }
79
+ if(0 === --pendings) {
80
+ this._handleAppProject(pureProject, jsonProject, name, type, cb);
81
+ }
82
+ });
83
+ this.asynchReadFile(ActorPathGenerated.getProjectFile(name, type), (err, jsonP) => {
84
+ if(!err) {
85
+ jsonProject = jsonP;
86
+ }
87
+ if(0 === --pendings) {
88
+ this._handleAppProject(pureProject, jsonProject, name, type, cb);
89
+ }
90
+ });
91
+ }
92
+
93
+ _handleAppProject(pureProject, jsonProject, name, type, cb) {
94
+ const project = new Project();
95
+ project.importPure(pureProject, jsonProject);
96
+ this.asynchWriteFile(ActorPathGenerated.getProjectFile(name, type), project.source, (err, data) => {
97
+ cb(err, data);
98
+ });
99
+ }
100
+
101
+ _readProject(project, projects, projectPendings, cb) {
102
+ ++projectPendings.p;
103
+ let pendings = 2;
104
+ let pureProject = null;
105
+ let jsonProject = null;
106
+ const isExternalPlugin = this.hasOrganization && !!project.plugin;
107
+ const codeProjectPureFileName = ActorPathProject.getCodeProjectPureFile(project.name, project.type, isExternalPlugin);
108
+ const codeProjectFileName = ActorPathGenerated.getProjectFile(project.name, project.type);
109
+ this.asynchReadTextFile(codeProjectPureFileName, (err, pureP) => {
110
+ if(err) {
111
+ ddb.error(`Could not read '${codeProjectPureFileName}'`, err);
112
+ if(0 === --pendings) {
113
+ if(0 === --projectPendings.p) {
114
+ cb();
115
+ }
116
+ }
117
+ }
118
+ else {
119
+ pureProject = pureP;
120
+ if(0 === --pendings) {
121
+ this._handleProject(pureProject, jsonProject, codeProjectFileName, project.type, isExternalPlugin, (err, data) => {
122
+ projects.push(data);
123
+ if(0 === --projectPendings.p) {
124
+ cb();
125
+ }
126
+ });
127
+ }
128
+ }
129
+ });
130
+
131
+ this.asynchReadFile(codeProjectFileName, (err, jsonP) => {
132
+ if(err) {
133
+ ddb.error(`Could not read '${codeProjectFileName}'`, err);
134
+ if(0 === --pendings) {
135
+ if(0 === --projectPendings.p) {
136
+ cb();
137
+ }
138
+ }
139
+ }
140
+ else {
141
+ jsonProject = jsonP;
142
+ if(0 === --pendings) {
143
+ this._handleProject(pureProject, jsonProject, codeProjectFileName, project.type, isExternalPlugin, (err, data) => {
144
+ projects.push(data);
145
+ if(0 === --projectPendings.p) {
146
+ cb();
147
+ }
148
+ });
149
+ }
150
+ }
151
+ });
152
+ }
153
+
154
+ _handleProject(pureProject, jsonProject, codeProjectFileName, type, isExternalPlugin, cb) {
155
+ const project = new Project([], type);
156
+ project.importPure(pureProject, jsonProject);
157
+ if(1 <= project.source.length) {
158
+ this.asynchWriteFile(codeProjectFileName, project.source, (err, jsonP) => {
159
+ if(!err) {
160
+ cb(null, {
161
+ type: type,
162
+ plugin: isExternalPlugin,
163
+ source: jsonP
164
+ });
165
+ }
166
+ else {
167
+ cb(err, null);
168
+ ddb.error(`Could not write '${codeProjectFileName}'`, err);
169
+ this.expectAsynchResponseError(`Could not write file '${codeProjectFileName}'.`);
170
+ }
171
+ });
172
+ }
173
+ else {
174
+ cb(null, {
175
+ type: type,
176
+ plugin: isExternalPlugin,
177
+ source: [{title: name}]
178
+ });
179
+ }
180
+ }
181
+ }
182
+
183
+
184
+ module.exports = CodeEditorWorkspaceGet;
@@ -0,0 +1,468 @@
1
+
2
+ 'use strict';
3
+
4
+ const TemplateBat = require('./templates-workspace/template-bat');
5
+ const TemplateGitattributes = require('./templates-workspace/template-gitattributes');
6
+ const TemplateGitignore = require('./templates-workspace/template-gitignore');
7
+ const TemplateHelpText = require('./templates-workspace/template-help-text');
8
+ const TemplateHtml = require('./templates-workspace/template-html');
9
+ const TemplateMain = require('./templates-workspace/template-main');
10
+ const TemplateMainJsx = require('./templates-workspace/template-main-jsx');
11
+ const TemplatePackageJson = require('./templates-workspace/template-package-json');
12
+ const TemplatePostinstall = require('./templates-workspace/template-postinstall');
13
+ const TemplateReadme = require('./templates-workspace/template-readme');
14
+ const TemplateSiteJsx = require('./templates-workspace/template-site-jsx');
15
+ const TemplateSettings = require('./templates-workspace/template-settings');
16
+ const TemplateTree = require('./templates-workspace/template-tree');
17
+ const ActorPath = require('z-abs-corelayer-server/server/path/actor-path');
18
+ const PluginBaseMulti = require('z-abs-corelayer-server/server/plugin-base-multi');
19
+ const Path = require ('path');
20
+
21
+
22
+ class CodeEditorWorkspaceNew extends PluginBaseMulti {
23
+ constructor() {
24
+ super(PluginBaseMulti.GET);
25
+ this.appName = '';
26
+ this.lowercaseAppName = '';
27
+ this.noDashAppName = '';
28
+ this.lowecaseNoDashAppName = '';
29
+ }
30
+
31
+ onRequest(appName, appType) {
32
+ const workspace = {
33
+ settings: {},
34
+ projects: []
35
+ };
36
+ this.appName = appName;
37
+ this.lowercaseAppName = appName.toLowerCase();
38
+ this.noDashAppName = appName.split('-').join('');
39
+ this.lowecaseNoDashAppName = this.noDashAppName.toLowerCase();
40
+ const shortName = appName.replace(/[^A-Z]+/g, "").toLowerCase();
41
+ this.isApp = this.lowercaseAppName.startsWith('actor');
42
+ const appPath = Path.normalize(`${ActorPath.getActorPath()}..${Path.sep}${this.lowercaseAppName}`);
43
+ const folder = `${ActorPath.getActorParentPath()}${Path.sep}${this.lowercaseAppName}${Path.sep}workspace`;
44
+ this.asynchMkdir(folder, (err) => {
45
+ const type = 0 === appType ? "clientServer" : "server";
46
+ if(err) {
47
+ this.expectAsynchResponseError(`Could not create floder: '${folder}'`);
48
+ }
49
+ else {
50
+ const newWorkspace = {
51
+ name: appName,
52
+ type: type,
53
+ silent: false,
54
+ projects: [],
55
+ builds: [],
56
+ tasks: []
57
+ };
58
+ const builds = [];
59
+ const tasks = [];
60
+ this._createWorkspace(newWorkspace, tasks, builds, type);
61
+
62
+ let pendings = {p:0};
63
+ this._createAllDirectories(appPath, type, (err) => {
64
+ this._createTaskFiles(tasks, folder, pendings, (err) => {
65
+ if(err) {console.log(err);}
66
+ if(0 === --pendings.p) {
67
+ this.expectAsynchResponseSuccess('OK');
68
+ }
69
+ });
70
+ this._createBuildFiles(builds, folder, pendings, (err) => {
71
+ if(err) {console.log(err);}
72
+ if(0 === --pendings.p) {
73
+ this.expectAsynchResponseSuccess('OK');
74
+ }
75
+ });
76
+ this._createWorkspaceFile(newWorkspace, folder, pendings, (err) => {
77
+ if(err) {console.log(err);}
78
+ if(0 === --pendings.p) {
79
+ this.expectAsynchResponseSuccess('OK');
80
+ }
81
+ });
82
+ this._createTextFile(TemplateHelpText.create(this.lowercaseAppName, this.noDashAppName), `${folder}${Path.sep}simple-help.txt`, pendings, (err) => {
83
+ if(err) {console.log(err);}
84
+ if(0 === --pendings.p) {
85
+ this.expectAsynchResponseSuccess('OK');
86
+ }
87
+ });
88
+ this._createTextFile(TemplateGitattributes.create(), `${appPath}${Path.sep}.gitattributes`, pendings, (err) => {
89
+ if(err) {console.log(err);}
90
+ if(0 === --pendings.p) {
91
+ this.expectAsynchResponseSuccess('OK');
92
+ }
93
+ });
94
+ this._createTextFile(TemplateGitignore.create(), `${appPath}${Path.sep}.gitignore`, pendings, (err) => {
95
+ if(err) {console.log(err);}
96
+ if(0 === --pendings.p) {
97
+ this.expectAsynchResponseSuccess('OK');
98
+ }
99
+ });
100
+ this._createTextFile('', `${appPath}${Path.sep}CHANGELOG.md`, pendings, (err) => {
101
+ if(err) {console.log(err);}
102
+ if(0 === --pendings.p) {
103
+ this.expectAsynchResponseSuccess('OK');
104
+ }
105
+ });
106
+ this._createTextFile(TemplateReadme.create(), `${appPath}${Path.sep}README.md`, pendings, (err) => {
107
+ if(err) {console.log(err);}
108
+ if(0 === --pendings.p) {
109
+ this.expectAsynchResponseSuccess('OK');
110
+ }
111
+ });
112
+ this._createTextFile(TemplatePostinstall.create(), `${appPath}${Path.sep}npm-post-install.js`, pendings, (err) => {
113
+ if(err) {console.log(err);}
114
+ if(0 === --pendings.p) {
115
+ this.expectAsynchResponseSuccess('OK');
116
+ }
117
+ });
118
+ this._createTextFile(TemplateTree.create(), `${appPath}${Path.sep}project${Path.sep}${this.lowercaseAppName}-project.tree`, pendings, (err) => {
119
+ if(err) {console.log(err);}
120
+ if(0 === --pendings.p) {
121
+ this.expectAsynchResponseSuccess('OK');
122
+ }
123
+ });
124
+ this._createTextFile(TemplateMain.create(this.lowercaseAppName), `${appPath}${Path.sep}main.js`, pendings, (err) => {
125
+ if(err) {console.log(err);}
126
+ if(0 === --pendings.p) {
127
+ this.expectAsynchResponseSuccess('OK');
128
+ }
129
+ });
130
+ this._createTextFile(TemplateBat.create(), `${appPath}${Path.sep}${shortName}.bat`, pendings, (err) => {
131
+ if(err) {console.log(err);}
132
+ if(0 === --pendings.p) {
133
+ this.expectAsynchResponseSuccess('OK');
134
+ }
135
+ });
136
+ this._createTextFile(TemplateSettings.create(this.lowercaseAppName), `${appPath}${Path.sep}settings.json`, pendings, (err) => {
137
+ if(err) {console.log(err);}
138
+ if(0 === --pendings.p) {
139
+ this.expectAsynchResponseSuccess('OK');
140
+ }
141
+ });
142
+ if('clientServer' === type) {
143
+ this._createTextFile(TemplateMainJsx.create(this.appName, this.lowercaseAppName), `${appPath}${Path.sep}project${Path.sep}client${Path.sep}main.jsx`, pendings, (err) => {
144
+ if(err) {console.log(err);}
145
+ if(0 === --pendings.p) {
146
+ this.expectAsynchResponseSuccess('OK');
147
+ }
148
+ });
149
+ this._createTextFile(TemplateSiteJsx.create(), `${appPath}${Path.sep}project${Path.sep}client${Path.sep}components${Path.sep}site.jsx`, pendings, (err) => {
150
+ if(err) {console.log(err);}
151
+ if(0 === --pendings.p) {
152
+ this.expectAsynchResponseSuccess('OK');
153
+ }
154
+ });
155
+ this._createTextFile(TemplateHtml.create(this.lowercaseAppName, ''), `${appPath}${Path.sep}project${Path.sep}client${Path.sep}html${Path.sep}index.html`, pendings, (err) => {
156
+ if(err) {console.log(err);}
157
+ if(0 === --pendings.p) {
158
+ this.expectAsynchResponseSuccess('OK');
159
+ }
160
+ });
161
+ }
162
+ this._createFile(TemplatePackageJson.create(this.isApp, this.appName, this.lowercaseAppName), `${appPath}${Path.sep}package.json`, pendings, (err) => {
163
+ if(err) {console.log(err);}
164
+ if(0 === --pendings.p) {
165
+ this.expectAsynchResponseSuccess('OK');
166
+ }
167
+ });
168
+ });
169
+ }
170
+ }, true);
171
+ }
172
+
173
+ _createWorkspace(newWorkspace, tasks, builds, type) {
174
+ newWorkspace.projects.push(this._createProject("z-build-build", "server"));
175
+ newWorkspace.projects.push(this._createProject("z-build-project", "server"));
176
+ newWorkspace.projects.push(this._createProject("z-build-require", "server"));
177
+ newWorkspace.projects.push(this._createProject("z-abs-corelayer-server", "server"));
178
+
179
+ newWorkspace.projects.push(this._createProject("z-abs-corelayer-cs", "clientServer"));
180
+
181
+ this._createBuildServer(newWorkspace.builds, builds, "Server:AppLayer/cs", "Server-AppLayer-cs", "build-server-js", null, ".");
182
+ this._createBuildServer(newWorkspace.builds, builds, "Server:AppLayer/server", "Server-AppLayer-server", "build-server-js", null, ".");
183
+
184
+ if('clientServer' === type) {
185
+ newWorkspace.projects.push(this._createProject("z-abs-3pplayer-d3-client", "client"));
186
+ newWorkspace.projects.push(this._createProject("z-abs-3pplayer-jquery-client", "client"));
187
+ newWorkspace.projects.push(this._createProject("z-abs-3pplayer-nodejs-client", "client"));
188
+ newWorkspace.projects.push(this._createProject("z-abs-3pplayer-react-client", "client"));
189
+ newWorkspace.projects.push(this._createProject("z-abs-3pplayer-reactdom-client", "client"));
190
+ newWorkspace.projects.push(this._createProject("z-abs-corelayer-client", "client"));
191
+ newWorkspace.projects.push(this._createProject("z-abs-complayer-router-client", "client"));
192
+ newWorkspace.projects.push(this._createProject("z-abs-complayer-bootstrap-client", "client"));
193
+
194
+ this._createBuildClient(newWorkspace.builds, builds, "Client:AppLayer/cs", "Client-AppLayer-cs", "build-client-js", null, ".", "cs");
195
+ this._createBuildClient(newWorkspace.builds, builds, "Client:AppLayer/client", "Client-AppLayer-client", "build-client-js", null, ".", "client");
196
+ this._createBuildClient(newWorkspace.builds, builds, "Client:AppLayer/client-jsx", "Client-AppLayer-client-jsx", "build-client-jsx", null, ".", "client");
197
+
198
+ this._createBundleClient(newWorkspace.builds, builds, "Bundle:AppLayer/cs", "Bundle-AppLayer-cs", "build-client-bundle", null, ".", "cs",
199
+ ["react", "react-dom", "jquery", "bootstrap", "os"],
200
+ ["./build/z-abs-corelayer-cs/**/*.js", "./build/z-abs-3pplayer-nodejs-client/**/*.js", "./build/z-abs-3pplayer-jquery-client/**/*.js", "./build/z-abs-3pplayer-react-client/**/*.js", "./build/z-abs-3pplayer-reactdom-client/**/*.js", "./build/z-abs-3pplayer-d3-client/**/*.js"],
201
+ null,
202
+ true,
203
+ ["Client:AppLayer/cs", "Client:CoreLayer/cs", "Client:3ppLayer/Nodejs-client", "Client:3ppLayer/jQuery-client", "Client:3ppLayer/React-client", "Client:3ppLayer/Reactdom-client", "Client:3ppLayer/D3-client"]
204
+ );
205
+ this._createBundleClient(newWorkspace.builds, builds, "Bundle:AppLayer/client", "Bundle-AppLayer-client", "build-client-bundle", null, ".", "client",
206
+ ["react", "react-dom", "jquery", "bootstrap", "os"],
207
+ ["./build/AppLayer/cs/**/*.js", "./build/z-abs-complayer-router-client/**/*.js", "./build/z-abs-complayer-bootstrap-client/**/*.js", "./build/z-abs-corelayer-client/**/*.js", "./build/z-abs-corelayer-cs/**/*.js", "./build/z-abs-3pplayer-nodejs-client/**/*.js", "./build/z-abs-3pplayer-jquery-client/**/*.js", "./build/z-abs-3pplayer-react-client/**/*.js", "./build/z-abs-3pplayer-reactdom-client/**/*.js", "./build/z-abs-3pplayer-d3-client/**/*.js"],
208
+ null,
209
+ false,
210
+ ["Client:AppLayer/client", "Client:AppLayer/client-jsx", "Client:AppLayer/cs", "Client:CompLayer/Router-client-jsx", "Client:CompLayer/Bootstrap-client-jsx", "Client:CompLayer/Bootstrap-client", "Client:CoreLayer/client", "Client:CoreLayer/client-jsx", "Client:CoreLayer/cs", "Client:3ppLayer/Nodejs-client", "Client:3ppLayer/jQuery-client", "Client:3ppLayer/React-client", "Client:3ppLayer/Reactdom-client", "Client:3ppLayer/D3-client"]
211
+ );
212
+
213
+ this._createBundleCss(newWorkspace.builds, builds, `client-css-${this.lowercaseAppName}-bundle`, `client-css-${this.lowercaseAppName}-bundle`, "build-client-rc-bundle", null, ".", {path: './project/client/css', filters: ['css']}, []);
214
+ this._createBundleResource(newWorkspace.builds, builds, "server-html-rc", "server-html-rc", "build-server-rc", null, ".", "html", {path: './project/client/html', filters: ['html']}, "./dist/html", []);
215
+ this._createBundleResource(newWorkspace.builds, builds, `server-image-${this.lowercaseAppName}-rc`, `server-image-${this.lowercaseAppName}-rc`, "build-server-rc", "actorjs-documentation-bin", "Documentation", `image-${this.lowercaseAppName}`, {path: './images', filters: ['svg', 'ico', 'gif', 'jpg', 'png']}, "./dist/images", []);
216
+ }
217
+
218
+ this._createTaskClean(newWorkspace.tasks, tasks, "clean:build", "clean-build", "task-clean", ["./build", "../Generated/Build"], true);
219
+ this._createTaskClean(newWorkspace.tasks, tasks, "clean:dist", "clean-dist", "task-clean", ["./dist"], true);
220
+ this._createTaskClean(newWorkspace.tasks, tasks, "clean:temp", "clean-temp", "task-clean", ["./temp"], true);
221
+ this._createTaskClean(newWorkspace.tasks, tasks, "clean:generated", "clean-generated", "task-clean", ["../Generated"], true);
222
+ this._createTaskClean(newWorkspace.tasks, tasks, "clean:node", "clean-node", "task-clean", ["node_modules"], true);
223
+ this._createTaskClean(newWorkspace.tasks, tasks, "clean:compiled", "clean-compiled", "task-clean", ["./build", "./dist", "../Generated/Build"], true);
224
+ this._createTaskClean(newWorkspace.tasks, tasks, "clean:all", "clean-all", "task-clean", ["./build", "./dist", "./temp", "../Generated", "node_modules"], true);
225
+ this._createTasksimple(newWorkspace.tasks, tasks, "simple:help", "simple-help", "task-simple", "\r\n console.log(`${text}`);\r\ncb();\r\n", ["./workspace/simple-help.txt"]);
226
+ this._createTaskList(newWorkspace.tasks, tasks, "list:debug", "list-debug", "task-list", ["task:env-development:solution", `local-server-${this.lowercaseAppName}`]);
227
+ this._createTaskList(newWorkspace.tasks, tasks, "list:release", "list-release", "task-list", ["task:env-production:solution", `local-server-${this.lowercaseAppName}`]);
228
+ this._createTaskList(newWorkspace.tasks, tasks, "list:redebug", "list-redebug", "task-list", ["task:clean:compiled", "task:env-development:solution", `local-server-${this.lowercaseAppName}`]);
229
+ this._createTaskList(newWorkspace.tasks, tasks, "list:rerelease", "list-rerelease", "task-list", ["task:clean:compiled", "task:env-production:solution", `local-server-${this.lowercaseAppName}`]);
230
+ this._createTaskList(newWorkspace.tasks, tasks, "list:start", "list-start", "task-list", [`local-server-${this.lowercaseAppName}`, "task:watch"]);
231
+ this._createTaskList(newWorkspace.tasks, tasks, "default", "list-default", "task-list", ["task:start"]);
232
+ }
233
+
234
+ _createAllDirectories(appPath, type, cb) {
235
+ let pendings = 1;
236
+ if('clientServer' === type) {
237
+ ++pendings;
238
+ this._createDirectories(`${appPath}${Path.sep}project${Path.sep}client${Path.sep}`, ['actions', 'components', 'css', 'html', 'stores'], (err) => {
239
+ if(err) {console.log(err);}
240
+ if(0 === --pendings) {
241
+ cb(err);
242
+ }
243
+ });
244
+ }
245
+ this._createDirectories(`${appPath}${Path.sep}project${Path.sep}server${Path.sep}`, ['plugin-data', 'plugin-service'], (err) => {
246
+ if(err) {console.log(err);}
247
+ if(0 === --pendings) {
248
+ cb(err);
249
+ }
250
+ });
251
+ }
252
+
253
+ _createDirectories(path, directories, cb) {
254
+ let pendings = directories.length;
255
+ directories.forEach((directory) => {
256
+ this.asynchMkdir(`${path}${Path.sep}${directory}`, (err) => {
257
+ if(0 === --pendings) {
258
+ cb();
259
+ }
260
+ }, true);
261
+ });
262
+ }
263
+
264
+ _createTaskFiles(tasks, folder, externalPendings, cb) {
265
+ ++externalPendings.p;
266
+ let pendings = tasks.length;
267
+ tasks.forEach((task) => {
268
+ this.asynchWriteFile(`${folder}${Path.sep}${task.fileName}.tsk`, task.data, (err) => {
269
+ if(0 === --pendings) {
270
+ cb();
271
+ }
272
+ });
273
+ });
274
+ }
275
+
276
+ _createBuildFiles(builds, folder, externalPendings, cb) {
277
+ ++externalPendings.p;
278
+ let pendings = builds.length;
279
+ builds.forEach((build) => {
280
+ this.asynchWriteFile(`${folder}${Path.sep}${build.fileName}.bld`, build.data, (err) => {
281
+ if(0 === --pendings) {
282
+ cb();
283
+ }
284
+ });
285
+ });
286
+ }
287
+
288
+ _createWorkspaceFile(newWorkspace, folder, externalPendings, cb) {
289
+ ++externalPendings.p;
290
+ this.asynchWriteFile(`${folder}${Path.sep}${this.lowercaseAppName}.wrk`, newWorkspace, cb);
291
+ }
292
+
293
+ _createTextFile(data, file, externalPendings, cb) {
294
+ ++externalPendings.p;
295
+ this.asynchWriteTextFile(file, data, cb);
296
+ }
297
+
298
+ _createFile(data, file, externalPendings, cb) {
299
+ ++externalPendings.p;
300
+ this.asynchWriteFile(file, data, cb);
301
+ }
302
+
303
+ _createProject(name, type) {
304
+ return {
305
+ name,
306
+ type,
307
+ new: true
308
+ };
309
+ }
310
+
311
+ _createBuildServer(wrkBuilds, builds, name, fileName, requireName, repo, repoPath) {
312
+ wrkBuilds.push({
313
+ name,
314
+ fileName,
315
+ requireName,
316
+ repo,
317
+ repoPath
318
+ });
319
+ builds.push({
320
+ fileName,
321
+ data: {
322
+ layer: "App",
323
+ part: "server",
324
+ source: {path: './project/server', filters: ['js']},
325
+ dest: "./dist/Layers/AppLayer/server",
326
+ replaceCondition: "(LOG_ENGINE|LOG_ERROR|LOG_DEBUG)\\(.*\\);",
327
+ replaceHandle: "\r\n const logParametersText = match.substring(match.indexOf('(') + 1, match.lastIndexOf(')'));\r\n const logParameters = logParametersText.split(',');\r\n if('LOG_ENGINE' === parameters[0]) {\r\n return `if(Logger.isLogEngine(${logParameters[0].trim()})) {Logger.engine(${logParameters}, __filename);}`;\r\n }\r\n else if('LOG_ERROR' === parameters[0]) {\r\n return `if(Logger.isLogError(${logParameters[0].trim()})) {Logger.error(${logParameters}, __filename);}`;\r\n }\r\n else if('LOG_DEBUG' === parameters[0]) {\r\n return `if(Logger.isLogDebug(${logParameters[0].trim()})) {Logger.debug(${logParameters}, __filename);}`;\r\n }\r\n",
328
+ dependencyNames: []
329
+ }
330
+ });
331
+ }
332
+
333
+ _createBuildClient(wrkBuilds, builds, name, fileName, requireName, repo, repoPath, part) {
334
+ wrkBuilds.push({
335
+ name,
336
+ fileName,
337
+ requireName,
338
+ repo,
339
+ repoPath
340
+ });
341
+ const extention = 'build-client-jsx' === requireName ? 'jsx' : 'js'
342
+ const source = "client" === part ? {path: './project/client', filters: [extention]} : {path: './project/clientServer', filters: [extention]}
343
+ const dest = "client" === part ? "./build/AppLayer/client" :"./build/AppLayer/clientServer";
344
+ builds.push({
345
+ fileName,
346
+ data: {
347
+ layer: "App",
348
+ part: part,
349
+ source: source,
350
+ dest,
351
+ dependencyNames: []
352
+ }
353
+ });
354
+ }
355
+
356
+ _createBundleClient(wrkBuilds, builds, name, fileName, requireName, repo, repoPath, part, externals, externalGlobs, exports, exportSource, dependencyNames) {
357
+ wrkBuilds.push({
358
+ name,
359
+ fileName,
360
+ requireName,
361
+ repo,
362
+ repoPath
363
+ });
364
+ const source = "client" === part ? {path: './build/AppLayer/client', filters: ['js']} : {path: './build/AppLayer/clientServer', filters: ['js']}
365
+ builds.push({
366
+ fileName,
367
+ data: {
368
+ layer: "App",
369
+ part,
370
+ source: source,
371
+ dest: "./dist/scripts",
372
+ _bundle: true,
373
+ ignores: null,
374
+ externals,
375
+ externalGlobs,
376
+ exports,
377
+ exportSource,
378
+ dependencyNames
379
+ }
380
+ });
381
+ }
382
+
383
+ _createBundleCss(wrkBuilds, builds, name, fileName, requireName, repo, repoPath, source, dependencyNames) {
384
+ wrkBuilds.push({
385
+ name,
386
+ fileName,
387
+ requireName,
388
+ repo,
389
+ repoPath
390
+ });
391
+ builds.push({
392
+ fileName,
393
+ data: {
394
+ part: this.lowercaseAppName,
395
+ source: source,
396
+ dest: "./dist/css",
397
+ _bundle: true,
398
+ dependencyNames
399
+ }
400
+ });
401
+ }
402
+
403
+ _createBundleResource(wrkBuilds, builds, name, fileName, requireName, repo, repoPath, part, source, dest, dependencyNames) {
404
+ wrkBuilds.push({
405
+ name,
406
+ fileName,
407
+ requireName,
408
+ repo,
409
+ repoPath
410
+ });
411
+ builds.push({
412
+ fileName,
413
+ data: {
414
+ part,
415
+ source: source,
416
+ dest,
417
+ dependencyNames
418
+ }
419
+ });
420
+ }
421
+
422
+ _createTaskClean(wrkTasks, tasks, name, fileName, requireName, paths, reqursive) {
423
+ wrkTasks.push(this._createTask(name, fileName, requireName));
424
+ tasks.push({
425
+ fileName,
426
+ data: {
427
+ part: name,
428
+ paths,
429
+ reqursive
430
+ }
431
+ });
432
+ }
433
+
434
+ _createTaskList(wrkTasks, tasks, name, fileName, requireName, list) {
435
+ const part = name.substring(5);
436
+ wrkTasks.push(this._createTask(name, fileName, requireName));
437
+ tasks.push({
438
+ fileName,
439
+ data: {
440
+ part,
441
+ list
442
+ }
443
+ });
444
+ }
445
+
446
+ _createTasksimple(wrkTasks, tasks, name, fileName, requireName, handle, parameters) {
447
+ wrkTasks.push(this._createTask(name, fileName, requireName));
448
+ tasks.push({
449
+ fileName,
450
+ data: {
451
+ part: name,
452
+ handle,
453
+ parameters
454
+ }
455
+ });
456
+ }
457
+
458
+ _createTask(name, fileName, requireName) {
459
+ return {
460
+ name,
461
+ fileName,
462
+ requireName
463
+ };
464
+ }
465
+ }
466
+
467
+
468
+ module.exports = CodeEditorWorkspaceNew;