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,136 +1,112 @@
1
- import async from 'async';
2
1
  import colors from 'colors/safe';
3
2
  import path from 'path';
4
3
  import fs from 'fs-extra';
5
- import read from 'read';
6
- import _ from 'lodash';
4
+ import readCb from 'read';
5
+ import { promisify } from 'util';
7
6
  import { Logger } from '../logger';
8
7
  import { Component, RegistryCli, Local } from '../../types';
8
+ import { fromPromise } from 'universalify';
9
9
 
10
10
  import handleDependencies from '../domain/handle-dependencies';
11
11
  import strings from '../../resources/index';
12
12
 
13
- const publish =
14
- ({
15
- logger,
16
- registry,
17
- local
18
- }: {
19
- logger: Logger;
20
- registry: RegistryCli;
21
- local: Local;
22
- }) =>
23
- (
24
- opts: {
13
+ const read = promisify(readCb);
14
+
15
+ const publish = ({
16
+ logger,
17
+ registry,
18
+ local
19
+ }: {
20
+ logger: Logger;
21
+ registry: RegistryCli;
22
+ local: Local;
23
+ }) =>
24
+ fromPromise(
25
+ async (opts: {
25
26
  componentPath: string;
26
27
  skipPackage?: boolean;
27
28
  username?: string;
28
29
  password?: string;
29
30
  registries?: string[];
30
- },
31
- callback: (err?: Error | string) => void
32
- ): void => {
33
- const componentPath = opts.componentPath;
34
- const skipPackage = opts.skipPackage;
35
- const packageDir = path.resolve(componentPath, '_package');
36
- const compressedPackagePath = path.resolve(componentPath, 'package.tar.gz');
37
-
38
- let errorMessage;
39
-
40
- const readPackageJson = (
41
- cb: (err: Error | null, data: Component) => void
42
- ) => fs.readJson(path.join(packageDir, 'package.json'), cb);
43
-
44
- const getCredentials = (
45
- cb: (
46
- err: Error | null,
47
- data: { username: string; password: string }
48
- ) => void
49
- ) => {
50
- if (opts.username && opts.password) {
51
- logger.ok(strings.messages.cli.USING_CREDS);
52
- return cb(null, _.pick(opts, 'username', 'password') as any);
53
- }
31
+ }): Promise<void> => {
32
+ const componentPath = opts.componentPath;
33
+ const skipPackage = opts.skipPackage;
34
+ const packageDir = path.resolve(componentPath, '_package');
35
+ const compressedPackagePath = path.resolve(
36
+ componentPath,
37
+ 'package.tar.gz'
38
+ );
39
+
40
+ let errorMessage;
41
+
42
+ const readPackageJson = () =>
43
+ fs.readJson(path.join(packageDir, 'package.json'));
44
+
45
+ const getCredentials = async (): Promise<{
46
+ username: string;
47
+ password: string;
48
+ }> => {
49
+ if (opts.username && opts.password) {
50
+ logger.ok(strings.messages.cli.USING_CREDS);
51
+ const { username, password } = opts;
52
+ return { username, password };
53
+ }
54
54
 
55
- logger.warn(strings.messages.cli.ENTER_USERNAME);
55
+ logger.warn(strings.messages.cli.ENTER_USERNAME);
56
56
 
57
- read({}, (_err, username) => {
57
+ const username = await read({});
58
58
  logger.warn(strings.messages.cli.ENTER_PASSWORD);
59
+ const password = await read({ silent: true });
59
60
 
60
- read({ silent: true }, (_err, password) => {
61
- cb(null, { username, password });
62
- });
63
- });
64
- };
65
-
66
- const compress = (cb: (error: string | Error | null) => void) => {
67
- local.compress(packageDir, compressedPackagePath, cb);
68
- };
69
-
70
- const packageAndCompress = (
71
- cb: (err: Error | string | null, data: Component) => void
72
- ) => {
73
- logger.warn(strings.messages.cli.PACKAGING(packageDir));
74
- const packageOptions = {
75
- production: true,
76
- componentPath: path.resolve(componentPath)
61
+ return { username, password };
77
62
  };
78
63
 
79
- local.package(packageOptions, (err, component) => {
80
- if (err) {
81
- return cb(err, undefined as any);
82
- }
64
+ const compress = () => local.compress(packageDir, compressedPackagePath);
83
65
 
84
- logger.warn(strings.messages.cli.COMPRESSING(compressedPackagePath));
66
+ const packageAndCompress = async (): Promise<Component> => {
67
+ logger.warn(strings.messages.cli.PACKAGING(packageDir));
68
+ const packageOptions = {
69
+ production: true,
70
+ componentPath: path.resolve(componentPath)
71
+ };
85
72
 
86
- compress(err => {
87
- if (err) {
88
- return cb(err, undefined as any);
89
- }
90
- cb(null, component);
91
- });
92
- });
93
- };
94
-
95
- const getRegistries = (
96
- cb: (err: string | null, registryLocations: string[]) => void
97
- ): void => {
98
- if (opts.registries) return cb(null, opts.registries);
73
+ const component = await local.package(packageOptions);
74
+ logger.warn(strings.messages.cli.COMPRESSING(compressedPackagePath));
75
+ await compress();
99
76
 
100
- registry.get(cb);
101
- };
77
+ return component;
78
+ };
102
79
 
103
- const putComponentToRegistry = (
104
- options: {
80
+ const putComponentToRegistry = async (options: {
105
81
  route: string;
106
82
  path: string;
107
83
  username?: string;
108
84
  password?: string;
109
- },
110
- cb: (err: string | null, data: 'ok') => void
111
- ) => {
112
- logger.warn(strings.messages.cli.PUBLISHING(options.route));
113
-
114
- registry.putComponent(options, err => {
115
- if (err) {
116
- if (err === 'Unauthorized') {
85
+ }): Promise<void> => {
86
+ logger.warn(strings.messages.cli.PUBLISHING(options.route));
87
+
88
+ try {
89
+ await registry.putComponent(options);
90
+ logger.ok(strings.messages.cli.PUBLISHED(options.route));
91
+ } catch (err: any) {
92
+ if (err === 'Unauthorized' || err.message === 'Unauthorized') {
117
93
  if (!!options.username || !!options.password) {
118
94
  logger.err(
119
95
  strings.errors.cli.PUBLISHING_FAIL(
120
96
  strings.errors.cli.INVALID_CREDENTIALS
121
97
  )
122
98
  );
123
- return cb(err, undefined as any);
99
+ throw err;
124
100
  }
125
101
 
126
102
  logger.warn(strings.messages.cli.REGISTRY_CREDENTIALS_REQUIRED);
127
103
 
128
- return getCredentials((_err, credentials) => {
129
- putComponentToRegistry(Object.assign(options, credentials), cb);
130
- });
131
- } else if ((err as any).code === 'cli_version_not_valid') {
104
+ const credentials = await getCredentials();
105
+
106
+ await putComponentToRegistry(Object.assign(options, credentials));
107
+ } else if (err.code === 'cli_version_not_valid') {
132
108
  const upgradeCommand = strings.commands.cli.UPGRADE(
133
- (err as any).details.suggestedVersion
109
+ err.details.suggestedVersion
134
110
  );
135
111
  const errorDetails =
136
112
  strings.errors.cli.OC_CLI_VERSION_NEEDS_UPGRADE(
@@ -139,107 +115,93 @@ const publish =
139
115
 
140
116
  errorMessage = strings.errors.cli.PUBLISHING_FAIL(errorDetails);
141
117
  logger.err(errorMessage);
142
- return cb(errorMessage, undefined as any);
143
- } else if ((err as any).code === 'node_version_not_valid') {
118
+
119
+ throw errorMessage;
120
+ } else if (err.code === 'node_version_not_valid') {
144
121
  const details = strings.errors.cli.NODE_CLI_VERSION_NEEDS_UPGRADE(
145
- (err as any).details.suggestedVersion
122
+ err.details.suggestedVersion
146
123
  );
147
124
 
148
125
  errorMessage = strings.errors.cli.PUBLISHING_FAIL(details);
149
126
  logger.err(errorMessage);
150
- return cb(errorMessage, undefined as any);
127
+
128
+ throw errorMessage;
151
129
  } else {
152
- if (_.isObject(err)) {
130
+ if (err.message) {
131
+ // eslint-disable-next-line no-ex-assign
132
+ err = err.message;
133
+ } else if (err && typeof err === 'object') {
153
134
  try {
135
+ // eslint-disable-next-line no-ex-assign
154
136
  err = JSON.stringify(err);
155
137
  } catch (er) {}
156
138
  }
157
- errorMessage = strings.errors.cli.PUBLISHING_FAIL(err);
139
+ errorMessage = strings.errors.cli.PUBLISHING_FAIL(String(err));
158
140
  logger.err(errorMessage);
159
- return cb(errorMessage, undefined as any);
141
+
142
+ throw errorMessage;
160
143
  }
161
- } else {
162
- logger.ok(strings.messages.cli.PUBLISHED(options.route));
163
- return cb(null, 'ok');
164
144
  }
165
- });
166
- };
167
-
168
- const publishToRegistries = (
169
- registryLocations: string[],
170
- component: Component
171
- ) => {
172
- async.eachSeries(
173
- registryLocations,
174
- (registryUrl, next) => {
145
+ };
146
+
147
+ const publishToRegistries = async (
148
+ registryLocations: string[],
149
+ component: Component
150
+ ) => {
151
+ for (const registryUrl of registryLocations) {
175
152
  const registryNormalised = registryUrl.replace(/\/$/, '');
176
153
  const componentRoute = `${registryNormalised}/${component.name}/${component.version}`;
177
- putComponentToRegistry(
178
- { route: componentRoute, path: compressedPackagePath },
179
- next as any
180
- );
181
- },
182
- err => {
183
- local.cleanup(compressedPackagePath, err2 => {
184
- if (err) {
185
- return callback(err);
186
- }
187
- callback(err2);
154
+
155
+ await putComponentToRegistry({
156
+ route: componentRoute,
157
+ path: compressedPackagePath
188
158
  });
189
159
  }
190
- );
191
- };
160
+ await local.cleanup(compressedPackagePath);
161
+ };
192
162
 
193
- getRegistries((err: string | null, registryLocations: string[]) => {
194
- if (err) {
195
- logger.err(err);
196
- return callback(err);
197
- }
163
+ try {
164
+ const registryLocations = opts.registries || (await registry.get());
198
165
 
199
- if (!skipPackage) {
200
- handleDependencies(
201
- { components: [path.resolve(componentPath)], logger },
202
- err => {
203
- if (err) {
204
- logger.err(err);
205
- return callback(err);
206
- }
207
- packageAndCompress((err, component) => {
208
- if (err) {
209
- errorMessage = strings.errors.cli.PACKAGE_CREATION_FAIL(
210
- String(err)
211
- );
212
- logger.err(errorMessage);
213
- return callback(errorMessage);
214
- }
215
-
216
- publishToRegistries(registryLocations, component);
217
- });
218
- }
219
- );
220
- } else {
221
- if (fs.existsSync(packageDir)) {
222
- readPackageJson((err, component) => {
223
- if (err) {
224
- logger.err(String(err));
225
- return callback(err);
226
- }
227
- compress(err => {
228
- if (err) {
229
- logger.err(String(err));
230
- return callback(err);
231
- }
166
+ if (!skipPackage) {
167
+ await handleDependencies({
168
+ components: [path.resolve(componentPath)],
169
+ logger
170
+ }).catch(err => {
171
+ logger.err(err);
172
+ return Promise.reject(err);
173
+ });
232
174
 
233
- publishToRegistries(registryLocations, component);
234
- });
175
+ const component = await packageAndCompress().catch(err => {
176
+ errorMessage = strings.errors.cli.PACKAGE_CREATION_FAIL(
177
+ String(err)
178
+ );
179
+ logger.err(errorMessage);
180
+ return Promise.reject(errorMessage);
235
181
  });
182
+ await publishToRegistries(registryLocations, component);
236
183
  } else {
237
- errorMessage = strings.errors.cli.PACKAGE_FOLDER_MISSING;
238
- logger.err(errorMessage);
239
- return callback(errorMessage);
184
+ if (fs.existsSync(packageDir)) {
185
+ const component = await readPackageJson().catch(err => {
186
+ logger.err(String(err));
187
+ return Promise.reject(err);
188
+ });
189
+ await compress().catch(err => {
190
+ logger.err(String(err));
191
+ return Promise.reject(err);
192
+ });
193
+ await publishToRegistries(registryLocations, component);
194
+ } else {
195
+ errorMessage = strings.errors.cli.PACKAGE_FOLDER_MISSING;
196
+ logger.err(errorMessage);
197
+ throw errorMessage;
198
+ }
240
199
  }
200
+ } catch (err) {
201
+ logger.err(String(err));
202
+ throw err;
241
203
  }
242
- });
243
- };
204
+ }
205
+ );
244
206
 
245
207
  export default publish;
@@ -1,22 +1,23 @@
1
+ import { fromPromise } from 'universalify';
1
2
  import strings from '../../resources/index';
2
3
  import { RegistryCli } from '../../types';
3
4
  import { Logger } from '../logger';
4
5
 
5
- const registryAdd =
6
- ({ registry, logger }: { logger: Logger; registry: RegistryCli }) =>
7
- (
8
- opts: { registryUrl: string },
9
- callback: (err: string | null, data: string) => void
10
- ): void => {
11
- registry.add(opts.registryUrl, err => {
12
- if (err) {
13
- logger.err(err);
14
- return callback(err, undefined as any);
15
- }
16
-
6
+ const registryAdd = ({
7
+ registry,
8
+ logger
9
+ }: {
10
+ logger: Logger;
11
+ registry: RegistryCli;
12
+ }) =>
13
+ fromPromise(async (opts: { registryUrl: string }): Promise<void> => {
14
+ try {
15
+ await registry.add(opts.registryUrl);
17
16
  logger.ok(strings.messages.cli.REGISTRY_ADDED);
18
- callback(null, 'ok');
19
- });
20
- };
17
+ } catch (err) {
18
+ logger.err(String(err));
19
+ throw err;
20
+ }
21
+ });
21
22
 
22
23
  export default registryAdd;
@@ -1,31 +1,36 @@
1
+ import { fromPromise } from 'universalify';
2
+
1
3
  import strings from '../../resources/index';
2
4
  import { RegistryCli } from '../../types';
3
5
  import { Logger } from '../logger';
4
6
 
5
- const registryLs =
6
- ({ registry, logger }: { logger: Logger; registry: RegistryCli }) =>
7
- (
8
- _opts: unknown,
9
- callback: (err: string | null, data: string[]) => void
10
- ): void => {
11
- registry.get((err, registries) => {
12
- if (err) {
13
- logger.err(strings.errors.generic(err));
14
- return callback(err, undefined as any);
15
- } else {
16
- logger.warn(strings.messages.cli.REGISTRY_LIST);
17
-
18
- if (registries.length === 0) {
19
- err = strings.errors.cli.REGISTRY_NOT_FOUND;
20
- logger.err(err);
21
- return callback(err, undefined as any);
22
- }
7
+ const registryLs = ({
8
+ registry,
9
+ logger
10
+ }: {
11
+ logger: Logger;
12
+ registry: RegistryCli;
13
+ }) =>
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ fromPromise(async (_opts: unknown): Promise<string[]> => {
16
+ try {
17
+ const registries = await registry.get();
23
18
 
24
- registries.forEach(registryLocation => logger.ok(registryLocation));
19
+ logger.warn(strings.messages.cli.REGISTRY_LIST);
25
20
 
26
- callback(null, registries);
21
+ if (registries.length === 0) {
22
+ const err = strings.errors.cli.REGISTRY_NOT_FOUND;
23
+ logger.err(err);
24
+ throw err;
27
25
  }
28
- });
29
- };
26
+
27
+ registries.forEach(registryLocation => logger.ok(registryLocation));
28
+
29
+ return registries;
30
+ } catch (err) {
31
+ logger.err(strings.errors.generic(String(err)));
32
+ throw err;
33
+ }
34
+ });
30
35
 
31
36
  export default registryLs;
@@ -1,22 +1,23 @@
1
+ import { fromPromise } from 'universalify';
1
2
  import strings from '../../resources/index';
2
3
  import { RegistryCli } from '../../types';
3
4
  import { Logger } from '../logger';
4
5
 
5
- const registryRemove =
6
- ({ registry, logger }: { logger: Logger; registry: RegistryCli }) =>
7
- (
8
- opts: { registryUrl: string },
9
- callback: (err: Error | null, data: string) => void
10
- ): void => {
11
- registry.remove(opts.registryUrl, err => {
12
- if (err) {
13
- logger.err(String(err));
14
- return callback(err, undefined as any);
15
- }
16
-
6
+ const registryRemove = ({
7
+ registry,
8
+ logger
9
+ }: {
10
+ logger: Logger;
11
+ registry: RegistryCli;
12
+ }) =>
13
+ fromPromise(async (opts: { registryUrl: string }): Promise<void> => {
14
+ try {
15
+ await registry.remove(opts.registryUrl);
17
16
  logger.ok(strings.messages.cli.REGISTRY_REMOVED);
18
- callback(null, 'ok');
19
- });
20
- };
17
+ } catch (err) {
18
+ logger.err(String(err));
19
+ throw err;
20
+ }
21
+ });
21
22
 
22
23
  export default registryRemove;
@@ -1,7 +1,9 @@
1
- const registry =
2
- () =>
3
- (_opts: unknown, callback: (err: Error | null, data: 'ok') => void): void => {
4
- callback(null, 'ok');
5
- };
1
+ import { fromPromise } from 'universalify';
2
+
3
+ const registry = () =>
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ fromPromise((_opts: unknown): Promise<void> => {
6
+ return Promise.resolve();
7
+ });
6
8
 
7
9
  export default registry;
package/src/cli/index.ts CHANGED
@@ -115,11 +115,9 @@ function processCommand(
115
115
  return yargs;
116
116
  },
117
117
  options => {
118
- // @ts-ignore Not callable
119
- facade(options, (error: unknown) => {
120
- if (error) {
121
- return process.exit(1);
122
- }
118
+ // @ts-ignore not callable
119
+ facade(options).catch(() => {
120
+ process.exit(1);
123
121
  });
124
122
  }
125
123
  );
@@ -1 +1 @@
1
- {"name":"oc-client","description":"The OpenComponents client-side javascript client","version":"0.49.7","repository":"https://github.com/opencomponents/oc/tree/master/components/oc-client","author":"Matteo Figus <matteofigus@gmail.com>","oc":{"container":false,"renderInfo":false,"minify":false,"parameters":{},"files":{"template":{"type":"oc-template-es6","hashKey":"4bdbbf7249b210dee9a729e8a611eac3dc5eae82","src":"template.js","version":"1.0.7"},"static":["src"],"dataProvider":{"type":"node.js","hashKey":"96eb8b28d43ce2093e13753e54d3f2f938dd0f7d","src":"server.js"}},"version":"0.49.7","packaged":true,"date":1639558995829},"devDependencies":{"oc-template-es6-compiler":"^1.0.1"}}
1
+ {"name":"oc-client","description":"The OpenComponents client-side javascript client","version":"0.49.8","repository":"https://github.com/opencomponents/oc/tree/master/components/oc-client","author":"Matteo Figus <matteofigus@gmail.com>","oc":{"container":false,"renderInfo":false,"minify":false,"parameters":{},"files":{"template":{"type":"oc-template-es6","hashKey":"4bdbbf7249b210dee9a729e8a611eac3dc5eae82","src":"template.js","version":"1.0.7"},"static":["src"],"dataProvider":{"type":"node.js","hashKey":"96eb8b28d43ce2093e13753e54d3f2f938dd0f7d","src":"server.js"}},"version":"0.49.8","packaged":true,"date":1648119460751},"devDependencies":{"oc-template-es6-compiler":"^1.0.1"}}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oc-client",
3
3
  "description": "The OpenComponents client-side javascript client",
4
- "version": "0.49.7",
4
+ "version": "0.49.8",
5
5
  "repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
6
6
  "author": "Matteo Figus <matteofigus@gmail.com>",
7
7
  "oc": {
package/src/globals.d.ts CHANGED
@@ -2,6 +2,44 @@ declare module 'oc-client';
2
2
  declare module 'try-require';
3
3
  declare module 'basic-auth-connect';
4
4
 
5
+ declare module 'universalify' {
6
+ export function fromCallback<
7
+ Arguments extends readonly unknown[],
8
+ ErrorValue,
9
+ ReturnValue
10
+ >(
11
+ fn: (
12
+ ...arguments_: [
13
+ ...Arguments,
14
+ (error: ErrorValue, value: ReturnValue) => void
15
+ ]
16
+ ) => void
17
+ ): {
18
+ (...arguments_: Arguments): Promise<ReturnValue>;
19
+ (
20
+ ...arguments_: [
21
+ ...Arguments,
22
+ (error: ErrorValue, value: ReturnValue) => void
23
+ ]
24
+ ): void;
25
+ };
26
+
27
+ export function fromPromise<
28
+ Arguments extends readonly unknown[],
29
+ ReturnValue
30
+ >(
31
+ fn: (...arguments_: [...Arguments]) => Promise<ReturnValue>
32
+ ): {
33
+ (...arguments_: Arguments): Promise<ReturnValue>;
34
+ (
35
+ ...arguments_: [
36
+ ...Arguments,
37
+ (error: unknown, value: ReturnValue) => void
38
+ ]
39
+ ): void;
40
+ };
41
+ }
42
+
5
43
  declare module 'semver-extra' {
6
44
  interface SemverExtra {
7
45
  max(versions: string[]): string;