oc 0.49.7 → 0.49.8

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 (163) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +2 -15
  3. package/dist/cli/domain/clean.d.ts +2 -2
  4. package/dist/cli/domain/clean.js +10 -13
  5. package/dist/cli/domain/get-components-by-dir.d.ts +1 -1
  6. package/dist/cli/domain/get-components-by-dir.js +8 -15
  7. package/dist/cli/domain/get-mocked-plugins.js +8 -6
  8. package/dist/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.d.ts +1 -1
  9. package/dist/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.js +4 -5
  10. package/dist/cli/domain/handle-dependencies/get-compiler.d.ts +1 -1
  11. package/dist/cli/domain/handle-dependencies/get-compiler.js +3 -3
  12. package/dist/cli/domain/handle-dependencies/index.d.ts +4 -3
  13. package/dist/cli/domain/handle-dependencies/index.js +40 -34
  14. package/dist/cli/domain/handle-dependencies/install-compiler.d.ts +1 -1
  15. package/dist/cli/domain/handle-dependencies/install-compiler.js +14 -7
  16. package/dist/cli/domain/handle-dependencies/install-missing-dependencies.d.ts +1 -1
  17. package/dist/cli/domain/handle-dependencies/install-missing-dependencies.js +13 -9
  18. package/dist/cli/domain/handle-dependencies/link-missing-dependencies.d.ts +1 -1
  19. package/dist/cli/domain/handle-dependencies/link-missing-dependencies.js +4 -8
  20. package/dist/cli/domain/init-template/index.d.ts +2 -2
  21. package/dist/cli/domain/init-template/index.js +6 -8
  22. package/dist/cli/domain/init-template/install-template.d.ts +2 -2
  23. package/dist/cli/domain/init-template/install-template.js +10 -9
  24. package/dist/cli/domain/init-template/scaffold.d.ts +2 -2
  25. package/dist/cli/domain/init-template/scaffold.js +7 -7
  26. package/dist/cli/domain/local.js +11 -10
  27. package/dist/cli/domain/mock.d.ts +1 -1
  28. package/dist/cli/domain/mock.js +21 -21
  29. package/dist/cli/domain/package-components.d.ts +1 -1
  30. package/dist/cli/domain/package-components.js +14 -17
  31. package/dist/cli/domain/registry.js +68 -81
  32. package/dist/cli/domain/watch.js +1 -1
  33. package/dist/cli/facade/clean.d.ts +10 -4
  34. package/dist/cli/facade/clean.js +38 -28
  35. package/dist/cli/facade/dev.d.ts +108 -15
  36. package/dist/cli/facade/dev.js +85 -99
  37. package/dist/cli/facade/init.d.ts +12 -5
  38. package/dist/cli/facade/init.js +22 -20
  39. package/dist/cli/facade/mock.d.ts +12 -5
  40. package/dist/cli/facade/mock.js +5 -6
  41. package/dist/cli/facade/package.d.ts +12 -5
  42. package/dist/cli/facade/package.js +30 -32
  43. package/dist/cli/facade/preview.d.ts +8 -3
  44. package/dist/cli/facade/preview.js +12 -10
  45. package/dist/cli/facade/publish.d.ts +16 -7
  46. package/dist/cli/facade/publish.js +94 -114
  47. package/dist/cli/facade/registry-add.d.ts +8 -3
  48. package/dist/cli/facade/registry-add.js +10 -9
  49. package/dist/cli/facade/registry-ls.d.ts +4 -1
  50. package/dist/cli/facade/registry-ls.js +19 -17
  51. package/dist/cli/facade/registry-remove.d.ts +8 -3
  52. package/dist/cli/facade/registry-remove.js +10 -9
  53. package/dist/cli/facade/registry.d.ts +4 -1
  54. package/dist/cli/facade/registry.js +6 -3
  55. package/dist/cli/index.js +3 -5
  56. package/dist/cli/programmatic-api.d.ts +1 -1
  57. package/dist/components/oc-client/_package/package.json +1 -1
  58. package/dist/components/oc-client/package.json +1 -1
  59. package/dist/registry/app-start.d.ts +2 -2
  60. package/dist/registry/app-start.js +20 -20
  61. package/dist/registry/domain/components-cache/components-list.d.ts +7 -6
  62. package/dist/registry/domain/components-cache/components-list.js +31 -45
  63. package/dist/registry/domain/components-cache/index.d.ts +6 -5
  64. package/dist/registry/domain/components-cache/index.js +47 -50
  65. package/dist/registry/domain/components-details.d.ts +5 -4
  66. package/dist/registry/domain/components-details.js +27 -38
  67. package/dist/registry/domain/extract-package.d.ts +2 -2
  68. package/dist/registry/domain/extract-package.js +9 -12
  69. package/dist/registry/domain/get-package-json-from-temp-dir.d.ts +1 -1
  70. package/dist/registry/domain/get-package-json-from-temp-dir.js +2 -2
  71. package/dist/registry/domain/nested-renderer.d.ts +7 -6
  72. package/dist/registry/domain/nested-renderer.js +36 -72
  73. package/dist/registry/domain/options-sanitiser.js +5 -3
  74. package/dist/registry/domain/plugins-initialiser.d.ts +3 -1
  75. package/dist/registry/domain/plugins-initialiser.js +29 -33
  76. package/dist/registry/domain/repository.js +78 -100
  77. package/dist/registry/domain/require-wrapper.js +1 -2
  78. package/dist/registry/domain/storage-adapter.d.ts +10 -0
  79. package/dist/registry/domain/storage-adapter.js +55 -0
  80. package/dist/registry/index.d.ts +2 -2
  81. package/dist/registry/index.js +15 -28
  82. package/dist/registry/middleware/index.d.ts +6 -2
  83. package/dist/registry/middleware/index.js +5 -1
  84. package/dist/registry/router.d.ts +2 -2
  85. package/dist/registry/router.js +0 -2
  86. package/dist/registry/routes/component-info.js +3 -2
  87. package/dist/registry/routes/component-preview.js +2 -1
  88. package/dist/registry/routes/components.js +1 -1
  89. package/dist/registry/routes/helpers/get-component-fallback.d.ts +2 -7
  90. package/dist/registry/routes/helpers/get-component.d.ts +5 -5
  91. package/dist/registry/routes/helpers/get-component.js +6 -5
  92. package/dist/registry/routes/helpers/is-url-discoverable.d.ts +2 -2
  93. package/dist/registry/routes/helpers/is-url-discoverable.js +15 -9
  94. package/dist/registry/routes/index.js +4 -3
  95. package/dist/registry/routes/publish.d.ts +1 -1
  96. package/dist/registry/routes/publish.js +32 -31
  97. package/dist/resources/settings.js +1 -1
  98. package/dist/types.d.ts +35 -43
  99. package/dist/utils/npm-utils.d.ts +6 -8
  100. package/dist/utils/npm-utils.js +20 -9
  101. package/dist/utils/put.d.ts +2 -1
  102. package/dist/utils/put.js +10 -29
  103. package/logintervals.md +1 -1
  104. package/package.json +6 -1
  105. package/src/cli/domain/clean.ts +10 -20
  106. package/src/cli/domain/get-components-by-dir.ts +12 -26
  107. package/src/cli/domain/get-mocked-plugins.ts +32 -26
  108. package/src/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.ts +8 -12
  109. package/src/cli/domain/handle-dependencies/get-compiler.ts +8 -11
  110. package/src/cli/domain/handle-dependencies/index.ts +55 -109
  111. package/src/cli/domain/handle-dependencies/install-compiler.ts +22 -15
  112. package/src/cli/domain/handle-dependencies/install-missing-dependencies.ts +19 -13
  113. package/src/cli/domain/handle-dependencies/link-missing-dependencies.ts +8 -16
  114. package/src/cli/domain/init-template/index.ts +13 -20
  115. package/src/cli/domain/init-template/install-template.ts +11 -12
  116. package/src/cli/domain/init-template/scaffold.ts +9 -12
  117. package/src/cli/domain/local.ts +19 -22
  118. package/src/cli/domain/mock.ts +32 -36
  119. package/src/cli/domain/package-components.ts +14 -25
  120. package/src/cli/domain/registry.ts +80 -116
  121. package/src/cli/domain/watch.ts +1 -1
  122. package/src/cli/facade/clean.ts +37 -37
  123. package/src/cli/facade/dev.ts +159 -182
  124. package/src/cli/facade/init.ts +36 -38
  125. package/src/cli/facade/mock.ts +11 -10
  126. package/src/cli/facade/package.ts +44 -49
  127. package/src/cli/facade/preview.ts +20 -18
  128. package/src/cli/facade/publish.ts +134 -172
  129. package/src/cli/facade/registry-add.ts +16 -15
  130. package/src/cli/facade/registry-ls.ts +27 -22
  131. package/src/cli/facade/registry-remove.ts +16 -15
  132. package/src/cli/facade/registry.ts +7 -5
  133. package/src/cli/index.ts +3 -5
  134. package/src/components/oc-client/_package/package.json +1 -1
  135. package/src/components/oc-client/package.json +1 -1
  136. package/src/globals.d.ts +38 -0
  137. package/src/registry/app-start.ts +27 -31
  138. package/src/registry/domain/components-cache/components-list.ts +45 -67
  139. package/src/registry/domain/components-cache/index.ts +55 -60
  140. package/src/registry/domain/components-details.ts +49 -75
  141. package/src/registry/domain/extract-package.ts +19 -27
  142. package/src/registry/domain/get-package-json-from-temp-dir.ts +3 -4
  143. package/src/registry/domain/nested-renderer.ts +64 -122
  144. package/src/registry/domain/options-sanitiser.ts +6 -3
  145. package/src/registry/domain/plugins-initialiser.ts +45 -49
  146. package/src/registry/domain/repository.ts +129 -235
  147. package/src/registry/domain/require-wrapper.ts +1 -2
  148. package/src/registry/domain/storage-adapter.ts +85 -0
  149. package/src/registry/index.ts +48 -79
  150. package/src/registry/middleware/index.ts +10 -2
  151. package/src/registry/router.ts +2 -10
  152. package/src/registry/routes/component-info.ts +4 -3
  153. package/src/registry/routes/component-preview.ts +3 -2
  154. package/src/registry/routes/components.ts +1 -1
  155. package/src/registry/routes/helpers/get-component-fallback.ts +3 -9
  156. package/src/registry/routes/helpers/get-component.ts +11 -9
  157. package/src/registry/routes/helpers/is-url-discoverable.ts +14 -15
  158. package/src/registry/routes/index.ts +18 -13
  159. package/src/registry/routes/publish.ts +31 -34
  160. package/src/resources/settings.ts +1 -1
  161. package/src/types.ts +63 -136
  162. package/src/utils/npm-utils.ts +38 -37
  163. package/src/utils/put.ts +15 -37
@@ -1,6 +1,6 @@
1
1
  import fs from 'fs-extra';
2
2
  import path from 'path';
3
- import request from 'minimal-request';
3
+ import got from 'got';
4
4
  import _ from 'lodash';
5
5
 
6
6
  import put from '../../utils/put';
@@ -28,100 +28,72 @@ export default function registry(opts: RegistryOptions = {}): RegistryCli {
28
28
  };
29
29
 
30
30
  return {
31
- add(registry: string, callback: (err: string | null, data: null) => void) {
31
+ async add(registry: string) {
32
32
  if (registry.slice(registry.length - 1) !== '/') {
33
33
  registry += '/';
34
34
  }
35
+ try {
36
+ const apiResponse: { type: string } = await got(registry, {
37
+ headers: requestsHeaders
38
+ }).json();
35
39
 
36
- request(
37
- {
38
- url: registry,
39
- headers: requestsHeaders,
40
- json: true
41
- },
42
- (err, apiResponse: { type: string }) => {
43
- if (err || !apiResponse) {
44
- return callback('oc registry not available', null);
45
- } else if (apiResponse.type !== 'oc-registry') {
46
- return callback('not a valid oc registry', null);
47
- }
48
-
49
- fs.readJson(settings.configFile.src, (err, res) => {
50
- if (err) {
51
- res = {};
52
- }
53
-
54
- if (!res.registries) {
55
- res.registries = [];
56
- }
57
-
58
- if (!_.includes(res.registries, registry)) {
59
- res.registries.push(registry);
60
- }
61
-
62
- fs.writeJson(settings.configFile.src, res, callback as any);
63
- });
40
+ if (!apiResponse) throw 'oc registry not available';
41
+ if (apiResponse.type !== 'oc-registry') throw 'not a valid oc registry';
42
+
43
+ const res = await fs
44
+ .readJson(settings.configFile.src)
45
+ .catch(() => ({}));
46
+
47
+ if (!res.registries) {
48
+ res.registries = [];
49
+ }
50
+
51
+ if (!_.includes(res.registries, registry)) {
52
+ res.registries.push(registry);
64
53
  }
65
- );
54
+
55
+ return fs.writeJson(settings.configFile.src, res);
56
+ } catch (err) {
57
+ throw 'oc registry not available';
58
+ }
66
59
  },
67
- get(callback: (err: string | null, data: string[]) => void) {
60
+ async get() {
68
61
  if (opts.registry) {
69
- return callback(null, [opts.registry]);
62
+ return [opts.registry];
70
63
  }
71
64
 
72
- fs.readJson(settings.configFile.src, (err, res) => {
73
- if (err || !res.registries || res.registries.length === 0) {
74
- return callback('No oc registries', undefined as any);
75
- }
65
+ try {
66
+ const res = await fs.readJson(settings.configFile.src);
76
67
 
77
- return callback(null, res.registries);
78
- });
68
+ if (!res.registries || res.registries.length === 0)
69
+ throw 'No oc registries';
70
+
71
+ return res.registries;
72
+ } catch (err) {
73
+ throw 'No oc registries';
74
+ }
79
75
  },
80
- getApiComponentByHref(
81
- href: string,
82
- callback: (err: Error | number | null, data: unknown) => void
83
- ) {
84
- request(
85
- {
86
- url: href + settings.registry.componentInfoPath,
87
- headers: requestsHeaders,
88
- json: true
89
- },
90
- callback
91
- );
76
+ getApiComponentByHref(href: string) {
77
+ return got(href + settings.registry.componentInfoPath, {
78
+ headers: requestsHeaders
79
+ }).json();
92
80
  },
93
- getComponentPreviewUrlByUrl(
94
- componentHref: string,
95
- callback: (err: Error | number | null, data: string) => void
96
- ) {
97
- request(
98
- {
99
- url: componentHref,
100
- headers: requestsHeaders,
101
- json: true
102
- },
103
- (err, res: { requestVersion: string; href: string }) => {
104
- if (err) {
105
- return callback(err, undefined as any);
106
- }
107
-
108
- const parsed = urlParser.parse(res);
109
- callback(
110
- null,
111
- urlBuilder.componentPreview(parsed as any, parsed.registryUrl)
112
- );
113
- }
114
- );
81
+ async getComponentPreviewUrlByUrl(componentHref: string) {
82
+ const res: { requestVersion: string; href: string } = await got(
83
+ componentHref,
84
+ { headers: requestsHeaders }
85
+ ).json();
86
+
87
+ const parsed = urlParser.parse(res);
88
+
89
+ return urlBuilder.componentPreview(parsed as any, parsed.registryUrl);
115
90
  },
116
- putComponent(
117
- options: {
118
- username?: string;
119
- password?: string;
120
- route: string;
121
- path: string;
122
- },
123
- callback: (err: string | null, data: unknown) => void
124
- ) {
91
+ async putComponent(options: {
92
+ username?: string;
93
+ password?: string;
94
+ route: string;
95
+ path: string;
96
+ }) {
125
97
  if (!!options.username && !!options.password) {
126
98
  requestsHeaders = Object.assign(requestsHeaders, {
127
99
  Authorization:
@@ -131,49 +103,41 @@ export default function registry(opts: RegistryOptions = {}): RegistryCli {
131
103
  )
132
104
  });
133
105
  }
106
+ try {
107
+ await put(options.route, options.path, requestsHeaders);
108
+ } catch (err) {
109
+ let parsedError = err as any as { code?: string; error?: string };
110
+ let errMsg = '';
111
+ if (!_.isObject(err)) {
112
+ try {
113
+ parsedError = JSON.parse(String(err));
114
+ } catch (er) {}
115
+ }
134
116
 
135
- put(options.route, options.path, requestsHeaders, (err, res) => {
136
- if (err) {
137
- if (!_.isObject(err)) {
138
- try {
139
- err = JSON.parse(String(err));
140
- } catch (er) {}
141
- }
142
- const parsedError = err as any as { code?: string; error?: string };
143
-
144
- if (!!parsedError.code && parsedError.code === 'ECONNREFUSED') {
145
- err = 'Connection to registry has not been established';
146
- } else if (
147
- parsedError.code !== 'cli_version_not_valid' &&
148
- parsedError.code !== 'node_version_not_valid' &&
149
- !!parsedError.error
150
- ) {
151
- err = parsedError.error;
152
- }
153
-
154
- return callback(err as any, undefined as any);
117
+ if (!!parsedError.code && parsedError.code === 'ECONNREFUSED') {
118
+ errMsg = 'Connection to registry has not been established';
119
+ } else if (
120
+ parsedError.code !== 'cli_version_not_valid' &&
121
+ parsedError.code !== 'node_version_not_valid' &&
122
+ !!parsedError.error
123
+ ) {
124
+ errMsg = parsedError.error;
155
125
  }
156
126
 
157
- callback(err, res);
158
- });
127
+ throw errMsg;
128
+ }
159
129
  },
160
- remove(registry: string, callback: (err: Error | null) => void) {
130
+ async remove(registry: string) {
161
131
  if (registry.slice(registry.length - 1) !== '/') {
162
132
  registry += '/';
163
133
  }
164
134
 
165
- fs.readJson(settings.configFile.src, (err, res) => {
166
- if (err) {
167
- res = {};
168
- }
169
-
170
- if (!res.registries) {
171
- res.registries = [];
172
- }
135
+ const res = await fs
136
+ .readJson(settings.configFile.src)
137
+ .catch(() => ({ registries: [] }));
138
+ res.registries = _.without(res.registries, registry);
173
139
 
174
- res.registries = _.without(res.registries, registry);
175
- fs.writeJson(settings.configFile.src, res, callback as any);
176
- });
140
+ await fs.writeJson(settings.configFile.src, res);
177
141
  }
178
142
  };
179
143
  }
@@ -12,7 +12,7 @@ export default function watch(
12
12
  ignored: settings.filesToIgnoreOnDevWatch,
13
13
  persistent: true,
14
14
  ignoreInitial: true,
15
- usePolling: false
15
+ usePolling: true
16
16
  });
17
17
  const onChange = (fileName: string) => {
18
18
  const componentDir = dirs.find(dir =>
@@ -1,8 +1,12 @@
1
- import read from 'read';
1
+ import readCb from 'read';
2
+ import { fromPromise } from 'universalify';
3
+ import { promisify } from 'util';
2
4
  import strings from '../../resources/index';
3
5
  import { Local } from '../../types';
4
6
  import { Logger } from '../logger';
5
7
 
8
+ const read = promisify(readCb);
9
+
6
10
  const clean = ({
7
11
  local: {
8
12
  clean: { fetchList, remove }
@@ -20,56 +24,52 @@ const clean = ({
20
24
  cleanSuccess
21
25
  } = strings.messages.cli;
22
26
 
23
- const prompt = (cb: (proceed: boolean) => void) =>
24
- read(
25
- { prompt: cleanPrompt, default: cleanPromptDefault },
26
- (err, result) => {
27
- if (err) return cb(false);
28
- const lowered = result.toLowerCase().trim();
29
- const proceed = lowered === 'y' || lowered === 'yes';
30
- cb(proceed);
31
- }
32
- );
33
-
34
- const removeFolders = (list: string[], cb: (err?: unknown) => void) =>
35
- remove(list, err => {
36
- if (err) {
37
- logger.err(strings.errors.cli.cleanRemoveError(String(err)));
38
- return cb(err);
39
- }
27
+ const prompt = async (): Promise<boolean> => {
28
+ try {
29
+ const result = await read({
30
+ prompt: cleanPrompt,
31
+ default: cleanPromptDefault
32
+ });
33
+ const lowered = result.toLowerCase().trim();
34
+ return lowered === 'y' || lowered === 'yes';
35
+ } catch (err) {
36
+ return false;
37
+ }
38
+ };
40
39
 
40
+ const removeFolders = async (list: string[]) => {
41
+ try {
42
+ await remove(list);
41
43
  logger.ok(cleanSuccess);
42
- cb();
43
- });
44
+ } catch (err) {
45
+ logger.err(strings.errors.cli.cleanRemoveError(String(err)));
46
+ throw err;
47
+ }
48
+ };
44
49
 
45
- return (
46
- opts: { dirPath: string; yes: boolean },
47
- callback: (err?: unknown) => void
48
- ) => {
49
- fetchList(opts.dirPath, (err, list) => {
50
- if (err) {
51
- logger.err(strings.errors.generic(String(err)));
52
- return callback(err);
53
- }
50
+ return fromPromise(async (opts: { dirPath: string; yes: boolean }) => {
51
+ try {
52
+ const list = await fetchList(opts.dirPath);
54
53
 
55
54
  if (list.length === 0) {
56
55
  logger.ok(cleanAlreadyClean);
57
- return callback();
56
+ return;
58
57
  }
59
58
 
60
59
  logger.warn(cleanList(list));
61
60
  const shouldConfirm = !opts.yes;
62
61
 
63
62
  if (shouldConfirm) {
64
- return prompt(confirmed => {
65
- if (!confirmed) return callback();
66
- return removeFolders(list, callback);
67
- });
63
+ const confirmed = await prompt();
64
+ if (!confirmed) return;
68
65
  }
69
66
 
70
- removeFolders(list, callback);
71
- });
72
- };
67
+ await removeFolders(list);
68
+ } catch (err) {
69
+ logger.err(strings.errors.generic(String(err)));
70
+ throw err;
71
+ }
72
+ });
73
73
  };
74
74
 
75
75
  export default clean;