@opensumi/ide-workspace 2.12.1-next-079c1930

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 (49) hide show
  1. package/lib/browser/index.d.ts +8 -0
  2. package/lib/browser/index.d.ts.map +1 -0
  3. package/lib/browser/index.js +36 -0
  4. package/lib/browser/index.js.map +1 -0
  5. package/lib/browser/workspace-contextkey.d.ts +8 -0
  6. package/lib/browser/workspace-contextkey.d.ts.map +1 -0
  7. package/lib/browser/workspace-contextkey.js +25 -0
  8. package/lib/browser/workspace-contextkey.js.map +1 -0
  9. package/lib/browser/workspace-contribution.d.ts +16 -0
  10. package/lib/browser/workspace-contribution.d.ts.map +1 -0
  11. package/lib/browser/workspace-contribution.js +97 -0
  12. package/lib/browser/workspace-contribution.js.map +1 -0
  13. package/lib/browser/workspace-preferences.d.ts +15 -0
  14. package/lib/browser/workspace-preferences.d.ts.map +1 -0
  15. package/lib/browser/workspace-preferences.js +35 -0
  16. package/lib/browser/workspace-preferences.js.map +1 -0
  17. package/lib/browser/workspace-service.d.ts +150 -0
  18. package/lib/browser/workspace-service.d.ts.map +1 -0
  19. package/lib/browser/workspace-service.js +675 -0
  20. package/lib/browser/workspace-service.js.map +1 -0
  21. package/lib/browser/workspace-storage-service.d.ts +18 -0
  22. package/lib/browser/workspace-storage-service.d.ts.map +1 -0
  23. package/lib/browser/workspace-storage-service.js +62 -0
  24. package/lib/browser/workspace-storage-service.js.map +1 -0
  25. package/lib/browser/workspace-variable-contribution.d.ts +11 -0
  26. package/lib/browser/workspace-variable-contribution.d.ts.map +1 -0
  27. package/lib/browser/workspace-variable-contribution.js +119 -0
  28. package/lib/browser/workspace-variable-contribution.js.map +1 -0
  29. package/lib/common/index.d.ts +2 -0
  30. package/lib/common/index.d.ts.map +1 -0
  31. package/lib/common/index.js +5 -0
  32. package/lib/common/index.js.map +1 -0
  33. package/lib/common/mocks/index.d.ts +2 -0
  34. package/lib/common/mocks/index.d.ts.map +1 -0
  35. package/lib/common/mocks/index.js +5 -0
  36. package/lib/common/mocks/index.js.map +1 -0
  37. package/lib/common/mocks/workspace-service.d.ts +44 -0
  38. package/lib/common/mocks/workspace-service.d.ts.map +1 -0
  39. package/lib/common/mocks/workspace-service.js +108 -0
  40. package/lib/common/mocks/workspace-service.js.map +1 -0
  41. package/lib/common/workspace-defination.d.ts +106 -0
  42. package/lib/common/workspace-defination.d.ts.map +1 -0
  43. package/lib/common/workspace-defination.js +145 -0
  44. package/lib/common/workspace-defination.js.map +1 -0
  45. package/lib/index.d.ts +2 -0
  46. package/lib/index.d.ts.map +1 -0
  47. package/lib/index.js +5 -0
  48. package/lib/index.js.map +1 -0
  49. package/package.json +27 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IWorkspaceStorageService = exports.IWorkspaceService = exports.WorkspaceData = exports.UNTITLED_WORKSPACE = exports.WORKSPACE_RECENT_DATA_FILE = exports.WORKSPACE_USER_STORAGE_FOLDER_NAME = exports.KAITIAN_MULTI_WORKSPACE_EXT = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
6
+ const ajv_1 = (0, tslib_1.__importDefault)(require("ajv"));
7
+ exports.KAITIAN_MULTI_WORKSPACE_EXT = 'sumi-workspace';
8
+ exports.WORKSPACE_USER_STORAGE_FOLDER_NAME = '.sumi';
9
+ exports.WORKSPACE_RECENT_DATA_FILE = 'recentdata.json';
10
+ exports.UNTITLED_WORKSPACE = 'Untitled';
11
+ var WorkspaceData;
12
+ (function (WorkspaceData) {
13
+ const validateSchema = new ajv_1.default().compile({
14
+ type: 'object',
15
+ properties: {
16
+ folders: {
17
+ description: 'Root folders in the workspace',
18
+ type: 'array',
19
+ items: {
20
+ type: 'object',
21
+ properties: {
22
+ path: {
23
+ type: 'string',
24
+ },
25
+ },
26
+ required: ['path'],
27
+ },
28
+ },
29
+ settings: {
30
+ description: 'Workspace preferences',
31
+ type: 'object',
32
+ },
33
+ },
34
+ required: ['folders'],
35
+ });
36
+ function is(data) {
37
+ return !!validateSchema(data);
38
+ }
39
+ WorkspaceData.is = is;
40
+ function buildWorkspaceData(folders, settings) {
41
+ let roots = [];
42
+ if (folders.length > 0) {
43
+ if (typeof folders[0] !== 'string') {
44
+ roots = folders.map((folder) => folder.uri);
45
+ }
46
+ else {
47
+ roots = folders;
48
+ }
49
+ }
50
+ const data = {
51
+ folders: roots.map((folder) => ({ path: folder })),
52
+ };
53
+ if (settings) {
54
+ data.settings = settings;
55
+ }
56
+ return data;
57
+ }
58
+ WorkspaceData.buildWorkspaceData = buildWorkspaceData;
59
+ /**
60
+ * 存储时需要将 {workspace}.sumi-workspace 内容存储为相对路径存储
61
+ * 1. 如果可用相对路径表示,则存储为:
62
+ * {
63
+ * "folders": [
64
+ * {
65
+ * "path": "folder1"
66
+ * },
67
+ * {
68
+ * "path": "folder2"
69
+ * }
70
+ * ],
71
+ * }
72
+ *
73
+ * 2. 如果不可用相对路径表示,则存储绝对路径:
74
+ * {
75
+ * "folders": [
76
+ * {
77
+ * "path": "file://abc/folder1"
78
+ * },
79
+ * {
80
+ * "path": "file://cdf/folder2"
81
+ * }
82
+ * ],
83
+ * }
84
+ *
85
+ * @export
86
+ * @param {WorkspaceData} data
87
+ * @param {FileStat} [workspaceFile]
88
+ * @returns {WorkspaceData}
89
+ */
90
+ function transformToRelative(data, workspaceFile) {
91
+ const folderUris = [];
92
+ const workspaceFileUri = new ide_core_common_1.URI(workspaceFile ? workspaceFile.uri : '').withScheme('file');
93
+ for (const { path } of data.folders) {
94
+ const folderUri = new ide_core_common_1.URI(path).withScheme('file');
95
+ if (workspaceFileUri.parent.isEqualOrParent(folderUri)) {
96
+ if (workspaceFileUri.parent.isEqual(folderUri)) {
97
+ folderUris.push('.');
98
+ }
99
+ else {
100
+ const rel = workspaceFileUri.parent.relative(folderUri);
101
+ folderUris.push(rel.toString() || '.');
102
+ }
103
+ }
104
+ else {
105
+ folderUris.push(folderUri.toString());
106
+ }
107
+ }
108
+ return buildWorkspaceData(folderUris, data.settings);
109
+ }
110
+ WorkspaceData.transformToRelative = transformToRelative;
111
+ /**
112
+ * 将 {workspace}.sumi-workspace 中存储的相对路径转换为绝对路径
113
+ *
114
+ * @export
115
+ * @param {WorkspaceData} data
116
+ * @param {FileStat} [workspaceFile]
117
+ * @returns {WorkspaceData}
118
+ */
119
+ function transformToAbsolute(data, workspaceFile) {
120
+ if (workspaceFile) {
121
+ const folders = [];
122
+ for (const folder of data.folders) {
123
+ const path = folder.path;
124
+ // 判断是否为绝对路径
125
+ if (/^.+\:\//.test(path)) {
126
+ folders.push(path);
127
+ }
128
+ else {
129
+ if (path === '.') {
130
+ folders.push(new ide_core_common_1.URI(workspaceFile.uri).parent.toString());
131
+ }
132
+ else {
133
+ folders.push(new ide_core_common_1.URI(workspaceFile.uri).parent.resolve(path).toString());
134
+ }
135
+ }
136
+ }
137
+ return Object.assign(data, buildWorkspaceData(folders, data.settings));
138
+ }
139
+ return data;
140
+ }
141
+ WorkspaceData.transformToAbsolute = transformToAbsolute;
142
+ })(WorkspaceData = exports.WorkspaceData || (exports.WorkspaceData = {}));
143
+ exports.IWorkspaceService = Symbol('IWorkspaceService');
144
+ exports.IWorkspaceStorageService = Symbol('IWorkspaceStorageService');
145
+ //# sourceMappingURL=workspace-defination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-defination.js","sourceRoot":"","sources":["../../src/common/workspace-defination.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './common';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./common"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyB"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@opensumi/ide-workspace",
3
+ "version": "2.12.1-next-079c1930",
4
+ "files": [
5
+ "lib"
6
+ ],
7
+ "license": "MIT",
8
+ "main": "lib/index.js",
9
+ "typings": "lib/index.d.ts",
10
+ "scripts": {
11
+ "prepublishOnly": "npm run build",
12
+ "build": "tsc --build ../../configs/ts/references/tsconfig.workspace.json"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git@github.com:opensumi/core.git"
17
+ },
18
+ "dependencies": {
19
+ "@opensumi/ide-core-browser": "2.12.1-next-079c1930",
20
+ "@opensumi/ide-core-common": "2.12.1-next-079c1930",
21
+ "@opensumi/ide-file-service": "2.12.1-next-079c1930",
22
+ "@opensumi/ide-overlay": "2.12.1-next-079c1930"
23
+ },
24
+ "devDependencies": {
25
+ "@opensumi/ide-dev-tool": "^1.3.1"
26
+ }
27
+ }