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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  ## Change Log
2
2
 
3
+ ### v0.49.8
4
+ - [#1292](https://github.com/opencomponents/oc/pull/1292) dont watch files on temp folder from templates
5
+ - [#1289](https://github.com/opencomponents/oc/pull/1289) use polling on watch
6
+ - [#1288](https://github.com/opencomponents/oc/pull/1288) Update README documentation link
7
+ - [#1287](https://github.com/opencomponents/oc/pull/1287) [INTERNAL] reduce lodash usage on test/code
8
+ - [#1286](https://github.com/opencomponents/oc/pull/1286) Callback to promises
9
+ - [#1285](https://github.com/opencomponents/oc/pull/1285) [CB-INTERNAL] promisify publish route
10
+ - [#1284](https://github.com/opencomponents/oc/pull/1284) Update README.md
11
+ - [#1273](https://github.com/opencomponents/oc/pull/1273) [CB-INTERNAL] move nested renderer to promises
12
+ - [#1272](https://github.com/opencomponents/oc/pull/1272) [CB-INTERNAL] promisify registry
13
+ - [#1269](https://github.com/opencomponents/oc/pull/1269) [CB-INTERNAL] move plugins initialiser to promises
14
+ - [#1267](https://github.com/opencomponents/oc/pull/1267) [CB-INTERNAL] add express-promise-router to allow promises on routes
15
+ - [#1266](https://github.com/opencomponents/oc/pull/1266) [CB-INTERNAL] upgrade storage adapters and parse legacy ones
16
+ - [#1265](https://github.com/opencomponents/oc/pull/1265) [CB-INTERNAL] move components-details and repository to promises
17
+ - [#1258](https://github.com/opencomponents/oc/pull/1258) [INTERNAL-CB] move components cache to promises
18
+ - [#1257](https://github.com/opencomponents/oc/pull/1257) [INTERNAL-CB] Facade to promises
19
+ - [#1247](https://github.com/opencomponents/oc/pull/1247) Some repository methods to promises
20
+ - [#1246](https://github.com/opencomponents/oc/pull/1246) Registry cli to promises
21
+ - [#1245](https://github.com/opencomponents/oc/pull/1245) Local to promises
22
+ - [#1242](https://github.com/opencomponents/oc/pull/1242) move more files to promises
23
+ - [#1241](https://github.com/opencomponents/oc/pull/1241) Start moving callback based functions to promises
24
+
3
25
  ### v0.49.7
4
26
  - [#1283](https://github.com/opencomponents/oc/pull/1283) add "open" link to component preview page
5
27
  - [#1279](https://github.com/opencomponents/oc/pull/1279) improve auth flexibility allowing to pass any library on type field
package/README.md CHANGED
@@ -16,14 +16,14 @@ We have been using it for more than two years in production at OpenTable, for sh
16
16
 
17
17
  [![npm version](https://img.shields.io/npm/v/oc.svg)](https://npmjs.org/package/oc)
18
18
  [![node version](https://img.shields.io/node/v/oc.svg)](https://npmjs.org/package/oc)
19
- [![Dependency Status](https://david-dm.org/opencomponents/oc.svg)](https://david-dm.org/opencomponents/oc)
20
19
  [![Known Vulnerabilities](https://snyk.io/test/github/opencomponents/oc/badge.svg)](https://snyk.io/test/github/opencomponents/oc)
21
20
  [![downloads](https://img.shields.io/npm/dm/oc.svg?label=downloads+from+npm)](https://npmjs.org/package/oc)
22
21
  [![Join the chat at https://gitter.im/opentable/oc](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/opentable/oc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
23
22
 
24
23
  ## Links
25
24
 
26
- - [Documentation](https://github.com/opencomponents/oc/wiki)
25
+ - [Website](https://opencomponents.github.io)
26
+ - [Documentation](https://opencomponents.github.io/docs/intro)
27
27
  - [Requirements and build status](#requirements-and-build-status)
28
28
  - [Changelog](CHANGELOG.md)
29
29
  - [Awesome resources about OC](https://github.com/matteofigus/awesome-oc)
@@ -36,19 +36,6 @@ We have been using it for more than two years in production at OpenTable, for sh
36
36
 
37
37
  Disclaimer: This project is still under heavy development and the API is likely to change at any time. In case you would find any issues, check the [troubleshooting page](CONTRIBUTING.md#troubleshooting).
38
38
 
39
- [![linux build](https://img.shields.io/travis/opencomponents/oc/master.svg?label=linux+build)](http://travis-ci.org/opencomponents/oc)
40
-
41
- | Node 8 | Node 9 | Node 10 |
42
- | ---------------- | ---------------- | ----------------- |
43
- | [![Node8][1]][5] | [![Node9][2]][5] | [![Node10][3]][5] |
44
-
45
- [1]: https://travis-matrix-badges.herokuapp.com/repos/opencomponents/oc/branches/master/1
46
- [2]: https://travis-matrix-badges.herokuapp.com/repos/opencomponents/oc/branches/master/2
47
- [3]: https://travis-matrix-badges.herokuapp.com/repos/opencomponents/oc/branches/master/3
48
- [5]: https://travis-ci.org/opencomponents/oc
49
-
50
- [![windows build](https://img.shields.io/appveyor/ci/matteofigus/oc/master.svg?label=windows+build)](https://ci.appveyor.com/project/matteofigus/oc)
51
-
52
39
  ## License
53
40
 
54
41
  MIT
@@ -1,2 +1,2 @@
1
- export declare function fetchList(dirPath: string, callback: (err: Error | null, data: string[]) => void): void;
2
- export declare function remove(list: string[], callback: (err: Error | null, data: string) => void): void;
1
+ export declare function fetchList(dirPath: string): Promise<string[]>;
2
+ export declare function remove(list: string[]): Promise<void>;
@@ -4,24 +4,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.remove = exports.fetchList = void 0;
7
- const async_1 = __importDefault(require("async"));
8
7
  const fs_extra_1 = __importDefault(require("fs-extra"));
9
8
  const get_components_by_dir_1 = __importDefault(require("./get-components-by-dir"));
10
9
  const path_1 = __importDefault(require("path"));
11
10
  const getComponentsByDir = (0, get_components_by_dir_1.default)();
12
- function fetchList(dirPath, callback) {
13
- return getComponentsByDir(dirPath, (err, list) => {
14
- if (err)
15
- return callback(err);
16
- if (list.length === 0)
17
- return callback(null, []);
18
- const toRemove = list.map(folder => path_1.default.join(folder, 'node_modules'));
19
- const folderExists = (folder, cb) => fs_extra_1.default.exists(folder, exists => cb(null, exists));
20
- async_1.default.filterSeries(toRemove, folderExists, callback);
21
- });
11
+ async function fetchList(dirPath) {
12
+ const list = await getComponentsByDir(dirPath);
13
+ if (list.length === 0)
14
+ return [];
15
+ const toRemove = list.map(folder => path_1.default.join(folder, 'node_modules'));
16
+ return toRemove.filter(fs_extra_1.default.existsSync);
22
17
  }
23
18
  exports.fetchList = fetchList;
24
- function remove(list, callback) {
25
- return async_1.default.eachSeries(list, fs_extra_1.default.remove, callback);
19
+ async function remove(list) {
20
+ for (const item of list) {
21
+ await fs_extra_1.default.remove(item);
22
+ }
26
23
  }
27
24
  exports.remove = remove;
@@ -1 +1 @@
1
- export default function getComponentsByDir(): (componentsDir: string, componentsToRunOrCb: string[] | ((err: Error | null, data: string[]) => void), callbackMaybe?: ((err: Error | null, data: string[]) => void) | undefined) => void;
1
+ export default function getComponentsByDir(): (componentsDir: string, componentsToRun?: string[] | undefined) => Promise<string[]>;
@@ -6,14 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const fs_extra_1 = __importDefault(require("fs-extra"));
7
7
  const path_1 = __importDefault(require("path"));
8
8
  function getComponentsByDir() {
9
- return (componentsDir, componentsToRunOrCb, callbackMaybe) => {
10
- const componentsToRun = typeof componentsToRunOrCb === 'function'
11
- ? undefined
12
- : componentsToRunOrCb;
13
- const callback = typeof componentsToRunOrCb === 'function'
14
- ? componentsToRunOrCb
15
- : callbackMaybe;
16
- const isOcComponent = function (file) {
9
+ return async (componentsDir, componentsToRun) => {
10
+ const isOcComponent = (file) => {
17
11
  const filePath = path_1.default.resolve(componentsDir, file);
18
12
  const packagePath = path_1.default.join(filePath, 'package.json');
19
13
  let content;
@@ -29,20 +23,19 @@ function getComponentsByDir() {
29
23
  const packagedProperty = content.oc && content.oc.packaged;
30
24
  return typeof packagedProperty === 'undefined';
31
25
  };
32
- let dirContent;
33
26
  try {
34
- dirContent = fs_extra_1.default.readdirSync(componentsDir);
27
+ let dirContent = await fs_extra_1.default.readdir(componentsDir);
35
28
  if (componentsToRun) {
36
29
  dirContent = dirContent.filter(content => componentsToRun.includes(content));
37
30
  }
31
+ const components = dirContent
32
+ .filter(isOcComponent)
33
+ .map(component => path_1.default.resolve(componentsDir, component));
34
+ return components;
38
35
  }
39
36
  catch (err) {
40
- return callback(null, []);
37
+ return [];
41
38
  }
42
- const components = dirContent
43
- .filter(isOcComponent)
44
- .map(component => path_1.default.resolve(componentsDir, component));
45
- callback(null, components);
46
39
  };
47
40
  }
48
41
  exports.default = getComponentsByDir;
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const fs_extra_1 = __importDefault(require("fs-extra"));
7
7
  const path_1 = __importDefault(require("path"));
8
- const lodash_1 = __importDefault(require("lodash"));
9
8
  const settings_1 = __importDefault(require("../../resources/settings"));
10
9
  const resources_1 = __importDefault(require("../../resources/"));
11
10
  const isMockValid = (plugin) => {
@@ -19,7 +18,7 @@ const isMockValid = (plugin) => {
19
18
  const defaultRegister = (_options, _dependencies, next) => {
20
19
  next();
21
20
  };
22
- const registerStaticMocks = (mocks, logger) => lodash_1.default.map(mocks, (mockedValue, pluginName) => {
21
+ const registerStaticMocks = (mocks, logger) => Object.entries(mocks).map(([pluginName, mockedValue]) => {
23
22
  logger.ok(`├── ${pluginName} () => ${mockedValue}`);
24
23
  return {
25
24
  name: pluginName,
@@ -29,7 +28,8 @@ const registerStaticMocks = (mocks, logger) => lodash_1.default.map(mocks, (mock
29
28
  }
30
29
  };
31
30
  });
32
- const registerDynamicMocks = (ocJsonLocation, mocks, logger) => lodash_1.default.map(mocks, (source, pluginName) => {
31
+ const registerDynamicMocks = (ocJsonLocation, mocks, logger) => Object.entries(mocks)
32
+ .map(([pluginName, source]) => {
33
33
  let pluginMock;
34
34
  try {
35
35
  pluginMock = require(path_1.default.resolve(ocJsonLocation, source));
@@ -50,7 +50,8 @@ const registerDynamicMocks = (ocJsonLocation, mocks, logger) => lodash_1.default
50
50
  name: pluginName,
51
51
  register: { execute, register }
52
52
  };
53
- }).filter((pluginMock) => !!pluginMock);
53
+ })
54
+ .filter((pluginMock) => !!pluginMock);
54
55
  const findPath = (pathToResolve, fileName) => {
55
56
  const rootDir = fs_extra_1.default.realpathSync('.');
56
57
  const fileToResolve = path_1.default.join(pathToResolve, fileName);
@@ -67,6 +68,7 @@ const findPath = (pathToResolve, fileName) => {
67
68
  return fileToResolve;
68
69
  };
69
70
  function getMockedPlugins(logger, componentsDir) {
71
+ var _a, _b;
70
72
  componentsDir = path_1.default.resolve(componentsDir || '.');
71
73
  let plugins = [];
72
74
  const ocJsonFileName = settings_1.default.configFile.src.replace('./', '');
@@ -80,8 +82,8 @@ function getMockedPlugins(logger, componentsDir) {
80
82
  return plugins;
81
83
  }
82
84
  logger.warn(resources_1.default.messages.cli.REGISTERING_MOCKED_PLUGINS);
83
- plugins = plugins.concat(registerStaticMocks(content.mocks.plugins.static, logger));
84
- plugins = plugins.concat(registerDynamicMocks(ocJsonLocation, content.mocks.plugins.dynamic, logger));
85
+ plugins = plugins.concat(registerStaticMocks((_a = content.mocks.plugins.static) !== null && _a !== void 0 ? _a : {}, logger));
86
+ plugins = plugins.concat(registerDynamicMocks(ocJsonLocation, (_b = content.mocks.plugins.dynamic) !== null && _b !== void 0 ? _b : {}, logger));
85
87
  return plugins;
86
88
  }
87
89
  exports.default = getMockedPlugins;
@@ -3,4 +3,4 @@ export default function ensureCompilerIsDeclaredAsDevDependency(options: {
3
3
  componentPath: string;
4
4
  pkg: Component;
5
5
  template: string;
6
- }, cb: (err: string | null, data: string) => void): void;
6
+ }): string;
@@ -4,14 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const resources_1 = __importDefault(require("../../../resources"));
7
- function ensureCompilerIsDeclaredAsDevDependency(options, cb) {
7
+ function ensureCompilerIsDeclaredAsDevDependency(options) {
8
8
  var _a;
9
9
  const { componentPath, pkg, template } = options;
10
10
  const compilerDep = `${template}-compiler`;
11
11
  const isOk = (_a = pkg.devDependencies) === null || _a === void 0 ? void 0 : _a[compilerDep];
12
- const err = isOk
13
- ? null
14
- : resources_1.default.errors.cli.TEMPLATE_DEP_MISSING(template, componentPath);
15
- cb(err, compilerDep);
12
+ if (!isOk)
13
+ throw resources_1.default.errors.cli.TEMPLATE_DEP_MISSING(template, componentPath);
14
+ return compilerDep;
16
15
  }
17
16
  exports.default = ensureCompilerIsDeclaredAsDevDependency;
@@ -7,4 +7,4 @@ export default function getCompiler(options: {
7
7
  pkg: {
8
8
  devDependencies: Record<string, string>;
9
9
  };
10
- }, cb: (err: string | number | null, data: Template) => void): void;
10
+ }): Promise<Template>;
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const path_1 = __importDefault(require("path"));
7
7
  const clean_require_1 = __importDefault(require("../../../utils/clean-require"));
8
8
  const install_compiler_1 = __importDefault(require("./install-compiler"));
9
- function getCompiler(options, cb) {
9
+ function getCompiler(options) {
10
10
  const { compilerDep, componentPath, logger, pkg } = options;
11
11
  const compilerPath = path_1.default.join(componentPath, 'node_modules', compilerDep);
12
12
  const compiler = (0, clean_require_1.default)(compilerPath, { justTry: true });
13
13
  if (compiler) {
14
- return cb(null, compiler);
14
+ return Promise.resolve(compiler);
15
15
  }
16
16
  let dependency = compilerDep;
17
17
  if (pkg.devDependencies[compilerDep]) {
@@ -23,6 +23,6 @@ function getCompiler(options, cb) {
23
23
  dependency,
24
24
  logger
25
25
  };
26
- (0, install_compiler_1.default)(installOptions, cb);
26
+ return (0, install_compiler_1.default)(installOptions);
27
27
  }
28
28
  exports.default = getCompiler;
@@ -1,9 +1,10 @@
1
1
  import { Logger } from '../../logger';
2
+ import { Template } from '../../../types';
2
3
  export default function handleDependencies(options: {
3
4
  components: string[];
4
5
  logger: Logger;
5
6
  useComponentDependencies?: boolean;
6
- }, callback: (err: string | null, data: {
7
+ }): Promise<{
7
8
  modules: string[];
8
- templates: Array<(...args: unknown[]) => unknown>;
9
- }) => void): void;
9
+ templates: Array<Template>;
10
+ }>;
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const async_1 = __importDefault(require("async"));
7
6
  const builtin_modules_1 = __importDefault(require("builtin-modules"));
8
7
  const fs_extra_1 = __importDefault(require("fs-extra"));
9
8
  const path_1 = __importDefault(require("path"));
@@ -13,11 +12,11 @@ const install_missing_dependencies_1 = __importDefault(require("./install-missin
13
12
  const link_missing_dependencies_1 = __importDefault(require("./link-missing-dependencies"));
14
13
  const is_template_legacy_1 = __importDefault(require("../../../utils/is-template-legacy"));
15
14
  const resources_1 = __importDefault(require("../../../resources"));
16
- const getComponentPackageJson = (componentPath, cb) => fs_extra_1.default.readJson(path_1.default.join(componentPath, 'package.json'), cb);
15
+ const getComponentPackageJson = (componentPath) => fs_extra_1.default.readJson(path_1.default.join(componentPath, 'package.json'));
17
16
  const union = (a, b) => [
18
17
  ...new Set([...a, ...b])
19
18
  ];
20
- function handleDependencies(options, callback) {
19
+ async function handleDependencies(options) {
21
20
  const { components, logger, useComponentDependencies } = options;
22
21
  const dependencies = {};
23
22
  const addDependencies = (componentDependencies) => Object.entries(componentDependencies || {}).forEach(([dependency, version]) => {
@@ -27,38 +26,45 @@ function handleDependencies(options, callback) {
27
26
  const addTemplate = (templateName, template) => {
28
27
  templates[templateName] = template;
29
28
  };
30
- const setupComponentDependencies = (componentPath, done) => async_1.default.waterfall([
31
- (cb) => getComponentPackageJson(componentPath, cb),
32
- (pkg, cb) => {
33
- addDependencies(pkg.dependencies);
34
- const template = pkg.oc.files.template.type;
35
- if ((0, is_template_legacy_1.default)(template)) {
36
- return done();
37
- }
38
- cb(null, { componentPath, logger, pkg, template });
39
- },
40
- (options, cb) => (0, ensure_compiler_is_declared_as_devDependency_1.default)(options, (err, compilerDep) => cb(err, Object.assign(options, { compilerDep }))),
41
- (options, cb) => (0, get_compiler_1.default)(options, (err, compiler) => cb(err, Object.assign(options, { compiler }))),
42
- (options, cb) => {
43
- const { compiler, template } = options;
44
- addTemplate(template, compiler);
45
- cb();
29
+ const setupComponentDependencies = async (componentPath) => {
30
+ const pkg = await getComponentPackageJson(componentPath);
31
+ addDependencies(pkg.dependencies);
32
+ const template = pkg.oc.files.template.type;
33
+ if ((0, is_template_legacy_1.default)(template)) {
34
+ return;
46
35
  }
47
- ], done);
36
+ const compilerDep = (0, ensure_compiler_is_declared_as_devDependency_1.default)({
37
+ componentPath,
38
+ pkg,
39
+ template
40
+ });
41
+ Object.assign(options, { compilerDep });
42
+ const compiler = await (0, get_compiler_1.default)({
43
+ compilerDep,
44
+ componentPath,
45
+ logger,
46
+ pkg: pkg
47
+ });
48
+ Object.assign(options, { compiler });
49
+ addTemplate(template, compiler);
50
+ };
48
51
  logger.warn(resources_1.default.messages.cli.CHECKING_DEPENDENCIES);
49
- async_1.default.eachSeries(components, setupComponentDependencies, err => {
50
- if (err) {
51
- return callback(err, undefined);
52
- }
53
- const result = {
54
- modules: union(builtin_modules_1.default, Object.keys(dependencies)).sort(),
55
- templates: Object.values(templates)
56
- };
57
- const options = { dependencies, logger };
58
- if (useComponentDependencies) {
59
- return (0, link_missing_dependencies_1.default)({ ...options, componentPath: components[0] }, err => callback(err, result));
60
- }
61
- (0, install_missing_dependencies_1.default)(options, err => callback(err, result));
62
- });
52
+ for (const component of components) {
53
+ await setupComponentDependencies(component);
54
+ }
55
+ const result = {
56
+ modules: union(builtin_modules_1.default, Object.keys(dependencies)).sort(),
57
+ templates: Object.values(templates)
58
+ };
59
+ if (useComponentDependencies) {
60
+ (0, link_missing_dependencies_1.default)({
61
+ componentPath: components[0],
62
+ dependencies,
63
+ logger
64
+ });
65
+ return result;
66
+ }
67
+ await (0, install_missing_dependencies_1.default)({ dependencies, logger });
68
+ return result;
63
69
  }
64
70
  exports.default = handleDependencies;
@@ -5,4 +5,4 @@ export default function installCompiler(options: {
5
5
  componentPath: string;
6
6
  dependency: string;
7
7
  logger: Logger;
8
- }, cb: (err: string | number | null, data: Template) => void): void;
8
+ }): Promise<Template>;
@@ -26,7 +26,7 @@ const clean_require_1 = __importDefault(require("../../../utils/clean-require"))
26
26
  const is_template_valid_1 = __importDefault(require("../../../utils/is-template-valid"));
27
27
  const npm = __importStar(require("../../../utils/npm-utils"));
28
28
  const index_1 = __importDefault(require("../../../resources/index"));
29
- function installCompiler(options, cb) {
29
+ async function installCompiler(options) {
30
30
  const { compilerPath, componentPath, dependency, logger } = options;
31
31
  logger.warn(index_1.default.messages.cli.INSTALLING_DEPS(dependency, componentPath));
32
32
  const npmOptions = {
@@ -36,12 +36,19 @@ function installCompiler(options, cb) {
36
36
  silent: true,
37
37
  usePrefix: false
38
38
  };
39
- npm.installDependency(npmOptions, err => {
40
- err ? logger.err('FAIL') : logger.ok('OK');
39
+ const errorMsg = 'There was a problem while installing the compiler';
40
+ try {
41
+ await npm.installDependency(npmOptions);
42
+ logger.ok('OK');
41
43
  const compiler = (0, clean_require_1.default)(compilerPath, { justTry: true });
42
- const isOk = (0, is_template_valid_1.default)(compiler);
43
- const errorMsg = 'There was a problem while installing the compiler';
44
- cb(!err && isOk ? null : errorMsg, compiler);
45
- });
44
+ if (!(0, is_template_valid_1.default)(compiler)) {
45
+ throw errorMsg;
46
+ }
47
+ return compiler;
48
+ }
49
+ catch (err) {
50
+ logger.err('FAIL');
51
+ throw errorMsg;
52
+ }
46
53
  }
47
54
  exports.default = installCompiler;
@@ -2,4 +2,4 @@ import { Logger } from '../../logger';
2
2
  export default function installMissingDependencies(options: {
3
3
  dependencies: Record<string, string>;
4
4
  logger: Logger;
5
- }, callback: (err: string | null) => void): void;
5
+ }): Promise<void>;
@@ -26,11 +26,11 @@ const path_1 = __importDefault(require("path"));
26
26
  const get_missing_dependencies_1 = __importDefault(require("./get-missing-dependencies"));
27
27
  const npm = __importStar(require("../../../utils/npm-utils"));
28
28
  const index_1 = __importDefault(require("../../../resources/index"));
29
- function installMissingDependencies(options, callback) {
29
+ async function installMissingDependencies(options) {
30
30
  const { dependencies, logger } = options;
31
31
  const missing = (0, get_missing_dependencies_1.default)(dependencies);
32
32
  if (!missing.length) {
33
- return callback(null);
33
+ return;
34
34
  }
35
35
  const installPath = path_1.default.resolve('.');
36
36
  logger.warn(index_1.default.messages.cli.INSTALLING_DEPS(missing.join(', '), installPath));
@@ -41,15 +41,19 @@ function installMissingDependencies(options, callback) {
41
41
  silent: false,
42
42
  usePrefix: true
43
43
  };
44
- npm.installDependencies(npmOptions, err => {
45
- if (err || (0, get_missing_dependencies_1.default)(dependencies).length) {
44
+ try {
45
+ await npm.installDependencies(npmOptions);
46
+ if ((0, get_missing_dependencies_1.default)(dependencies).length) {
46
47
  logger.err('FAIL');
47
- if (err)
48
- logger.err(`${err}`);
49
- return callback(index_1.default.errors.cli.DEPENDENCIES_INSTALL_FAIL);
48
+ throw index_1.default.errors.cli.DEPENDENCIES_INSTALL_FAIL;
50
49
  }
51
50
  logger.ok('OK');
52
- callback(null);
53
- });
51
+ }
52
+ catch (err) {
53
+ logger.err('FAIL');
54
+ if (err)
55
+ logger.err(String(err));
56
+ throw index_1.default.errors.cli.DEPENDENCIES_INSTALL_FAIL;
57
+ }
54
58
  }
55
59
  exports.default = installMissingDependencies;
@@ -3,4 +3,4 @@ export default function linkMissingDependencies(options: {
3
3
  componentPath: string;
4
4
  dependencies: Record<string, string>;
5
5
  logger: Logger;
6
- }, callback: (err: string | null) => void): void;
6
+ }): Promise<void>;
@@ -8,29 +8,25 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
8
8
  const get_missing_dependencies_1 = __importDefault(require("./get-missing-dependencies"));
9
9
  const index_1 = __importDefault(require("../../../resources/index"));
10
10
  const strip_version_1 = __importDefault(require("../../../utils/strip-version"));
11
- function linkMissingDependencies(options, callback) {
11
+ async function linkMissingDependencies(options) {
12
12
  const { componentPath, dependencies, logger } = options;
13
13
  const missingDependencies = (0, get_missing_dependencies_1.default)(dependencies);
14
14
  if (!missingDependencies.length) {
15
- return callback(null);
15
+ return;
16
16
  }
17
17
  logger.warn(index_1.default.messages.cli.LINKING_DEPENDENCIES(missingDependencies.join(', ')), true);
18
18
  const symLinkType = 'dir';
19
- let symLinkError = false;
20
19
  for (const dependency of missingDependencies) {
21
20
  const moduleName = (0, strip_version_1.default)(dependency);
22
21
  const pathToComponentModule = path_1.default.resolve(componentPath, 'node_modules', moduleName);
23
22
  const pathToModule = path_1.default.resolve('.', 'node_modules', moduleName);
24
23
  try {
25
- fs_extra_1.default.ensureSymlinkSync(pathToComponentModule, pathToModule, symLinkType);
24
+ await fs_extra_1.default.ensureSymlink(pathToComponentModule, pathToModule, symLinkType);
26
25
  }
27
26
  catch (err) {
28
- symLinkError = true;
29
27
  logger.err(index_1.default.errors.cli.DEPENDENCY_LINK_FAIL(moduleName, String(err)));
28
+ throw index_1.default.errors.cli.DEPENDENCIES_LINK_FAIL;
30
29
  }
31
30
  }
32
- return !symLinkError
33
- ? callback(null)
34
- : callback(index_1.default.errors.cli.DEPENDENCIES_LINK_FAIL);
35
31
  }
36
32
  exports.default = linkMissingDependencies;
@@ -5,6 +5,6 @@ export default function initTemplate(options: {
5
5
  componentName: string;
6
6
  compiler: string;
7
7
  logger: Logger;
8
- }, callback: (err: string | null, data: {
8
+ }): Promise<{
9
9
  ok: true;
10
- }) => void): void;
10
+ }>;
@@ -22,21 +22,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- const async_1 = __importDefault(require("async"));
26
25
  const fs_extra_1 = __importDefault(require("fs-extra"));
27
26
  const path_1 = __importDefault(require("path"));
28
27
  const install_template_1 = __importDefault(require("./install-template"));
29
28
  const npm = __importStar(require("../../../utils/npm-utils"));
30
29
  const scaffold_1 = __importDefault(require("./scaffold"));
31
- function initTemplate(options, callback) {
30
+ async function initTemplate(options) {
32
31
  const { compiler, componentPath } = options;
33
32
  const compilerPath = path_1.default.join(componentPath, 'node_modules', compiler);
34
33
  const npmOptions = { initPath: componentPath, silent: true };
35
- async_1.default.series([
36
- cb => fs_extra_1.default.ensureDir(componentPath, cb),
37
- cb => npm.init(npmOptions, cb),
38
- cb => (0, install_template_1.default)(options, cb),
39
- cb => (0, scaffold_1.default)(Object.assign(options, { compilerPath }), cb)
40
- ], callback);
34
+ await fs_extra_1.default.ensureDir(componentPath);
35
+ await npm.init(npmOptions);
36
+ await (0, install_template_1.default)(options);
37
+ await (0, scaffold_1.default)(Object.assign(options, { compilerPath }));
38
+ return { ok: true };
41
39
  }
42
40
  exports.default = initTemplate;
@@ -5,7 +5,7 @@ interface Options {
5
5
  compiler: string;
6
6
  logger: Logger;
7
7
  }
8
- export default function installTemplate(options: Options, callback: (err: string | null, data: {
8
+ export default function installTemplate(options: Options): Promise<{
9
9
  ok: true;
10
- }) => void): void;
10
+ }>;
11
11
  export {};
@@ -26,8 +26,9 @@ const try_require_1 = __importDefault(require("try-require"));
26
26
  const is_template_valid_1 = __importDefault(require("../../../utils/is-template-valid"));
27
27
  const npm = __importStar(require("../../../utils/npm-utils"));
28
28
  const resources_1 = __importDefault(require("../../../resources"));
29
- function installTemplate(options, callback) {
29
+ async function installTemplate(options) {
30
30
  const { compiler, componentPath, logger, templateType } = options;
31
+ const errorMessage = 'template type not valid';
31
32
  const npmOptions = {
32
33
  dependency: compiler,
33
34
  installPath: componentPath,
@@ -36,18 +37,18 @@ function installTemplate(options, callback) {
36
37
  usePrefix: false
37
38
  };
38
39
  logger.log(resources_1.default.messages.cli.installCompiler(compiler));
39
- npm.installDependency(npmOptions, (err, result) => {
40
- const errorMessage = 'template type not valid';
41
- if (err) {
42
- return callback(errorMessage, undefined);
43
- }
40
+ try {
41
+ const result = await npm.installDependency(npmOptions);
44
42
  const installedCompiler = (0, try_require_1.default)(result.dest);
45
43
  if (!(0, is_template_valid_1.default)(installedCompiler, { compiler: true })) {
46
- return callback(errorMessage, undefined);
44
+ throw errorMessage;
47
45
  }
48
46
  const version = installedCompiler.getInfo().version;
49
47
  logger.log(resources_1.default.messages.cli.installCompilerSuccess(templateType, compiler, version));
50
- return callback(null, { ok: true });
51
- });
48
+ return { ok: true };
49
+ }
50
+ catch (err) {
51
+ throw errorMessage;
52
+ }
52
53
  }
53
54
  exports.default = installTemplate;
@@ -5,7 +5,7 @@ interface ScaffoldOptions {
5
5
  componentPath: string;
6
6
  templateType: string;
7
7
  }
8
- export default function scaffold(options: ScaffoldOptions, callback: (err: string | null, data: {
8
+ export default function scaffold(options: ScaffoldOptions): Promise<{
9
9
  ok: true;
10
- }) => void): void;
10
+ }>;
11
11
  export {};