netlify-cli 17.3.2 → 17.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/README.md +2 -138
  2. package/npm-shrinkwrap.json +76 -76
  3. package/package.json +16 -15
  4. package/src/commands/addons/addons-auth.mjs +27 -30
  5. package/src/commands/addons/addons-config.mjs +145 -154
  6. package/src/commands/addons/addons-create.mjs +94 -108
  7. package/src/commands/addons/addons-delete.mjs +36 -41
  8. package/src/commands/addons/addons-list.mjs +38 -42
  9. package/src/commands/addons/addons.mjs +26 -28
  10. package/src/commands/addons/index.mjs +1 -1
  11. package/src/commands/api/api.mjs +45 -53
  12. package/src/commands/api/index.mjs +1 -1
  13. package/src/commands/base-command.mjs +597 -684
  14. package/src/commands/blobs/blobs-delete.mjs +35 -0
  15. package/src/commands/blobs/blobs-get.mjs +44 -0
  16. package/src/commands/blobs/blobs-list.mjs +48 -0
  17. package/src/commands/blobs/blobs-set.mjs +54 -0
  18. package/src/commands/blobs/blobs.mjs +32 -0
  19. package/src/commands/blobs/index.mjs +1 -0
  20. package/src/commands/build/build.mjs +55 -67
  21. package/src/commands/build/index.mjs +1 -1
  22. package/src/commands/completion/completion.mjs +41 -46
  23. package/src/commands/completion/index.mjs +1 -1
  24. package/src/commands/deploy/deploy.mjs +675 -710
  25. package/src/commands/deploy/index.mjs +1 -1
  26. package/src/commands/dev/dev-exec.mjs +20 -32
  27. package/src/commands/dev/dev.mjs +217 -302
  28. package/src/commands/dev/index.mjs +1 -1
  29. package/src/commands/dev/types.d.ts +30 -0
  30. package/src/commands/env/env-clone.mjs +157 -184
  31. package/src/commands/env/env-get.mjs +49 -68
  32. package/src/commands/env/env-import.mjs +100 -119
  33. package/src/commands/env/env-list.mjs +104 -129
  34. package/src/commands/env/env-set.mjs +160 -185
  35. package/src/commands/env/env-unset.mjs +104 -122
  36. package/src/commands/env/env.mjs +28 -30
  37. package/src/commands/env/index.mjs +1 -1
  38. package/src/commands/functions/functions-build.mjs +29 -41
  39. package/src/commands/functions/functions-create.mjs +533 -601
  40. package/src/commands/functions/functions-invoke.mjs +193 -216
  41. package/src/commands/functions/functions-list.mjs +45 -55
  42. package/src/commands/functions/functions-serve.mjs +51 -61
  43. package/src/commands/functions/functions.mjs +26 -32
  44. package/src/commands/functions/index.mjs +1 -1
  45. package/src/commands/index.mjs +2 -2
  46. package/src/commands/init/index.mjs +1 -1
  47. package/src/commands/init/init.mjs +138 -167
  48. package/src/commands/integration/deploy.mjs +337 -399
  49. package/src/commands/integration/index.mjs +12 -13
  50. package/src/commands/link/index.mjs +1 -1
  51. package/src/commands/link/link.mjs +298 -317
  52. package/src/commands/lm/index.mjs +1 -1
  53. package/src/commands/lm/lm-info.mjs +23 -31
  54. package/src/commands/lm/lm-install.mjs +13 -17
  55. package/src/commands/lm/lm-setup.mjs +80 -84
  56. package/src/commands/lm/lm-uninstall.mjs +7 -12
  57. package/src/commands/lm/lm.mjs +18 -22
  58. package/src/commands/login/index.mjs +1 -1
  59. package/src/commands/login/login.mjs +35 -41
  60. package/src/commands/logout/index.mjs +1 -1
  61. package/src/commands/logout/logout.mjs +25 -31
  62. package/src/commands/main.mjs +166 -201
  63. package/src/commands/open/index.mjs +1 -1
  64. package/src/commands/open/open-admin.mjs +15 -18
  65. package/src/commands/open/open-site.mjs +16 -19
  66. package/src/commands/open/open.mjs +24 -27
  67. package/src/commands/recipes/common.mjs +23 -34
  68. package/src/commands/recipes/index.mjs +1 -1
  69. package/src/commands/recipes/recipes-list.mjs +13 -20
  70. package/src/commands/recipes/recipes.mjs +59 -72
  71. package/src/commands/serve/index.mjs +1 -1
  72. package/src/commands/serve/serve.mjs +142 -189
  73. package/src/commands/sites/index.mjs +2 -2
  74. package/src/commands/sites/sites-create-template.mjs +214 -236
  75. package/src/commands/sites/sites-create.mjs +145 -157
  76. package/src/commands/sites/sites-delete.mjs +75 -81
  77. package/src/commands/sites/sites-list.mjs +63 -66
  78. package/src/commands/sites/sites.mjs +18 -20
  79. package/src/commands/status/index.mjs +1 -1
  80. package/src/commands/status/status-hooks.mjs +32 -34
  81. package/src/commands/status/status.mjs +99 -106
  82. package/src/commands/switch/index.mjs +1 -1
  83. package/src/commands/switch/switch.mjs +32 -37
  84. package/src/commands/types.d.ts +31 -0
  85. package/src/commands/unlink/index.mjs +1 -1
  86. package/src/commands/unlink/unlink.mjs +23 -29
  87. package/src/commands/watch/index.mjs +1 -1
  88. package/src/commands/watch/watch.mjs +91 -105
  89. package/src/functions-templates/javascript/hello/{{name}}.js +2 -3
  90. package/src/lib/account.mjs +4 -5
  91. package/src/lib/api.mjs +22 -20
  92. package/src/lib/blobs/blobs.mjs +36 -45
  93. package/src/lib/build.mjs +82 -85
  94. package/src/lib/completion/constants.mjs +2 -4
  95. package/src/lib/completion/generate-autocompletion.mjs +33 -36
  96. package/src/lib/completion/get-autocompletion.mjs +31 -35
  97. package/src/lib/completion/index.mjs +1 -1
  98. package/src/lib/completion/script.mjs +12 -19
  99. package/src/lib/edge-functions/bootstrap.mjs +3 -5
  100. package/src/lib/edge-functions/consts.mjs +9 -10
  101. package/src/lib/edge-functions/deploy.mjs +28 -34
  102. package/src/lib/edge-functions/editor-helper.mjs +29 -42
  103. package/src/lib/edge-functions/headers.mjs +24 -26
  104. package/src/lib/edge-functions/internal.mjs +38 -44
  105. package/src/lib/edge-functions/proxy.mjs +229 -228
  106. package/src/lib/edge-functions/registry.mjs +473 -574
  107. package/src/lib/exec-fetcher.mjs +115 -122
  108. package/src/lib/fs.mjs +28 -27
  109. package/src/lib/functions/background.mjs +16 -20
  110. package/src/lib/functions/config.mjs +12 -9
  111. package/src/lib/functions/form-submissions-handler.mjs +143 -149
  112. package/src/lib/functions/local-proxy.mjs +40 -44
  113. package/src/lib/functions/memoized-build.mjs +19 -21
  114. package/src/lib/functions/netlify-function.mjs +269 -249
  115. package/src/lib/functions/registry.mjs +509 -568
  116. package/src/lib/functions/runtimes/go/index.mjs +62 -71
  117. package/src/lib/functions/runtimes/index.mjs +8 -15
  118. package/src/lib/functions/runtimes/js/builders/netlify-lambda.mjs +55 -64
  119. package/src/lib/functions/runtimes/js/builders/zisi.mjs +135 -154
  120. package/src/lib/functions/runtimes/js/constants.mjs +1 -1
  121. package/src/lib/functions/runtimes/js/index.mjs +92 -109
  122. package/src/lib/functions/runtimes/js/worker.mjs +43 -45
  123. package/src/lib/functions/runtimes/rust/index.mjs +64 -73
  124. package/src/lib/functions/scheduled.mjs +70 -88
  125. package/src/lib/functions/server.mjs +269 -327
  126. package/src/lib/functions/synchronous.mjs +118 -147
  127. package/src/lib/functions/utils.mjs +38 -46
  128. package/src/lib/geo-location.mjs +69 -81
  129. package/src/lib/http-agent.mjs +87 -90
  130. package/src/lib/images/proxy.mjs +97 -99
  131. package/src/lib/log.mjs +6 -9
  132. package/src/lib/path.mjs +2 -1
  133. package/src/lib/render-error-template.mjs +19 -20
  134. package/src/lib/settings.mjs +17 -19
  135. package/src/lib/spinner.mjs +21 -23
  136. package/src/lib/string.mjs +4 -2
  137. package/src/recipes/vscode/index.mjs +69 -85
  138. package/src/recipes/vscode/settings.mjs +53 -58
  139. package/src/utils/addons/compare.mjs +31 -32
  140. package/src/utils/addons/diffs/index.mjs +16 -17
  141. package/src/utils/addons/diffs/options.mjs +99 -101
  142. package/src/utils/addons/prepare.mjs +100 -97
  143. package/src/utils/addons/prompts.mjs +73 -76
  144. package/src/utils/addons/render.mjs +33 -36
  145. package/src/utils/addons/validation.mjs +19 -15
  146. package/src/utils/banner.mjs +11 -16
  147. package/src/utils/build-info.mjs +65 -66
  148. package/src/utils/command-helpers.mjs +185 -199
  149. package/src/utils/create-deferred.mjs +9 -12
  150. package/src/utils/create-stream-promise.mjs +54 -47
  151. package/src/utils/deploy/constants.mjs +9 -11
  152. package/src/utils/deploy/deploy-site.mjs +162 -182
  153. package/src/utils/deploy/hash-config.mjs +21 -21
  154. package/src/utils/deploy/hash-files.mjs +34 -38
  155. package/src/utils/deploy/hash-fns.mjs +149 -154
  156. package/src/utils/deploy/hasher-segments.mjs +58 -52
  157. package/src/utils/deploy/upload-files.mjs +99 -113
  158. package/src/utils/deploy/util.mjs +85 -91
  159. package/src/utils/detect-server-settings.mjs +236 -268
  160. package/src/utils/dev.mjs +163 -178
  161. package/src/utils/dot-env.mjs +37 -42
  162. package/src/utils/env/index.mjs +148 -148
  163. package/src/utils/execa.mjs +9 -13
  164. package/src/utils/feature-flags.mjs +6 -5
  165. package/src/utils/framework-server.mjs +43 -52
  166. package/src/utils/functions/constants.mjs +1 -1
  167. package/src/utils/functions/functions.mjs +30 -40
  168. package/src/utils/functions/get-functions.mjs +28 -29
  169. package/src/utils/functions/index.mjs +3 -3
  170. package/src/utils/get-global-config.mjs +33 -36
  171. package/src/utils/get-package-json.mjs +14 -15
  172. package/src/utils/get-repo-data.mjs +54 -64
  173. package/src/utils/get-site.mjs +14 -14
  174. package/src/utils/gh-auth.mjs +79 -100
  175. package/src/utils/gitignore.mjs +37 -40
  176. package/src/utils/headers.mjs +33 -35
  177. package/src/utils/hooks/requires-site-info.mjs +26 -22
  178. package/src/utils/init/config-github.mjs +207 -219
  179. package/src/utils/init/config-manual.mjs +83 -100
  180. package/src/utils/init/config.mjs +25 -26
  181. package/src/utils/init/node-version.mjs +23 -30
  182. package/src/utils/init/plugins.mjs +12 -8
  183. package/src/utils/init/utils.mjs +152 -172
  184. package/src/utils/live-tunnel.mjs +118 -141
  185. package/src/utils/lm/install.mjs +220 -259
  186. package/src/utils/lm/requirements.mjs +54 -63
  187. package/src/utils/lm/steps.mjs +31 -31
  188. package/src/utils/lm/ui.mjs +13 -20
  189. package/src/utils/open-browser.mjs +31 -32
  190. package/src/utils/parse-raw-flags.mjs +39 -35
  191. package/src/utils/proxy-server.mjs +84 -71
  192. package/src/utils/proxy.mjs +696 -750
  193. package/src/utils/read-repo-url.mjs +48 -47
  194. package/src/utils/redirects.mjs +49 -49
  195. package/src/utils/request-id.mjs +2 -4
  196. package/src/utils/rules-proxy.mjs +96 -100
  197. package/src/utils/run-build.mjs +109 -132
  198. package/src/utils/shell.mjs +99 -106
  199. package/src/utils/sign-redirect.mjs +14 -14
  200. package/src/utils/sites/utils.mjs +48 -55
  201. package/src/utils/state-config.mjs +101 -101
  202. package/src/utils/static-server.mjs +28 -34
  203. package/src/utils/telemetry/index.mjs +2 -2
  204. package/src/utils/telemetry/report-error.mjs +45 -49
  205. package/src/utils/telemetry/request.mjs +36 -43
  206. package/src/utils/telemetry/telemetry.mjs +90 -105
  207. package/src/utils/telemetry/utils.mjs +5 -6
  208. package/src/utils/telemetry/validation.mjs +55 -53
  209. package/src/utils/types.d.ts +46 -0
  210. package/src/utils/validation.mjs +10 -13
@@ -1,120 +1,106 @@
1
- import fs from 'fs'
2
-
3
- import backoff from 'backoff'
4
- import pMap from 'p-map'
5
-
6
- import { UPLOAD_INITIAL_DELAY, UPLOAD_MAX_DELAY, UPLOAD_RANDOM_FACTOR } from './constants.mjs'
7
-
1
+ import fs from 'fs';
2
+ // @ts-expect-error TS(7016) FIXME: Could not find a declaration file for module 'back... Remove this comment to see the full error message
3
+ import backoff from 'backoff';
4
+ import pMap from 'p-map';
5
+ import { UPLOAD_INITIAL_DELAY, UPLOAD_MAX_DELAY, UPLOAD_RANDOM_FACTOR } from './constants.mjs';
6
+ // @ts-expect-error TS(7006) FIXME: Parameter 'api' implicitly has an 'any' type.
8
7
  const uploadFiles = async (api, deployId, uploadList, { concurrentUpload, maxRetry, statusCb }) => {
9
- if (!concurrentUpload || !statusCb || !maxRetry) throw new Error('Missing required option concurrentUpload')
10
- statusCb({
11
- type: 'upload',
12
- msg: `Uploading ${uploadList.length} files`,
13
- phase: 'start',
14
- })
15
-
16
- const uploadFile = async (fileObj, index) => {
17
- const { assetType, body, filepath, invocationMode, normalizedPath, runtime } = fileObj
18
-
19
- const readStreamCtor = () => body ?? fs.createReadStream(filepath)
20
-
8
+ if (!concurrentUpload || !statusCb || !maxRetry)
9
+ throw new Error('Missing required option concurrentUpload');
21
10
  statusCb({
22
- type: 'upload',
23
- msg: `(${index}/${uploadList.length}) Uploading ${normalizedPath}...`,
24
- phase: 'progress',
25
- })
26
- let response
27
- switch (assetType) {
28
- case 'file': {
29
- response = await retryUpload(
30
- () =>
31
- api.uploadDeployFile({
32
- body: readStreamCtor,
33
- deployId,
34
- path: encodeURI(normalizedPath),
35
- }),
36
- maxRetry,
37
- )
38
- break
39
- }
40
- case 'function': {
41
- response = await retryUpload((retryCount) => {
42
- const params = {
43
- body: readStreamCtor,
44
- deployId,
45
- invocationMode,
46
- name: encodeURI(normalizedPath),
47
- runtime,
48
- }
49
-
50
- if (retryCount > 0) {
51
- params.xNfRetryCount = retryCount
52
- }
53
-
54
- return api.uploadDeployFunction(params)
55
- }, maxRetry)
56
- break
57
- }
58
- default: {
59
- const error = new Error('File Object missing assetType property')
60
- error.fileObj = fileObj
61
- throw error
62
- }
63
- }
64
-
65
- return response
66
- }
67
-
68
- const results = await pMap(uploadList, uploadFile, { concurrency: concurrentUpload })
69
- statusCb({
70
- type: 'upload',
71
- msg: `Finished uploading ${uploadList.length} assets`,
72
- phase: 'stop',
73
- })
74
- return results
75
- }
76
-
77
- const retryUpload = (uploadFn, maxRetry) =>
78
- new Promise((resolve, reject) => {
79
- let lastError
80
-
11
+ type: 'upload',
12
+ msg: `Uploading ${uploadList.length} files`,
13
+ phase: 'start',
14
+ });
15
+ // @ts-expect-error TS(7006) FIXME: Parameter 'fileObj' implicitly has an 'any' type.
16
+ const uploadFile = async (fileObj, index) => {
17
+ const { assetType, body, filepath, invocationMode, normalizedPath, runtime } = fileObj;
18
+ const readStreamCtor = () => body ?? fs.createReadStream(filepath);
19
+ statusCb({
20
+ type: 'upload',
21
+ msg: `(${index}/${uploadList.length}) Uploading ${normalizedPath}...`,
22
+ phase: 'progress',
23
+ });
24
+ let response;
25
+ switch (assetType) {
26
+ case 'file': {
27
+ response = await retryUpload(() => api.uploadDeployFile({
28
+ body: readStreamCtor,
29
+ deployId,
30
+ path: encodeURI(normalizedPath),
31
+ }), maxRetry);
32
+ break;
33
+ }
34
+ case 'function': {
35
+ // @ts-expect-error TS(7006) FIXME: Parameter 'retryCount' implicitly has an 'any' typ... Remove this comment to see the full error message
36
+ response = await retryUpload((retryCount) => {
37
+ const params = {
38
+ body: readStreamCtor,
39
+ deployId,
40
+ invocationMode,
41
+ name: encodeURI(normalizedPath),
42
+ runtime,
43
+ };
44
+ if (retryCount > 0) {
45
+ // @ts-expect-error TS(2339) FIXME: Property 'xNfRetryCount' does not exist on type '{... Remove this comment to see the full error message
46
+ params.xNfRetryCount = retryCount;
47
+ }
48
+ return api.uploadDeployFunction(params);
49
+ }, maxRetry);
50
+ break;
51
+ }
52
+ default: {
53
+ const error = new Error('File Object missing assetType property');
54
+ // @ts-expect-error TS(2339) FIXME: Property 'fileObj' does not exist on type 'Error'.
55
+ error.fileObj = fileObj;
56
+ throw error;
57
+ }
58
+ }
59
+ return response;
60
+ };
61
+ const results = await pMap(uploadList, uploadFile, { concurrency: concurrentUpload });
62
+ statusCb({
63
+ type: 'upload',
64
+ msg: `Finished uploading ${uploadList.length} assets`,
65
+ phase: 'stop',
66
+ });
67
+ return results;
68
+ };
69
+ // @ts-expect-error TS(7006) FIXME: Parameter 'uploadFn' implicitly has an 'any' type.
70
+ const retryUpload = (uploadFn, maxRetry) => new Promise((resolve, reject) => {
71
+ // @ts-expect-error TS(7034) FIXME: Variable 'lastError' implicitly has type 'any' in ... Remove this comment to see the full error message
72
+ let lastError;
81
73
  const fibonacciBackoff = backoff.fibonacci({
82
- randomisationFactor: UPLOAD_RANDOM_FACTOR,
83
- initialDelay: UPLOAD_INITIAL_DELAY,
84
- maxDelay: UPLOAD_MAX_DELAY,
85
- })
86
-
74
+ randomisationFactor: UPLOAD_RANDOM_FACTOR,
75
+ initialDelay: UPLOAD_INITIAL_DELAY,
76
+ maxDelay: UPLOAD_MAX_DELAY,
77
+ });
87
78
  const tryUpload = async (retryIndex = -1) => {
88
- try {
89
- const results = await uploadFn(retryIndex + 1)
90
-
91
- return resolve(results)
92
- } catch (error) {
93
- lastError = error
94
-
95
- // observed errors: 408, 401 (4** swallowed), 502
96
- if (error.status >= 400 || error.name === 'FetchError') {
97
- fibonacciBackoff.backoff()
98
- return
79
+ try {
80
+ const results = await uploadFn(retryIndex + 1);
81
+ return resolve(results);
82
+ }
83
+ catch (error) {
84
+ lastError = error;
85
+ // observed errors: 408, 401 (4** swallowed), 502
86
+ // @ts-expect-error TS(2571) FIXME: Object is of type 'unknown'.
87
+ if (error.status >= 400 || error.name === 'FetchError') {
88
+ fibonacciBackoff.backoff();
89
+ return;
90
+ }
91
+ return reject(error);
99
92
  }
100
- return reject(error)
101
- }
102
- }
103
-
104
- fibonacciBackoff.failAfter(maxRetry)
105
-
93
+ };
94
+ fibonacciBackoff.failAfter(maxRetry);
106
95
  fibonacciBackoff.on('backoff', () => {
107
- // Do something when backoff starts, e.g. show to the
108
- // user the delay before next reconnection attempt.
109
- })
110
-
111
- fibonacciBackoff.on('ready', tryUpload)
112
-
96
+ // Do something when backoff starts, e.g. show to the
97
+ // user the delay before next reconnection attempt.
98
+ });
99
+ fibonacciBackoff.on('ready', tryUpload);
113
100
  fibonacciBackoff.on('fail', () => {
114
- reject(lastError)
115
- })
116
-
117
- tryUpload()
118
- })
119
-
120
- export default uploadFiles
101
+ // @ts-expect-error TS(7005) FIXME: Variable 'lastError' implicitly has an 'any' type.
102
+ reject(lastError);
103
+ });
104
+ tryUpload();
105
+ });
106
+ export default uploadFiles;
@@ -1,99 +1,93 @@
1
- // @ts-check
2
- import { sep } from 'path'
3
-
4
- import pWaitFor from 'p-wait-for'
5
-
6
- import { DEPLOY_POLL } from './constants.mjs'
7
-
1
+ import { sep } from 'path';
2
+ import pWaitFor from 'p-wait-for';
3
+ import { DEPLOY_POLL } from './constants.mjs';
8
4
  // normalize windows paths to unix paths
5
+ // @ts-expect-error TS(7006) FIXME: Parameter 'relname' implicitly has an 'any' type.
9
6
  export const normalizePath = (relname) => {
10
- if (relname.includes('#') || relname.includes('?')) {
11
- throw new Error(`Invalid filename ${relname}. Deployed filenames cannot contain # or ? characters`)
12
- }
13
- return relname.split(sep).join('/')
14
- }
15
-
7
+ if (relname.includes('#') || relname.includes('?')) {
8
+ throw new Error(`Invalid filename ${relname}. Deployed filenames cannot contain # or ? characters`);
9
+ }
10
+ return relname.split(sep).join('/');
11
+ };
16
12
  // poll an async deployId until its done diffing
13
+ // @ts-expect-error TS(7006) FIXME: Parameter 'api' implicitly has an 'any' type.
17
14
  export const waitForDiff = async (api, deployId, siteId, timeout) => {
18
- // capture ready deploy during poll
19
- let deploy
20
-
21
- const loadDeploy = async () => {
22
- const siteDeploy = await api.getSiteDeploy({ siteId, deployId })
23
-
24
- switch (siteDeploy.state) {
25
- // https://github.com/netlify/bitballoon/blob/master/app/models/deploy.rb#L21-L33
26
- case 'error': {
27
- const deployError = new Error(siteDeploy.error_message || `Deploy ${deployId} had an error`)
28
- deployError.deploy = siteDeploy
29
- throw deployError
30
- }
31
- case 'prepared':
32
- case 'uploading':
33
- case 'uploaded':
34
- case 'ready': {
35
- deploy = siteDeploy
36
- return true
37
- }
38
- case 'preparing':
39
- default: {
40
- return false
41
- }
42
- }
43
- }
44
-
45
- await pWaitFor(loadDeploy, {
46
- interval: DEPLOY_POLL,
47
- timeout: {
48
- milliseconds: timeout,
49
- message: 'Timeout while waiting for deploy',
50
- },
51
- })
52
-
53
- return deploy
54
- }
55
-
15
+ // capture ready deploy during poll
16
+ let deploy;
17
+ const loadDeploy = async () => {
18
+ const siteDeploy = await api.getSiteDeploy({ siteId, deployId });
19
+ switch (siteDeploy.state) {
20
+ // https://github.com/netlify/bitballoon/blob/master/app/models/deploy.rb#L21-L33
21
+ case 'error': {
22
+ const deployError = new Error(siteDeploy.error_message || `Deploy ${deployId} had an error`);
23
+ // @ts-expect-error TS(2339) FIXME: Property 'deploy' does not exist on type 'Error'.
24
+ deployError.deploy = siteDeploy;
25
+ throw deployError;
26
+ }
27
+ case 'prepared':
28
+ case 'uploading':
29
+ case 'uploaded':
30
+ case 'ready': {
31
+ deploy = siteDeploy;
32
+ return true;
33
+ }
34
+ case 'preparing':
35
+ default: {
36
+ return false;
37
+ }
38
+ }
39
+ };
40
+ await pWaitFor(loadDeploy, {
41
+ interval: DEPLOY_POLL,
42
+ timeout: {
43
+ milliseconds: timeout,
44
+ message: 'Timeout while waiting for deploy',
45
+ },
46
+ });
47
+ return deploy;
48
+ };
56
49
  // Poll a deployId until its ready
50
+ // @ts-expect-error TS(7006) FIXME: Parameter 'api' implicitly has an 'any' type.
57
51
  export const waitForDeploy = async (api, deployId, siteId, timeout) => {
58
- // capture ready deploy during poll
59
- let deploy
60
-
61
- const loadDeploy = async () => {
62
- const siteDeploy = await api.getSiteDeploy({ siteId, deployId })
63
- switch (siteDeploy.state) {
64
- // https://github.com/netlify/bitballoon/blob/master/app/models/deploy.rb#L21-L33
65
- case 'error': {
66
- const deployError = new Error(siteDeploy.error_message || `Deploy ${deployId} had an error`)
67
- deployError.deploy = siteDeploy
68
- throw deployError
69
- }
70
- case 'ready': {
71
- deploy = siteDeploy
72
- return true
73
- }
74
- case 'preparing':
75
- case 'prepared':
76
- case 'uploaded':
77
- case 'uploading':
78
- default: {
79
- return false
80
- }
81
- }
82
- }
83
-
84
- await pWaitFor(loadDeploy, {
85
- interval: DEPLOY_POLL,
86
- timeout: {
87
- milliseconds: timeout,
88
- message: 'Timeout while waiting for deploy',
89
- },
90
- })
91
-
92
- return deploy
93
- }
94
-
52
+ // capture ready deploy during poll
53
+ let deploy;
54
+ const loadDeploy = async () => {
55
+ const siteDeploy = await api.getSiteDeploy({ siteId, deployId });
56
+ switch (siteDeploy.state) {
57
+ // https://github.com/netlify/bitballoon/blob/master/app/models/deploy.rb#L21-L33
58
+ case 'error': {
59
+ const deployError = new Error(siteDeploy.error_message || `Deploy ${deployId} had an error`);
60
+ // @ts-expect-error TS(2339) FIXME: Property 'deploy' does not exist on type 'Error'.
61
+ deployError.deploy = siteDeploy;
62
+ throw deployError;
63
+ }
64
+ case 'ready': {
65
+ deploy = siteDeploy;
66
+ return true;
67
+ }
68
+ case 'preparing':
69
+ case 'prepared':
70
+ case 'uploaded':
71
+ case 'uploading':
72
+ default: {
73
+ return false;
74
+ }
75
+ }
76
+ };
77
+ await pWaitFor(loadDeploy, {
78
+ interval: DEPLOY_POLL,
79
+ timeout: {
80
+ milliseconds: timeout,
81
+ message: 'Timeout while waiting for deploy',
82
+ },
83
+ });
84
+ return deploy;
85
+ };
95
86
  // Transform the fileShaMap and fnShaMap into a generic shaMap that file-uploader.js can use
87
+ // @ts-expect-error TS(7006) FIXME: Parameter 'required' implicitly has an 'any' type.
96
88
  export const getUploadList = (required, shaMap) => {
97
- if (!required || !shaMap) return []
98
- return required.flatMap((sha) => shaMap[sha])
99
- }
89
+ if (!required || !shaMap)
90
+ return [];
91
+ // @ts-expect-error TS(7006) FIXME: Parameter 'sha' implicitly has an 'any' type.
92
+ return required.flatMap((sha) => shaMap[sha]);
93
+ };