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,92 +1,88 @@
1
- // @ts-check
2
- import path from 'path'
3
- import process from 'process'
4
-
5
- import { fetchLatest, fetchVersion, newerVersion, updateAvailable } from 'gh-release-fetch'
6
- import isExe from 'isexe'
7
-
8
- import { NETLIFYDEVWARN, error, getTerminalLink, log } from '../utils/command-helpers.mjs'
9
- import execa from '../utils/execa.mjs'
10
-
11
- const isWindows = () => process.platform === 'win32'
12
-
13
- const getRepository = ({ packageName }) => `netlify/${packageName}`
14
-
15
- export const getExecName = ({ execName }) => (isWindows() ? `${execName}.exe` : execName)
16
-
1
+ import path from 'path';
2
+ import process from 'process';
3
+ import { fetchLatest, fetchVersion, newerVersion, updateAvailable } from 'gh-release-fetch';
4
+ // @ts-expect-error TS(7016) FIXME: Could not find a declaration file for module 'isex... Remove this comment to see the full error message
5
+ import isExe from 'isexe';
6
+ import { NETLIFYDEVWARN, error, getTerminalLink, log } from '../utils/command-helpers.mjs';
7
+ // @ts-expect-error TS(7034) FIXME: Variable 'execa' implicitly has type 'any' in some... Remove this comment to see the full error message
8
+ import execa from '../utils/execa.mjs';
9
+ const isWindows = () => process.platform === 'win32';
10
+ // @ts-expect-error TS(7031) FIXME: Binding element 'packageName' implicitly has an 'a... Remove this comment to see the full error message
11
+ const getRepository = ({ packageName }) => `netlify/${packageName}`;
12
+ // @ts-expect-error TS(7031) FIXME: Binding element 'execName' implicitly has an 'any'... Remove this comment to see the full error message
13
+ export const getExecName = ({ execName }) => (isWindows() ? `${execName}.exe` : execName);
17
14
  const getOptions = () => {
18
- // this is used in out CI tests to avoid hitting GitHub API limit
19
- // when calling gh-release-fetch
20
- if (process.env.NETLIFY_TEST_GITHUB_TOKEN) {
21
- return {
22
- headers: { Authorization: `token ${process.env.NETLIFY_TEST_GITHUB_TOKEN}` },
15
+ // this is used in out CI tests to avoid hitting GitHub API limit
16
+ // when calling gh-release-fetch
17
+ if (process.env.NETLIFY_TEST_GITHUB_TOKEN) {
18
+ return {
19
+ headers: { Authorization: `token ${process.env.NETLIFY_TEST_GITHUB_TOKEN}` },
20
+ };
23
21
  }
24
- }
25
- }
26
-
22
+ };
23
+ // @ts-expect-error TS(7031) FIXME: Binding element 'currentVersion' implicitly has an... Remove this comment to see the full error message
27
24
  const isVersionOutdated = async ({ currentVersion, latestVersion, packageName }) => {
28
- if (latestVersion) {
29
- return newerVersion(latestVersion, currentVersion)
30
- }
31
- const options = getOptions()
32
- const outdated = await updateAvailable(getRepository({ packageName }), currentVersion, options)
33
- return outdated
34
- }
35
-
36
- export const shouldFetchLatestVersion = async ({
37
- binPath,
38
- execArgs,
39
- execName,
40
- latestVersion,
41
- packageName,
42
- pattern,
43
- }) => {
44
- const execPath = path.join(binPath, getExecName({ execName }))
45
-
46
- const exists = await isExe(execPath, { ignoreErrors: true })
47
- if (!exists) {
48
- return true
49
- }
50
-
51
- const { stdout } = await execa(execPath, execArgs)
52
-
53
- if (!stdout) {
54
- return false
55
- }
56
-
57
- const match = stdout.match(new RegExp(pattern))
58
- if (!match) {
59
- return false
60
- }
61
-
62
- try {
63
- const [, currentVersion] = match
64
- const outdated = await isVersionOutdated({
65
- packageName,
66
- currentVersion,
67
- latestVersion,
68
- })
69
- return outdated
70
- } catch (error_) {
71
- if (exists) {
72
- log(NETLIFYDEVWARN, `failed checking for new version of '${packageName}'. Using existing version`)
73
- return false
25
+ if (latestVersion) {
26
+ return newerVersion(latestVersion, currentVersion);
74
27
  }
75
- throw error_
76
- }
77
- }
78
-
28
+ const options = getOptions();
29
+ const outdated = await updateAvailable(getRepository({ packageName }), currentVersion, options);
30
+ return outdated;
31
+ };
32
+ export const shouldFetchLatestVersion = async ({
33
+ // @ts-expect-error TS(7031) FIXME: Binding element 'binPath' implicitly has an 'any' ... Remove this comment to see the full error message
34
+ binPath,
35
+ // @ts-expect-error TS(7031) FIXME: Binding element 'execArgs' implicitly has an 'any'... Remove this comment to see the full error message
36
+ execArgs,
37
+ // @ts-expect-error TS(7031) FIXME: Binding element 'execName' implicitly has an 'any'... Remove this comment to see the full error message
38
+ execName,
39
+ // @ts-expect-error TS(7031) FIXME: Binding element 'latestVersion' implicitly has an ... Remove this comment to see the full error message
40
+ latestVersion,
41
+ // @ts-expect-error TS(7031) FIXME: Binding element 'packageName' implicitly has an 'a... Remove this comment to see the full error message
42
+ packageName,
43
+ // @ts-expect-error TS(7031) FIXME: Binding element 'pattern' implicitly has an 'any' ... Remove this comment to see the full error message
44
+ pattern, }) => {
45
+ const execPath = path.join(binPath, getExecName({ execName }));
46
+ const exists = await isExe(execPath, { ignoreErrors: true });
47
+ if (!exists) {
48
+ return true;
49
+ }
50
+ // @ts-expect-error TS(7005) FIXME: Variable 'execa' implicitly has an 'any' type.
51
+ const { stdout } = await execa(execPath, execArgs);
52
+ if (!stdout) {
53
+ return false;
54
+ }
55
+ const match = stdout.match(new RegExp(pattern));
56
+ if (!match) {
57
+ return false;
58
+ }
59
+ try {
60
+ const [, currentVersion] = match;
61
+ const outdated = await isVersionOutdated({
62
+ packageName,
63
+ currentVersion,
64
+ latestVersion,
65
+ });
66
+ return outdated;
67
+ }
68
+ catch (error_) {
69
+ if (exists) {
70
+ log(NETLIFYDEVWARN, `failed checking for new version of '${packageName}'. Using existing version`);
71
+ return false;
72
+ }
73
+ throw error_;
74
+ }
75
+ };
79
76
  export const getArch = () => {
80
- switch (process.arch) {
81
- case 'x64':
82
- return 'amd64'
83
- case 'ia32':
84
- return '386'
85
- default:
86
- return process.arch
87
- }
88
- }
89
-
77
+ switch (process.arch) {
78
+ case 'x64':
79
+ return 'amd64';
80
+ case 'ia32':
81
+ return '386';
82
+ default:
83
+ return process.arch;
84
+ }
85
+ };
90
86
  /**
91
87
  * Tries to get the latest release from the github releases to download the binary.
92
88
  * Is throwing an error if there is no binary that matches the system os or arch
@@ -98,45 +94,42 @@ export const getArch = () => {
98
94
  * @param {string} config.packageName
99
95
  * @param {string} [config.latestVersion ]
100
96
  */
97
+ // @ts-expect-error TS(7031) FIXME: Binding element 'destination' implicitly has an 'a... Remove this comment to see the full error message
101
98
  export const fetchLatestVersion = async ({ destination, execName, extension, latestVersion, packageName }) => {
102
- const win = isWindows()
103
- const arch = getArch()
104
- const platform = win ? 'windows' : process.platform
105
- const pkgName = `${execName}-${platform}-${arch}.${extension}`
106
-
107
- const release = {
108
- repository: getRepository({ packageName }),
109
- package: pkgName,
110
- destination,
111
- extract: true,
112
- }
113
-
114
- const options = getOptions()
115
- const fetch = latestVersion
116
- ? fetchVersion({ ...release, version: latestVersion }, options)
117
- : fetchLatest(release, options)
118
-
119
- try {
120
- await fetch
121
- } catch (error_) {
122
- if (typeof error_ === 'object' && 'statusCode' in error_ && error_.statusCode === 404) {
123
- const createIssueLink = new URL('https://github.com/netlify/cli/issues/new')
124
- createIssueLink.searchParams.set('assignees', '')
125
- createIssueLink.searchParams.set('labels', 'type: bug')
126
- createIssueLink.searchParams.set('template', 'bug_report.md')
127
- createIssueLink.searchParams.set(
128
- 'title',
129
- `${execName} is not supported on ${platform} with CPU architecture ${arch}`,
130
- )
131
-
132
- const issueLink = getTerminalLink('Create a new CLI issue', createIssueLink.href)
133
-
134
- error(`The operating system ${platform} with the CPU architecture ${arch} is currently not supported!
99
+ const win = isWindows();
100
+ const arch = getArch();
101
+ const platform = win ? 'windows' : process.platform;
102
+ const pkgName = `${execName}-${platform}-${arch}.${extension}`;
103
+ const release = {
104
+ repository: getRepository({ packageName }),
105
+ package: pkgName,
106
+ destination,
107
+ extract: true,
108
+ };
109
+ const options = getOptions();
110
+ const fetch = latestVersion
111
+ // @ts-expect-error TS(2345) FIXME: Argument of type '{ headers: { Authorization: stri... Remove this comment to see the full error message
112
+ ? fetchVersion({ ...release, version: latestVersion }, options)
113
+ // @ts-expect-error TS(2345) FIXME: Argument of type '{ repository: string; package: s... Remove this comment to see the full error message
114
+ : fetchLatest(release, options);
115
+ try {
116
+ await fetch;
117
+ }
118
+ catch (error_) {
119
+ // @ts-expect-error TS(2531) FIXME: Object is possibly 'null'.
120
+ if (typeof error_ === 'object' && 'statusCode' in error_ && error_.statusCode === 404) {
121
+ const createIssueLink = new URL('https://github.com/netlify/cli/issues/new');
122
+ createIssueLink.searchParams.set('assignees', '');
123
+ createIssueLink.searchParams.set('labels', 'type: bug');
124
+ createIssueLink.searchParams.set('template', 'bug_report.md');
125
+ createIssueLink.searchParams.set('title', `${execName} is not supported on ${platform} with CPU architecture ${arch}`);
126
+ const issueLink = getTerminalLink('Create a new CLI issue', createIssueLink.href);
127
+ error(`The operating system ${platform} with the CPU architecture ${arch} is currently not supported!
135
128
 
136
129
  Please open up an issue on our CLI repository so that we can support it:
137
- ${issueLink}`)
130
+ ${issueLink}`);
131
+ }
132
+ // @ts-expect-error TS(2345) FIXME: Argument of type 'unknown' is not assignable to pa... Remove this comment to see the full error message
133
+ error(error_);
138
134
  }
139
-
140
- error(error_)
141
- }
142
- }
135
+ };
package/src/lib/fs.mjs CHANGED
@@ -1,43 +1,44 @@
1
- // @ts-check
2
- import { constants } from 'fs'
3
- import { access, stat } from 'fs/promises'
4
-
1
+ import { constants } from 'fs';
2
+ import { access, stat } from 'fs/promises';
3
+ // @ts-expect-error TS(7006) FIXME: Parameter 'filePath' implicitly has an 'any' type.
5
4
  export const fileExistsAsync = async (filePath) => {
6
- try {
7
- await access(filePath, constants.F_OK)
8
- return true
9
- } catch {
10
- return false
11
- }
12
- }
13
-
5
+ try {
6
+ await access(filePath, constants.F_OK);
7
+ return true;
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ };
14
13
  /**
15
14
  * calls stat async with a function and catches potential errors
16
15
  * @param {string} filePath
17
16
  * @param {keyof import('fs').StatsBase<number>} type For example `isDirectory` or `isFile`
18
17
  */
18
+ // @ts-expect-error TS(7006) FIXME: Parameter 'filePath' implicitly has an 'any' type.
19
19
  const isType = async (filePath, type) => {
20
- try {
21
- const stats = await stat(filePath)
22
- // @ts-ignore
23
- return typeof stats[type] === 'function' ? stats[type]() : stats[type]
24
- } catch (error_) {
25
- if (error_.code === 'ENOENT') {
26
- return false
20
+ try {
21
+ const stats = await stat(filePath);
22
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
23
+ return typeof stats[type] === 'function' ? stats[type]() : stats[type];
24
+ }
25
+ catch (error_) {
26
+ // @ts-expect-error TS(2571) FIXME: Object is of type 'unknown'.
27
+ if (error_.code === 'ENOENT') {
28
+ return false;
29
+ }
30
+ throw error_;
27
31
  }
28
-
29
- throw error_
30
- }
31
- }
32
-
32
+ };
33
33
  /**
34
34
  * Checks if the provided filePath is a file
35
35
  * @param {string} filePath
36
36
  */
37
- export const isFileAsync = (filePath) => isType(filePath, 'isFile')
38
-
37
+ // @ts-expect-error TS(7006) FIXME: Parameter 'filePath' implicitly has an 'any' type.
38
+ export const isFileAsync = (filePath) => isType(filePath, 'isFile');
39
39
  /**
40
40
  * Checks if the provided filePath is a directory
41
41
  * @param {string} filePath
42
42
  */
43
- export const isDirectoryAsync = (filePath) => isType(filePath, 'isDirectory')
43
+ // @ts-expect-error TS(7006) FIXME: Parameter 'filePath' implicitly has an 'any' type.
44
+ export const isDirectoryAsync = (filePath) => isType(filePath, 'isDirectory');
@@ -1,22 +1,18 @@
1
- import { NETLIFYDEVERR, NETLIFYDEVLOG } from '../../utils/command-helpers.mjs'
2
-
3
- import { formatLambdaError, styleFunctionName } from './utils.mjs'
4
-
5
- const BACKGROUND_FUNCTION_STATUS_CODE = 202
6
-
1
+ import { NETLIFYDEVERR, NETLIFYDEVLOG } from '../../utils/command-helpers.mjs';
2
+ import { formatLambdaError, styleFunctionName } from './utils.mjs';
3
+ const BACKGROUND_FUNCTION_STATUS_CODE = 202;
4
+ // @ts-expect-error TS(7006) FIXME: Parameter 'functionName' implicitly has an 'any' t... Remove this comment to see the full error message
7
5
  export const handleBackgroundFunction = (functionName, response) => {
8
- console.log(`${NETLIFYDEVLOG} Queueing background function ${styleFunctionName(functionName)} for execution`)
9
- response.status(BACKGROUND_FUNCTION_STATUS_CODE)
10
- response.end()
11
- }
12
-
6
+ console.log(`${NETLIFYDEVLOG} Queueing background function ${styleFunctionName(functionName)} for execution`);
7
+ response.status(BACKGROUND_FUNCTION_STATUS_CODE);
8
+ response.end();
9
+ };
10
+ // @ts-expect-error TS(7006) FIXME: Parameter 'functionName' implicitly has an 'any' t... Remove this comment to see the full error message
13
11
  export const handleBackgroundFunctionResult = (functionName, err) => {
14
- if (err) {
15
- console.log(
16
- `${NETLIFYDEVERR} Error during background function ${styleFunctionName(functionName)} execution:`,
17
- formatLambdaError(err),
18
- )
19
- } else {
20
- console.log(`${NETLIFYDEVLOG} Done executing background function ${styleFunctionName(functionName)}`)
21
- }
22
- }
12
+ if (err) {
13
+ console.log(`${NETLIFYDEVERR} Error during background function ${styleFunctionName(functionName)} execution:`, formatLambdaError(err));
14
+ }
15
+ else {
16
+ console.log(`${NETLIFYDEVLOG} Done executing background function ${styleFunctionName(functionName)}`);
17
+ }
18
+ };
@@ -1,21 +1,24 @@
1
1
  // The function configuration keys returned by @netlify/config are not an exact
2
2
  // match to the properties that @netlify/zip-it-and-ship-it expects. We do that
3
3
  // translation here.
4
- export const normalizeFunctionsConfig = ({ functionsConfig = {}, projectRoot, siteEnv = {} }) =>
5
- Object.entries(functionsConfig).reduce(
6
- (result, [pattern, config]) => ({
7
- ...result,
8
- [pattern]: {
4
+ // @ts-expect-error TS(7031) FIXME: Binding element 'projectRoot' implicitly has an 'a... Remove this comment to see the full error message
5
+ export const normalizeFunctionsConfig = ({ functionsConfig = {}, projectRoot, siteEnv = {} }) => Object.entries(functionsConfig).reduce((result, [pattern, config]) => ({
6
+ ...result,
7
+ [pattern]: {
8
+ // @ts-expect-error TS(2571) FIXME: Object is of type 'unknown'.
9
9
  externalNodeModules: config.external_node_modules,
10
+ // @ts-expect-error TS(2571) FIXME: Object is of type 'unknown'.
10
11
  includedFiles: config.included_files,
11
12
  includedFilesBasePath: projectRoot,
13
+ // @ts-expect-error TS(2571) FIXME: Object is of type 'unknown'.
12
14
  ignoredNodeModules: config.ignored_node_modules,
15
+ // @ts-expect-error TS(2571) FIXME: Object is of type 'unknown'.
13
16
  nodeBundler: config.node_bundler === 'esbuild' ? 'esbuild_zisi' : config.node_bundler,
17
+ // @ts-expect-error TS(2339) FIXME: Property 'AWS_LAMBDA_JS_RUNTIME' does not exist on... Remove this comment to see the full error message
14
18
  nodeVersion: siteEnv.AWS_LAMBDA_JS_RUNTIME,
15
19
  processDynamicNodeImports: true,
20
+ // @ts-expect-error TS(2571) FIXME: Object is of type 'unknown'.
16
21
  schedule: config.schedule,
17
22
  zipGo: true,
18
- },
19
- }),
20
- {},
21
- )
23
+ },
24
+ }), {});