@eclipse-che/che-devworkspace-generator 7.99.0 → 7.100.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.
- package/lib/generate.d.ts +1 -0
- package/lib/generate.js +21 -9
- package/lib/generate.js.map +1 -1
- package/lib/main.d.ts +2 -0
- package/lib/main.js +14 -1
- package/lib/main.js.map +1 -1
- package/package.json +8 -6
- package/src/generate.ts +20 -8
- package/src/main.ts +16 -1
package/lib/generate.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
***********************************************************************/
|
|
10
10
|
import { DevfileContext } from './api/devfile-context';
|
|
11
|
+
export declare const DEVWORKSPACE_METADATA_ANNOTATION = "dw.metadata.annotations";
|
|
11
12
|
export declare class Generate {
|
|
12
13
|
private devContainerComponentFinder;
|
|
13
14
|
generate(devfileContent: string, editorContent: string, outputFile?: string, injectDefaultComponent?: string, defaultComponentImage?: string): Promise<DevfileContext>;
|
package/lib/generate.js
CHANGED
|
@@ -48,11 +48,13 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
48
48
|
};
|
|
49
49
|
})();
|
|
50
50
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
-
exports.Generate = void 0;
|
|
51
|
+
exports.Generate = exports.DEVWORKSPACE_METADATA_ANNOTATION = void 0;
|
|
52
52
|
const inversify_1 = require("inversify");
|
|
53
|
+
const lodash_1 = require("lodash");
|
|
53
54
|
const jsYaml = __importStar(require("js-yaml"));
|
|
54
55
|
const fs = __importStar(require("fs-extra"));
|
|
55
56
|
const dev_container_component_finder_1 = require("./devfile/dev-container-component-finder");
|
|
57
|
+
exports.DEVWORKSPACE_METADATA_ANNOTATION = 'dw.metadata.annotations';
|
|
56
58
|
let Generate = class Generate {
|
|
57
59
|
devContainerComponentFinder;
|
|
58
60
|
async generate(devfileContent, editorContent, outputFile, injectDefaultComponent, defaultComponentImage) {
|
|
@@ -87,8 +89,16 @@ let Generate = class Generate {
|
|
|
87
89
|
spec: editorDevfile,
|
|
88
90
|
};
|
|
89
91
|
// transform it into a devWorkspace
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
+
const devfileCopy = (0, lodash_1.cloneDeep)(devfile);
|
|
93
|
+
if (devfileCopy.metadata.attributes) {
|
|
94
|
+
if (devfileCopy.attributes) {
|
|
95
|
+
devfileCopy.attributes = (0, lodash_1.merge)(devfileCopy.attributes, devfileCopy.metadata.attributes);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
devfileCopy.attributes = devfileCopy.metadata.attributes;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const devWorkspaceMetadata = this.createDevWorkspaceMetadata(devfileCopy);
|
|
92
102
|
delete devfileCopy.schemaVersion;
|
|
93
103
|
delete devfileCopy.metadata;
|
|
94
104
|
const editorSpecContribution = {
|
|
@@ -100,7 +110,7 @@ let Generate = class Generate {
|
|
|
100
110
|
const devWorkspace = {
|
|
101
111
|
apiVersion: 'workspace.devfile.io/v1alpha2',
|
|
102
112
|
kind: 'DevWorkspace',
|
|
103
|
-
metadata:
|
|
113
|
+
metadata: devWorkspaceMetadata,
|
|
104
114
|
spec: {
|
|
105
115
|
started: true,
|
|
106
116
|
routingClass: 'che',
|
|
@@ -126,7 +136,7 @@ let Generate = class Generate {
|
|
|
126
136
|
await this.devContainerComponentFinder.find(context, injectDefaultComponent, defaultComponentImage);
|
|
127
137
|
return context;
|
|
128
138
|
}
|
|
129
|
-
createDevWorkspaceMetadata(devfile
|
|
139
|
+
createDevWorkspaceMetadata(devfile) {
|
|
130
140
|
const devWorkspaceMetadata = {};
|
|
131
141
|
const devfileMetadata = devfile.metadata;
|
|
132
142
|
if (devfileMetadata.name) {
|
|
@@ -135,10 +145,12 @@ let Generate = class Generate {
|
|
|
135
145
|
if (devfileMetadata.generateName) {
|
|
136
146
|
devWorkspaceMetadata.generateName = devfileMetadata.generateName;
|
|
137
147
|
}
|
|
138
|
-
if (
|
|
139
|
-
devWorkspaceMetadata.annotations = {
|
|
140
|
-
|
|
141
|
-
|
|
148
|
+
if (devfile.attributes?.[exports.DEVWORKSPACE_METADATA_ANNOTATION]) {
|
|
149
|
+
devWorkspaceMetadata.annotations = Object.assign({}, devfile.attributes[exports.DEVWORKSPACE_METADATA_ANNOTATION]);
|
|
150
|
+
delete devfile.attributes[exports.DEVWORKSPACE_METADATA_ANNOTATION];
|
|
151
|
+
if (Object.keys(devfile.attributes).length === 0) {
|
|
152
|
+
delete devfile.attributes;
|
|
153
|
+
}
|
|
142
154
|
}
|
|
143
155
|
return devWorkspaceMetadata;
|
|
144
156
|
}
|
package/lib/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWzE,yCAA+C;AAC/C,gDAAkC;AAClC,6CAA+B;AAE/B,6FAAuF;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
package/lib/main.d.ts
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
***********************************************************************/
|
|
10
10
|
import * as axios from 'axios';
|
|
11
11
|
import { DevfileContext } from './api/devfile-context';
|
|
12
|
+
export declare const DEVWORKSPACE_DEVFILE = "che.eclipse.org/devfile";
|
|
13
|
+
export declare const DEVWORKSPACE_DEVFILE_SOURCE = "che.eclipse.org/devfile-source";
|
|
12
14
|
export declare class Main {
|
|
13
15
|
/**
|
|
14
16
|
* Default constructor.
|
package/lib/main.js
CHANGED
|
@@ -42,7 +42,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
42
42
|
};
|
|
43
43
|
})();
|
|
44
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.Main = void 0;
|
|
45
|
+
exports.Main = exports.DEVWORKSPACE_DEVFILE_SOURCE = exports.DEVWORKSPACE_DEVFILE = void 0;
|
|
46
46
|
const axios = __importStar(require("axios"));
|
|
47
47
|
const fs = __importStar(require("fs-extra"));
|
|
48
48
|
const generate_1 = require("./generate");
|
|
@@ -52,6 +52,8 @@ const inversify_binding_1 = require("./inversify/inversify-binding");
|
|
|
52
52
|
const url_fetcher_1 = require("./fetch/url-fetcher");
|
|
53
53
|
const editor_resolver_1 = require("./editor/editor-resolver");
|
|
54
54
|
const git_url_resolver_1 = require("./resolve/git-url-resolver");
|
|
55
|
+
exports.DEVWORKSPACE_DEVFILE = 'che.eclipse.org/devfile';
|
|
56
|
+
exports.DEVWORKSPACE_DEVFILE_SOURCE = 'che.eclipse.org/devfile-source';
|
|
55
57
|
class Main {
|
|
56
58
|
/**
|
|
57
59
|
* Default constructor.
|
|
@@ -82,6 +84,17 @@ class Main {
|
|
|
82
84
|
devfileContent = await container.get(url_fetcher_1.UrlFetcher).fetchText(url.getContentUrl('devfile.yaml'));
|
|
83
85
|
// load content
|
|
84
86
|
const devfileParsed = jsYaml.load(devfileContent);
|
|
87
|
+
if (!devfileParsed.attributes) {
|
|
88
|
+
devfileParsed.attributes = {};
|
|
89
|
+
}
|
|
90
|
+
devfileParsed.attributes[generate_1.DEVWORKSPACE_METADATA_ANNOTATION] = {
|
|
91
|
+
[exports.DEVWORKSPACE_DEVFILE]: devfileContent,
|
|
92
|
+
[exports.DEVWORKSPACE_DEVFILE_SOURCE]: jsYaml.dump({
|
|
93
|
+
factory: {
|
|
94
|
+
params: 'url=' + params.devfileUrl,
|
|
95
|
+
},
|
|
96
|
+
}),
|
|
97
|
+
};
|
|
85
98
|
// is there projects in the devfile ?
|
|
86
99
|
if (devfileParsed && !devfileParsed.projects) {
|
|
87
100
|
// no, so add the current project being cloned
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzE,6CAA+B;AAC/B,6CAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-che/che-devworkspace-generator",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.100.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Generates DevWorkspaces by transforming existing devfiles",
|
|
6
6
|
"main": "lib/entrypoint.js",
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
"format": "if-env SKIP_FORMAT=true && echo 'skip format check' || prettier --check '{src,tests}/**/*.ts' package.json",
|
|
23
23
|
"format:fix": "prettier --write '{src,tests}/**/*.ts' package.json",
|
|
24
24
|
"lint": "if-env SKIP_LINT=true && echo 'skip lint check' || eslint --cache=true --no-error-on-unmatched-pattern=true '{src,tests}/(!model|**)/*.ts'",
|
|
25
|
-
"lint:fix": "eslint --fix --cache=true --no-error-on-unmatched-pattern=true
|
|
25
|
+
"lint:fix": "eslint --fix --cache=true --no-error-on-unmatched-pattern=true '{src,tests}/(!model|**)/*.ts'",
|
|
26
26
|
"test": "if-env SKIP_TEST=true && echo 'skip test' || jest --forceExit",
|
|
27
27
|
"watch": "tsc -w",
|
|
28
28
|
"license:check": "docker run --rm -t -v ${PWD}/:/workspace/project quay.io/che-incubator/dash-licenses:next --check",
|
|
29
29
|
"license:generate": "docker run --rm -t -v ${PWD}/:/workspace/project quay.io/che-incubator/dash-licenses:next",
|
|
30
|
-
"publish:next": "yarn publish --registry=https://registry.npmjs.org/ --no-git-tag-version --new-version 0.0.1
|
|
30
|
+
"publish:next": "yarn publish --registry=https://registry.npmjs.org/ --no-git-tag-version --new-version 0.0.1-'$(date +%s)'"
|
|
31
31
|
},
|
|
32
32
|
"repository": {
|
|
33
33
|
"type": "git",
|
|
@@ -40,13 +40,14 @@
|
|
|
40
40
|
},
|
|
41
41
|
"homepage": "https://github.com/eclipse-che/che-devfile-registry#readme",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@devfile/api": "2.3.0-
|
|
44
|
-
"jsonschema": "^1.4.1",
|
|
43
|
+
"@devfile/api": "2.3.0-1738854228",
|
|
45
44
|
"axios": "^1.7.4",
|
|
46
45
|
"fs-extra": "^11.2.0",
|
|
47
46
|
"inversify": "^6.0.2",
|
|
47
|
+
"lodash": "^4.17.21",
|
|
48
48
|
"js-yaml": "^4.0.0",
|
|
49
49
|
"jsonc-parser": "^3.0.0",
|
|
50
|
+
"jsonschema": "^1.4.1",
|
|
50
51
|
"reflect-metadata": "^0.2.2"
|
|
51
52
|
},
|
|
52
53
|
"devDependencies": {
|
|
@@ -93,5 +94,6 @@
|
|
|
93
94
|
"<rootDir>/lib"
|
|
94
95
|
],
|
|
95
96
|
"preset": "ts-jest"
|
|
96
|
-
}
|
|
97
|
+
},
|
|
98
|
+
"packageManager": "yarn@1.22.22"
|
|
97
99
|
}
|
package/src/generate.ts
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
V1alpha2DevWorkspaceTemplateSpec,
|
|
19
19
|
} from '@devfile/api';
|
|
20
20
|
import { injectable, inject } from 'inversify';
|
|
21
|
+
import { cloneDeep, merge } from 'lodash';
|
|
21
22
|
import * as jsYaml from 'js-yaml';
|
|
22
23
|
import * as fs from 'fs-extra';
|
|
23
24
|
import { DevfileContext } from './api/devfile-context';
|
|
@@ -29,6 +30,8 @@ type DevfileLike = V230Devfile & {
|
|
|
29
30
|
};
|
|
30
31
|
};
|
|
31
32
|
|
|
33
|
+
export const DEVWORKSPACE_METADATA_ANNOTATION = 'dw.metadata.annotations';
|
|
34
|
+
|
|
32
35
|
@injectable()
|
|
33
36
|
export class Generate {
|
|
34
37
|
@inject(DevContainerComponentFinder)
|
|
@@ -91,8 +94,15 @@ export class Generate {
|
|
|
91
94
|
};
|
|
92
95
|
|
|
93
96
|
// transform it into a devWorkspace
|
|
94
|
-
const
|
|
95
|
-
|
|
97
|
+
const devfileCopy: V230Devfile = cloneDeep(devfile);
|
|
98
|
+
if (devfileCopy.metadata.attributes) {
|
|
99
|
+
if (devfileCopy.attributes) {
|
|
100
|
+
devfileCopy.attributes = merge(devfileCopy.attributes, devfileCopy.metadata.attributes);
|
|
101
|
+
} else {
|
|
102
|
+
devfileCopy.attributes = devfileCopy.metadata.attributes;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const devWorkspaceMetadata = this.createDevWorkspaceMetadata(devfileCopy as DevfileLike);
|
|
96
106
|
delete devfileCopy.schemaVersion;
|
|
97
107
|
delete devfileCopy.metadata;
|
|
98
108
|
const editorSpecContribution: V1alpha2DevWorkspaceSpecContributions = {
|
|
@@ -104,7 +114,7 @@ export class Generate {
|
|
|
104
114
|
const devWorkspace: V1alpha2DevWorkspace = {
|
|
105
115
|
apiVersion: 'workspace.devfile.io/v1alpha2',
|
|
106
116
|
kind: 'DevWorkspace',
|
|
107
|
-
metadata:
|
|
117
|
+
metadata: devWorkspaceMetadata,
|
|
108
118
|
spec: {
|
|
109
119
|
started: true,
|
|
110
120
|
routingClass: 'che',
|
|
@@ -136,7 +146,7 @@ export class Generate {
|
|
|
136
146
|
return context;
|
|
137
147
|
}
|
|
138
148
|
|
|
139
|
-
private createDevWorkspaceMetadata(devfile: DevfileLike
|
|
149
|
+
private createDevWorkspaceMetadata(devfile: DevfileLike): V1alpha2DevWorkspaceMetadata {
|
|
140
150
|
const devWorkspaceMetadata = {} as V1alpha2DevWorkspaceMetadata;
|
|
141
151
|
const devfileMetadata = devfile.metadata;
|
|
142
152
|
|
|
@@ -146,10 +156,12 @@ export class Generate {
|
|
|
146
156
|
if (devfileMetadata.generateName) {
|
|
147
157
|
devWorkspaceMetadata.generateName = devfileMetadata.generateName;
|
|
148
158
|
}
|
|
149
|
-
if (
|
|
150
|
-
devWorkspaceMetadata.annotations = {
|
|
151
|
-
|
|
152
|
-
|
|
159
|
+
if (devfile.attributes?.[DEVWORKSPACE_METADATA_ANNOTATION]) {
|
|
160
|
+
devWorkspaceMetadata.annotations = Object.assign({}, devfile.attributes[DEVWORKSPACE_METADATA_ANNOTATION]);
|
|
161
|
+
delete devfile.attributes[DEVWORKSPACE_METADATA_ANNOTATION];
|
|
162
|
+
if (Object.keys(devfile.attributes).length === 0) {
|
|
163
|
+
delete devfile.attributes;
|
|
164
|
+
}
|
|
153
165
|
}
|
|
154
166
|
|
|
155
167
|
return devWorkspaceMetadata;
|
package/src/main.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
import * as axios from 'axios';
|
|
12
12
|
import * as fs from 'fs-extra';
|
|
13
|
-
import { Generate } from './generate';
|
|
13
|
+
import { Generate, DEVWORKSPACE_METADATA_ANNOTATION } from './generate';
|
|
14
14
|
import { DevfileSchemaValidator } from './devfile-schema/devfile-schema-validator';
|
|
15
15
|
import * as jsYaml from 'js-yaml';
|
|
16
16
|
import { InversifyBinding } from './inversify/inversify-binding';
|
|
@@ -21,6 +21,9 @@ import { DevfileContext } from './api/devfile-context';
|
|
|
21
21
|
import { GitUrlResolver } from './resolve/git-url-resolver';
|
|
22
22
|
import { ValidatorResult } from 'jsonschema';
|
|
23
23
|
|
|
24
|
+
export const DEVWORKSPACE_DEVFILE = 'che.eclipse.org/devfile';
|
|
25
|
+
export const DEVWORKSPACE_DEVFILE_SOURCE = 'che.eclipse.org/devfile-source';
|
|
26
|
+
|
|
24
27
|
export class Main {
|
|
25
28
|
/**
|
|
26
29
|
* Default constructor.
|
|
@@ -70,6 +73,18 @@ export class Main {
|
|
|
70
73
|
// load content
|
|
71
74
|
const devfileParsed = jsYaml.load(devfileContent);
|
|
72
75
|
|
|
76
|
+
if (!devfileParsed.attributes) {
|
|
77
|
+
devfileParsed.attributes = {};
|
|
78
|
+
}
|
|
79
|
+
devfileParsed.attributes[DEVWORKSPACE_METADATA_ANNOTATION] = {
|
|
80
|
+
[DEVWORKSPACE_DEVFILE]: devfileContent,
|
|
81
|
+
[DEVWORKSPACE_DEVFILE_SOURCE]: jsYaml.dump({
|
|
82
|
+
factory: {
|
|
83
|
+
params: 'url=' + params.devfileUrl,
|
|
84
|
+
},
|
|
85
|
+
}),
|
|
86
|
+
};
|
|
87
|
+
|
|
73
88
|
// is there projects in the devfile ?
|
|
74
89
|
if (devfileParsed && !devfileParsed.projects) {
|
|
75
90
|
// no, so add the current project being cloned
|