@eclipse-che/che-devworkspace-generator 0.0.1-25f630b → 0.0.1-4e80d1b

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 ADDED
@@ -0,0 +1,28 @@
1
+ ## DevWorkspace Generator
2
+ The library is used by Devfile registry component to generate the DevWorkspace components and DevWorkspace templates.
3
+
4
+ ## How to use the library
5
+ The library could be used as a standalone library.
6
+
7
+ ```
8
+ USAGE
9
+ $ node lib/entrypoint.js [OPTIONS]
10
+
11
+ OPTIONS
12
+ --devfile-path path to the devfile.yaml file
13
+ --devfile-url URL to the git repository that contains devfile.yaml
14
+ --plugin-registry-url URL to the plugin registry that contains an editor's definition
15
+ --editor-entry editor's ID
16
+ --editor-path: path to the editor's devfile.yaml file
17
+ --output-file path to the file where the generated content will be stored
18
+ --project. describes project entry
19
+
20
+ EXAMPLE
21
+
22
+ $ node lib/entrypoint.js --devfile-url:https://github.com/che-samples/java-spring-petclinic/tree/main --editor-entry:che-incubator/che-code/insiders --plugin-registry-url:https://che-plugin-registry-main.surge.sh/v3/ --output-file:/tmp/all-in-one.yaml`
23
+ ```
24
+
25
+ The file `/tmp/all-in-one.yaml` contains a DevWorkspace based on the repository devfile and a Che-Code DevWorkspaceTemplate.
26
+ If DevWorkspace engine is available on the cluster, the following command will create a DevWorkspace:
27
+
28
+ `$ kubectl apply -f /tmp/all-in-one.yaml`
package/lib/main.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  ***********************************************************************/
10
+ import * as axios from 'axios';
10
11
  import { DevfileContext } from './api/devfile-context';
11
12
  export declare class Main {
12
13
  /**
@@ -19,13 +20,14 @@ export declare class Main {
19
20
  devfileContent?: string;
20
21
  outputFile?: string;
21
22
  editorPath?: string;
22
- pluginRegistryUrl?: string;
23
+ editorContent?: string;
23
24
  editorEntry?: string;
25
+ pluginRegistryUrl?: string;
24
26
  projects: {
25
27
  name: string;
26
28
  location: string;
27
29
  }[];
28
- }): Promise<DevfileContext>;
30
+ }, axiosInstance: axios.AxiosInstance): Promise<DevfileContext>;
29
31
  replaceIfExistingProjects(devfileContent: string, projects: {
30
32
  name: string;
31
33
  location: string;
package/lib/main.js CHANGED
@@ -81,24 +81,25 @@ var Main = /** @class */ (function () {
81
81
  // no-op
82
82
  }
83
83
  // Generates a devfile context object based on params
84
- Main.prototype.generateDevfileContext = function (params) {
84
+ Main.prototype.generateDevfileContext = function (params, axiosInstance) {
85
85
  return __awaiter(this, void 0, void 0, function () {
86
- var devfilePath, devfileUrl, outputFile, editorPath, pluginRegistryUrl, editorEntry, projects, axiosInstance, inversifyBinbding, container, devfileContent, editorContent, githubResolver, githubUrl, devfileParsed, editorDevfile, generate;
86
+ var pluginRegistryUrl, inversifyBinbding, container, devfileContent, editorContent, githubResolver, githubUrl, devfileParsed, editorDevfile, generate;
87
87
  return __generator(this, function (_a) {
88
88
  switch (_a.label) {
89
89
  case 0:
90
- devfilePath = params.devfilePath, devfileUrl = params.devfileUrl, outputFile = params.outputFile, editorPath = params.editorPath, pluginRegistryUrl = params.pluginRegistryUrl, editorEntry = params.editorEntry, projects = params.projects;
91
- if (!editorPath && !editorEntry) {
92
- throw new Error('missing editorPath or editorEntry');
90
+ if (!params.editorPath && !params.editorEntry && !params.editorContent) {
91
+ throw new Error('missing editorPath or editorEntry or editorContent');
93
92
  }
94
- if (!devfilePath && !devfileUrl && !params.devfileContent) {
93
+ if (!params.devfilePath && !params.devfileUrl && !params.devfileContent) {
95
94
  throw new Error('missing devfilePath or devfileUrl or devfileContent');
96
95
  }
97
- if (editorEntry && !pluginRegistryUrl) {
96
+ if (params.pluginRegistryUrl) {
97
+ pluginRegistryUrl = params.pluginRegistryUrl;
98
+ }
99
+ else {
98
100
  pluginRegistryUrl = 'https://eclipse-che.github.io/che-plugin-registry/main/v3';
99
101
  console.log("No plug-in registry url. Setting to " + pluginRegistryUrl);
100
102
  }
101
- axiosInstance = axios["default"];
102
103
  inversifyBinbding = new inversify_binding_1.InversifyBinding();
103
104
  return [4 /*yield*/, inversifyBinbding.initBindings({
104
105
  pluginRegistryUrl: pluginRegistryUrl,
@@ -107,9 +108,9 @@ var Main = /** @class */ (function () {
107
108
  case 1:
108
109
  container = _a.sent();
109
110
  container.bind(generate_1.Generate).toSelf().inSingletonScope();
110
- if (!devfileUrl) return [3 /*break*/, 3];
111
+ if (!params.devfileUrl) return [3 /*break*/, 3];
111
112
  githubResolver = container.get(github_resolver_1.GithubResolver);
112
- githubUrl = githubResolver.resolve(devfileUrl);
113
+ githubUrl = githubResolver.resolve(params.devfileUrl);
113
114
  return [4 /*yield*/, container.get(url_fetcher_1.UrlFetcher).fetchText(githubUrl.getContentUrl('devfile.yaml'))];
114
115
  case 2:
115
116
  // user devfile
@@ -132,8 +133,8 @@ var Main = /** @class */ (function () {
132
133
  devfileContent = jsYaml.dump(devfileParsed);
133
134
  return [3 /*break*/, 6];
134
135
  case 3:
135
- if (!devfilePath) return [3 /*break*/, 5];
136
- return [4 /*yield*/, fs.readFile(devfilePath)];
136
+ if (!params.devfilePath) return [3 /*break*/, 5];
137
+ return [4 /*yield*/, fs.readFile(params.devfilePath)];
137
138
  case 4:
138
139
  devfileContent = _a.sent();
139
140
  return [3 /*break*/, 6];
@@ -142,20 +143,24 @@ var Main = /** @class */ (function () {
142
143
  _a.label = 6;
143
144
  case 6:
144
145
  // enhance projects
145
- devfileContent = this.replaceIfExistingProjects(devfileContent, projects);
146
- if (!editorEntry) return [3 /*break*/, 8];
147
- return [4 /*yield*/, container.get(plugin_registry_resolver_1.PluginRegistryResolver).loadDevfilePlugin(editorEntry)];
146
+ devfileContent = this.replaceIfExistingProjects(devfileContent, params.projects);
147
+ if (!params.editorContent) return [3 /*break*/, 7];
148
+ editorContent = params.editorContent;
149
+ return [3 /*break*/, 11];
148
150
  case 7:
151
+ if (!params.editorEntry) return [3 /*break*/, 9];
152
+ return [4 /*yield*/, container.get(plugin_registry_resolver_1.PluginRegistryResolver).loadDevfilePlugin(params.editorEntry)];
153
+ case 8:
149
154
  editorDevfile = _a.sent();
150
155
  editorContent = jsYaml.dump(editorDevfile);
151
- return [3 /*break*/, 10];
152
- case 8: return [4 /*yield*/, fs.readFile(editorPath)];
153
- case 9:
154
- editorContent = _a.sent();
155
- _a.label = 10;
156
+ return [3 /*break*/, 11];
157
+ case 9: return [4 /*yield*/, fs.readFile(params.editorPath)];
156
158
  case 10:
159
+ editorContent = _a.sent();
160
+ _a.label = 11;
161
+ case 11:
157
162
  generate = container.get(generate_1.Generate);
158
- return [2 /*return*/, generate.generate(devfileContent, editorContent, outputFile)];
163
+ return [2 /*return*/, generate.generate(devfileContent, editorContent, params.outputFile)];
159
164
  }
160
165
  });
161
166
  });
@@ -240,7 +245,7 @@ var Main = /** @class */ (function () {
240
245
  pluginRegistryUrl: pluginRegistryUrl,
241
246
  editorEntry: editorEntry,
242
247
  projects: projects
243
- })];
248
+ }, axios["default"])];
244
249
  case 2:
245
250
  _a.sent();
246
251
  return [2 /*return*/, true];
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzE,2CAA+B;AAC/B,2CAA+B;AAC/B,uCAAsC;AACtC,4DAA0D;AAC1D,8CAAkC;AAClC,mEAAiE;AACjE,mDAAiD;AACjD,uFAAoF;AAIpF;IACE;;OAEG;IACH;QACE,QAAQ;IACV,CAAC;IACD,qDAAqD;IACxC,qCAAsB,GAAnC,UACE,MAUC,EACD,aAAkC;;;;;;wBAElC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;4BACtE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;yBACvE;wBACD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;4BACvE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;yBACxE;wBAID,IAAI,MAAM,CAAC,iBAAiB,EAAE;4BAC5B,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;yBAC9C;6BAAM;4BACL,iBAAiB,GAAG,2DAA2D,CAAC;4BAChF,OAAO,CAAC,GAAG,CAAC,yCAAuC,iBAAmB,CAAC,CAAC;yBACzE;wBAEK,iBAAiB,GAAG,IAAI,oCAAgB,EAAE,CAAC;wBAC/B,qBAAM,iBAAiB,CAAC,YAAY,CAAC;gCACrD,iBAAiB,mBAAA;gCACjB,aAAa,eAAA;6BACd,CAAC,EAAA;;wBAHI,SAAS,GAAG,SAGhB;wBACF,SAAS,CAAC,IAAI,CAAC,mBAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;6BAMjD,MAAM,CAAC,UAAU,EAAjB,wBAAiB;wBACb,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC;wBAC/C,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAE3C,qBAAM,SAAS,CAAC,GAAG,CAAC,wBAAU,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,EAAA;;wBADnG,eAAe;wBACf,cAAc,GAAG,SAAkF,CAAC;wBAG9F,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAElD,qCAAqC;wBACrC,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;4BAC5C,8CAA8C;4BAC9C,aAAa,CAAC,QAAQ,GAAG;gCACvB;oCACE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE;oCAC7B,GAAG,EAAE;wCACH,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE;wCAC5C,YAAY,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE;qCACtD;iCACF;6BACF,CAAC;yBACH;wBACD,uBAAuB;wBACvB,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;;6BACnC,MAAM,CAAC,WAAW,EAAlB,wBAAkB;wBACV,qBAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;wBAAtD,cAAc,GAAG,SAAqC,CAAC;;;wBAEvD,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;;;wBAGzC,mBAAmB;wBACnB,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;6BAE7E,MAAM,CAAC,aAAa,EAApB,wBAAoB;wBACtB,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;;;6BAC5B,MAAM,CAAC,WAAW,EAAlB,wBAAkB;wBAEL,qBAAM,SAAS,CAAC,GAAG,CAAC,iDAAsB,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;wBAAjG,aAAa,GAAG,SAAiF;wBACvG,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;4BAE3B,qBAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAA;;wBAApD,aAAa,GAAG,SAAoC,CAAC;;;wBAGjD,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,mBAAQ,CAAC,CAAC;wBACzC,sBAAO,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,EAAC;;;;KAC5E;IAED,iEAAiE;IAC1D,wCAAyB,GAAhC,UAAiC,cAAsB,EAAE,QAA8C;QACrG,4BAA4B;QAC5B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,OAAO,cAAc,CAAC;SACvB;QACD,IAAM,aAAa,GAAqC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEpF,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YAC7C,OAAO,cAAc,CAAC;SACvB;QACD,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,OAAO;YACzD,IAAM,wBAAwB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAvB,CAAuB,CAAC,CAAC;YAC7E,IAAI,wBAAwB,EAAE;gBAC5B,IAAI,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBACtD,yCAAyC;oBACzC,OAAO,OAAO,CAAC,GAAG,CAAC;oBACnB,OAAO,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC;iBAC/D;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,wBAAwB,CAAC,QAAQ,CAAC;iBAChE;aACF;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAEK,oBAAK,GAAX;;;;;;wBAOQ,QAAQ,GAAyC,EAAE,CAAC;wBAEpD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,CAAC,OAAO,CAAC,UAAA,GAAG;4BACd,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;gCACrC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;6BACvD;4BACD,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;gCACpC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;6BACrD;4BACD,IAAI,GAAG,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;gCAC5C,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;6BACpE;4BACD,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;gCACrC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;6BACvD;4BACD,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;gCACpC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;6BACrD;4BACD,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;gCACpC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;6BACrD;4BACD,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gCAChC,IAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gCAClE,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gCACnD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;gCAExE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;6BACnC;wBACH,CAAC,CAAC,CAAC;;;;wBAGD,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE;4BAC/B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;yBACxE;wBACD,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE;4BAC/B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;yBACxE;wBACD,IAAI,CAAC,UAAU,EAAE;4BACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;yBACrD;wBACD,qBAAM,IAAI,CAAC,sBAAsB,CAC/B;gCACE,WAAW,aAAA;gCACX,UAAU,YAAA;gCACV,UAAU,YAAA;gCACV,UAAU,YAAA;gCACV,iBAAiB,mBAAA;gCACjB,WAAW,aAAA;gCACX,QAAQ,UAAA;6BACT,EACD,KAAK,CAAC,SAAO,CAAA,CACd,EAAA;;wBAXD,SAWC,CAAC;wBACF,sBAAO,IAAI,EAAC;;;wBAEZ,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAK,CAAC,KAAK,CAAC,CAAC;wBACtC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAK,CAAC,CAAC;wBACxC,sBAAO,KAAK,EAAC;;;;;KAEhB;IACH,WAAC;AAAD,CAAC,AA9LD,IA8LC;AA9LY,oBAAI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-devworkspace-generator",
3
- "version": "0.0.1-25f630b",
3
+ "version": "0.0.1-4e80d1b",
4
4
  "private": false,
5
5
  "description": "Generates DevWorkspaces by transforming existing devfiles",
6
6
  "main": "lib/entrypoint.js",
package/src/main.ts CHANGED
@@ -27,30 +27,36 @@ export class Main {
27
27
  // no-op
28
28
  }
29
29
  // Generates a devfile context object based on params
30
- public async generateDevfileContext(params: {
31
- devfilePath?: string;
32
- devfileUrl?: string;
33
- devfileContent?: string;
34
- outputFile?: string;
35
- editorPath?: string;
36
- pluginRegistryUrl?: string;
37
- editorEntry?: string;
38
- projects: { name: string; location: string }[];
39
- }): Promise<DevfileContext> {
40
- let { devfilePath, devfileUrl, outputFile, editorPath, pluginRegistryUrl, editorEntry, projects } = params;
41
-
42
- if (!editorPath && !editorEntry) {
43
- throw new Error('missing editorPath or editorEntry');
30
+ public async generateDevfileContext(
31
+ params: {
32
+ devfilePath?: string;
33
+ devfileUrl?: string;
34
+ devfileContent?: string;
35
+ outputFile?: string;
36
+ editorPath?: string;
37
+ editorContent?: string;
38
+ editorEntry?: string;
39
+ pluginRegistryUrl?: string;
40
+ projects: { name: string; location: string }[];
41
+ },
42
+ axiosInstance: axios.AxiosInstance
43
+ ): Promise<DevfileContext> {
44
+ if (!params.editorPath && !params.editorEntry && !params.editorContent) {
45
+ throw new Error('missing editorPath or editorEntry or editorContent');
44
46
  }
45
- if (!devfilePath && !devfileUrl && !params.devfileContent) {
47
+ if (!params.devfilePath && !params.devfileUrl && !params.devfileContent) {
46
48
  throw new Error('missing devfilePath or devfileUrl or devfileContent');
47
49
  }
48
- if (editorEntry && !pluginRegistryUrl) {
50
+
51
+ let pluginRegistryUrl: string;
52
+
53
+ if (params.pluginRegistryUrl) {
54
+ pluginRegistryUrl = params.pluginRegistryUrl;
55
+ } else {
49
56
  pluginRegistryUrl = 'https://eclipse-che.github.io/che-plugin-registry/main/v3';
50
57
  console.log(`No plug-in registry url. Setting to ${pluginRegistryUrl}`);
51
58
  }
52
59
 
53
- const axiosInstance = axios.default;
54
60
  const inversifyBinbding = new InversifyBinding();
55
61
  const container = await inversifyBinbding.initBindings({
56
62
  pluginRegistryUrl,
@@ -62,9 +68,9 @@ export class Main {
62
68
  let editorContent;
63
69
 
64
70
  // gets the github URL
65
- if (devfileUrl) {
71
+ if (params.devfileUrl) {
66
72
  const githubResolver = container.get(GithubResolver);
67
- const githubUrl = githubResolver.resolve(devfileUrl);
73
+ const githubUrl = githubResolver.resolve(params.devfileUrl);
68
74
  // user devfile
69
75
  devfileContent = await container.get(UrlFetcher).fetchText(githubUrl.getContentUrl('devfile.yaml'));
70
76
 
@@ -86,25 +92,27 @@ export class Main {
86
92
  }
87
93
  // get back the content
88
94
  devfileContent = jsYaml.dump(devfileParsed);
89
- } else if (devfilePath) {
90
- devfileContent = await fs.readFile(devfilePath);
95
+ } else if (params.devfilePath) {
96
+ devfileContent = await fs.readFile(params.devfilePath);
91
97
  } else {
92
98
  devfileContent = params.devfileContent;
93
99
  }
94
100
 
95
101
  // enhance projects
96
- devfileContent = this.replaceIfExistingProjects(devfileContent, projects);
102
+ devfileContent = this.replaceIfExistingProjects(devfileContent, params.projects);
97
103
 
98
- if (editorEntry) {
104
+ if (params.editorContent) {
105
+ editorContent = params.editorContent;
106
+ } else if (params.editorEntry) {
99
107
  // devfile of the editor
100
- const editorDevfile = await container.get(PluginRegistryResolver).loadDevfilePlugin(editorEntry);
108
+ const editorDevfile = await container.get(PluginRegistryResolver).loadDevfilePlugin(params.editorEntry);
101
109
  editorContent = jsYaml.dump(editorDevfile);
102
110
  } else {
103
- editorContent = await fs.readFile(editorPath);
111
+ editorContent = await fs.readFile(params.editorPath);
104
112
  }
105
113
 
106
114
  const generate = container.get(Generate);
107
- return generate.generate(devfileContent, editorContent, outputFile);
115
+ return generate.generate(devfileContent, editorContent, params.outputFile);
108
116
  }
109
117
 
110
118
  // Update project entry based on the projects passed as parameter
@@ -182,15 +190,18 @@ export class Main {
182
190
  if (!outputFile) {
183
191
  throw new Error('missing --output-file: parameter');
184
192
  }
185
- await this.generateDevfileContext({
186
- devfilePath,
187
- devfileUrl,
188
- editorPath,
189
- outputFile,
190
- pluginRegistryUrl,
191
- editorEntry,
192
- projects,
193
- });
193
+ await this.generateDevfileContext(
194
+ {
195
+ devfilePath,
196
+ devfileUrl,
197
+ editorPath,
198
+ outputFile,
199
+ pluginRegistryUrl,
200
+ editorEntry,
201
+ projects,
202
+ },
203
+ axios.default
204
+ );
194
205
  return true;
195
206
  } catch (error) {
196
207
  console.error('stack=' + error.stack);