-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
79 lines (76 loc) · 50.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="generator" content="VuePress 2.0.0-rc.20" />
<style>
:root {
--vp-c-bg: #fff;
}
[data-theme='dark'] {
--vp-c-bg: #1b1b1f;
}
html,
body {
background-color: var(--vp-c-bg);
}
</style>
<script>
const useChoice = localStorage.getItem('vuepress-color-scheme')
const systemStatus =
'matchMedia' in window
? window.matchMedia('(prefers-color-scheme: dark)').matches
: false
if (useChoice === 'light') {
document.documentElement.dataset.theme = 'light'
} else if (useChoice === 'dark' || systemStatus) {
document.documentElement.dataset.theme = 'dark'
}
</script>
<link rel="icon" href="/logo.jpg"><script src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0049636498302507" crossorigin="anonymous"></script><title>FaasJS</title><meta name="description" content="An atomic application framework built for the TypeScript developer.">
<link rel="preload" href="/assets/style-C9qKkkAL.css" as="style"><link rel="stylesheet" href="/assets/style-C9qKkkAL.css">
<link rel="modulepreload" href="/assets/app-CeuSItVv.js"><link rel="modulepreload" href="/assets/index.html-C-7-P6sf.js">
<link rel="prefetch" href="/assets/CHANGELOG.html-ChCjROeP.js" as="script"><link rel="prefetch" href="/assets/CODE_OF_CONDUCT.html-B3mcp-Mu.js" as="script"><link rel="prefetch" href="/assets/CONTRIBUTING.html-Be9wt6Q4.js" as="script"><link rel="prefetch" href="/assets/SECURITY.html-ClNrAL_L.js" as="script"><link rel="prefetch" href="/assets/index.html-DGjzE456.js" as="script"><link rel="prefetch" href="/assets/Dockerize.html-Dj4-WLGb.js" as="script"><link rel="prefetch" href="/assets/index.html-CmlSz7CG.js" as="script"><link rel="prefetch" href="/assets/request-spec.html-IMG1bn7a.js" as="script"><link rel="prefetch" href="/assets/index.html-SDkgr4oS.js" as="script"><link rel="prefetch" href="/assets/index.html-Dm1nWcT1.js" as="script"><link rel="prefetch" href="/assets/index.html-Bs44MnlL.js" as="script"><link rel="prefetch" href="/assets/index.html-C8cdm-rz.js" as="script"><link rel="prefetch" href="/assets/index.html-DZnhjUtx.js" as="script"><link rel="prefetch" href="/assets/index.html-CAvrJWDs.js" as="script"><link rel="prefetch" href="/assets/index.html-CjgtBP1L.js" as="script"><link rel="prefetch" href="/assets/index.html-D3gs30GP.js" as="script"><link rel="prefetch" href="/assets/index.html-BFJGaUih.js" as="script"><link rel="prefetch" href="/assets/index.html-DQgASmyR.js" as="script"><link rel="prefetch" href="/assets/index.html-CeznwZFS.js" as="script"><link rel="prefetch" href="/assets/index.html-BCACH9Dy.js" as="script"><link rel="prefetch" href="/assets/index.html-C1j5tKis.js" as="script"><link rel="prefetch" href="/assets/index.html-Bsi2MKvP.js" as="script"><link rel="prefetch" href="/assets/index.html-CD_8oyZg.js" as="script"><link rel="prefetch" href="/assets/index.html-BjNwTStl.js" as="script"><link rel="prefetch" href="/assets/index.html-35hKiwPV.js" as="script"><link rel="prefetch" href="/assets/index.html-BEXsKO_e.js" as="script"><link rel="prefetch" href="/assets/index.html-CMEhYHD5.js" as="script"><link rel="prefetch" href="/assets/index.html-BEL2hNsj.js" as="script"><link rel="prefetch" href="/assets/index.html-nwkYwVZ6.js" as="script"><link rel="prefetch" href="/assets/index.html-CMBlSOO7.js" as="script"><link rel="prefetch" href="/assets/index.html-X9uIyONn.js" as="script"><link rel="prefetch" href="/assets/index.html-xCExQ5cs.js" as="script"><link rel="prefetch" href="/assets/index.html-vYs4hP4a.js" as="script"><link rel="prefetch" href="/assets/browser.html-CXErkzKb.js" as="script"><link rel="prefetch" href="/assets/cli.html-HYj_YElW.js" as="script"><link rel="prefetch" href="/assets/cloud_function.html-B1e4Vud9.js" as="script"><link rel="prefetch" href="/assets/create-faas-app.html-J-bDCNe7.js" as="script"><link rel="prefetch" href="/assets/deep_merge.html-72EnIJ17.js" as="script"><link rel="prefetch" href="/assets/develop.html-C1uVINFt.js" as="script"><link rel="prefetch" href="/assets/func.html-D9y08Otr.js" as="script"><link rel="prefetch" href="/assets/http.html-_aP-0HBU.js" as="script"><link rel="prefetch" href="/assets/knex.html-JiJrYE52.js" as="script"><link rel="prefetch" href="/assets/load.html-Dki_cS60.js" as="script"><link rel="prefetch" href="/assets/logger.html-CozrVWmj.js" as="script"><link rel="prefetch" href="/assets/react.html-B4AVZN7K.js" as="script"><link rel="prefetch" href="/assets/redis.html-BJrO0QAL.js" as="script"><link rel="prefetch" href="/assets/request.html-D_xcLBpM.js" as="script"><link rel="prefetch" href="/assets/server.html-MyM_HJyX.js" as="script"><link rel="prefetch" href="/assets/test.html-LQ2YSPQt.js" as="script"><link rel="prefetch" href="/assets/index.html-DgJYXSL-.js" as="script"><link rel="prefetch" href="/assets/auth.html-CQNa4EmC.js" as="script"><link rel="prefetch" href="/assets/story.html-BGgNQAQ7.js" as="script"><link rel="prefetch" href="/assets/App.html-D-WtSUo2.js" as="script"><link rel="prefetch" href="/assets/Blank.html-D67_edL1.js" as="script"><link rel="prefetch" href="/assets/ConfigProvider.html-B-0wl1q8.js" as="script"><link rel="prefetch" href="/assets/Description.html-D7EstSyn.js" as="script"><link rel="prefetch" href="/assets/ErrorBoundary.html-DriYarvS.js" as="script"><link rel="prefetch" href="/assets/FaasDataWrapper.html-CJA-ywlV.js" as="script"><link rel="prefetch" href="/assets/Form.html-B--PczIH.js" as="script"><link rel="prefetch" href="/assets/FormItem.html-BFMTfayP.js" as="script"><link rel="prefetch" href="/assets/Link.html-DIixcstl.js" as="script"><link rel="prefetch" href="/assets/Loading.html-CHnCUWTA.js" as="script"><link rel="prefetch" href="/assets/PageNotFound.html-DMDRi_Ky.js" as="script"><link rel="prefetch" href="/assets/Routes.html-B64iduII.js" as="script"><link rel="prefetch" href="/assets/Table.html-DfHFWjzV.js" as="script"><link rel="prefetch" href="/assets/Tabs.html-DmjTf1H6.js" as="script"><link rel="prefetch" href="/assets/Title.html-DV-AZU6D.js" as="script"><link rel="prefetch" href="/assets/cloneUnionFaasItemElement.html-DUsocSFs.js" as="script"><link rel="prefetch" href="/assets/faas.html-BBdb4dYU.js" as="script"><link rel="prefetch" href="/assets/idToTitle.html-B6yTaDph.js" as="script"><link rel="prefetch" href="/assets/transferOptions.html-DRSsLekm.js" as="script"><link rel="prefetch" href="/assets/transferValue.html-B4iRMr6C.js" as="script"><link rel="prefetch" href="/assets/useConfigContext.html-P7BKB65T.js" as="script"><link rel="prefetch" href="/assets/useDrawer.html-g-2PbtKx.js" as="script"><link rel="prefetch" href="/assets/useFaas.html-ZneHLnp8.js" as="script"><link rel="prefetch" href="/assets/useModal.html-DqqoAVnQ.js" as="script"><link rel="prefetch" href="/assets/useThemeToken.html-Cz41EDne.js" as="script"><link rel="prefetch" href="/assets/withFaasData.html-CY2sEqPF.js" as="script"><link rel="prefetch" href="/assets/AppProps.html-BJlDPoj7.js" as="script"><link rel="prefetch" href="/assets/BaseItemProps.html-CppK1ueZ.js" as="script"><link rel="prefetch" href="/assets/BlankProps.html-BZgA8yXe.js" as="script"><link rel="prefetch" href="/assets/ConfigProviderProps.html-C26SWYP-.js" as="script"><link rel="prefetch" href="/assets/DescriptionItemContentProps.html-B6KnPcev.js" as="script"><link rel="prefetch" href="/assets/DescriptionItemProps.html-B5uSQ015.js" as="script"><link rel="prefetch" href="/assets/DescriptionProps.html-VP7Q82bK.js" as="script"><link rel="prefetch" href="/assets/DrawerProps.html-CyuO_gPi.js" as="script"><link rel="prefetch" href="/assets/ErrorBoundaryProps.html-BZJDdC7Z.js" as="script"><link rel="prefetch" href="/assets/ExtendDescriptionTypeProps.html-CEw25xDd.js" as="script"><link rel="prefetch" href="/assets/ExtendFormItemProps.html-CerAxqOo.js" as="script"><link rel="prefetch" href="/assets/FaasDataWrapperProps.html-BO7lmrdM.js" as="script"><link rel="prefetch" href="/assets/FaasItemProps.html-BPUAPL17.js" as="script"><link rel="prefetch" href="/assets/FormItemProps.html-CTroXOTj.js" as="script"><link rel="prefetch" href="/assets/FormProps.html-CUo3Llb1.js" as="script"><link rel="prefetch" href="/assets/LinkProps.html-gYKCR-_8.js" as="script"><link rel="prefetch" href="/assets/ModalProps.html-Ck-Y_p8T.js" as="script"><link rel="prefetch" href="/assets/RoutesProps.html-DU86keqG.js" as="script"><link rel="prefetch" href="/assets/TabProps.html-Ch1LKzby.js" as="script"><link rel="prefetch" href="/assets/TableItemProps.html-hq0CgpZr.js" as="script"><link rel="prefetch" href="/assets/TabsProps.html-CfIyxNWd.js" as="script"><link rel="prefetch" href="/assets/TitleProps.html-Bec66q4i.js" as="script"><link rel="prefetch" href="/assets/UnionFaasItemProps.html-De5Y68BN.js" as="script"><link rel="prefetch" href="/assets/useAppProps.html-BmDnW9SR.js" as="script"><link rel="prefetch" href="/assets/BaseOption.html-CyQBx2ik.js" as="script"><link rel="prefetch" href="/assets/ExtendDescriptionItemProps.html-KBiaYsjo.js" as="script"><link rel="prefetch" href="/assets/ExtendFormTypeProps.html-vNv0WNcr.js" as="script"><link rel="prefetch" href="/assets/ExtendTableItemProps.html-Cvgt7UOo.js" as="script"><link rel="prefetch" href="/assets/ExtendTableTypeProps.html-DynST8hE.js" as="script"><link rel="prefetch" href="/assets/ExtendTypes.html-BTIpcVXs.js" as="script"><link rel="prefetch" href="/assets/FaasDataInjection.html-B7WJU2WI.js" as="script"><link rel="prefetch" href="/assets/FaasDataWrapperRef.html-CNzurDlG.js" as="script"><link rel="prefetch" href="/assets/FaasItemType.html-BGy2Dvb5.js" as="script"><link rel="prefetch" href="/assets/FaasItemTypeValue.html-C-KLK19n.js" as="script"><link rel="prefetch" href="/assets/FormSubmitProps.html-DJzsI4Tc.js" as="script"><link rel="prefetch" href="/assets/LoadingProps.html-DyCx72eY.js" as="script"><link rel="prefetch" href="/assets/TableProps.html-B4m04myB.js" as="script"><link rel="prefetch" href="/assets/UnionFaasItemElement.html-BrT_tPhj.js" as="script"><link rel="prefetch" href="/assets/UnionFaasItemInjection.html-DUEhG1Ex.js" as="script"><link rel="prefetch" href="/assets/UnionFaasItemRender.html-DhCr-nRu.js" as="script"><link rel="prefetch" href="/assets/UnionScene.html-3-YcVGyg.js" as="script"><link rel="prefetch" href="/assets/setDrawerProps.html-S0X_ZJu5.js" as="script"><link rel="prefetch" href="/assets/setModalProps.html-AVCF4Rdo.js" as="script"><link rel="prefetch" href="/assets/ConfigContext.html-Bipx2Dq2.js" as="script"><link rel="prefetch" href="/assets/Drawer.html-zsNh0EQZ.js" as="script"><link rel="prefetch" href="/assets/Modal.html-CiJtvny7.js" as="script"><link rel="prefetch" href="/assets/useApp.html-BQWQXtKW.js" as="script"><link rel="prefetch" href="/assets/FaasBrowserClient.html-CmpM104H.js" as="script"><link rel="prefetch" href="/assets/Response.html-C5Ksz-IM.js" as="script"><link rel="prefetch" href="/assets/ResponseError.html-CrKXD-__.js" as="script"><link rel="prefetch" href="/assets/generateId.html-w_gNj-rj.js" as="script"><link rel="prefetch" href="/assets/setMock.html-BRl4Nk-5.js" as="script"><link rel="prefetch" href="/assets/BaseUrl.html-B7y5jH9X.js" as="script"><link rel="prefetch" href="/assets/FaasBrowserClientAction.html-0vx04AiX.js" as="script"><link rel="prefetch" href="/assets/MockHandler.html-Bm57aqva.js" as="script"><link rel="prefetch" href="/assets/Options.html-CIi4ylWJ.js" as="script"><link rel="prefetch" href="/assets/ResponseErrorProps.html-BIUe3-zi.js" as="script"><link rel="prefetch" href="/assets/ResponseHeaders.html-B8yL4mMt.js" as="script"><link rel="prefetch" href="/assets/ResponseProps.html-BYWgp1AD.js" as="script"><link rel="prefetch" href="/assets/main.html-DCunqg9t.js" as="script"><link rel="prefetch" href="/assets/CloudFunction.html-bJd_1WfP.js" as="script"><link rel="prefetch" href="/assets/invoke.html-P0QGTS-2.js" as="script"><link rel="prefetch" href="/assets/invokeSync.html-BGCvNP2u.js" as="script"><link rel="prefetch" href="/assets/useCloudFunction.html-DRnu22He.js" as="script"><link rel="prefetch" href="/assets/CloudFunctionAdapter.html-BSKK_jJI.js" as="script"><link rel="prefetch" href="/assets/CloudFunctionConfig.html-W-xuzprr.js" as="script"><link rel="prefetch" href="/assets/main.html-B0_9dr4p.js" as="script"><link rel="prefetch" href="/assets/deepMerge.html-CCsvlUht.js" as="script"><link rel="prefetch" href="/assets/Func.html-BaxGiTXT.js" as="script"><link rel="prefetch" href="/assets/nameFunc.html-LOdnvz70.js" as="script"><link rel="prefetch" href="/assets/useFunc.html-v1lw9AEe.js" as="script"><link rel="prefetch" href="/assets/usePlugin.html-DRyuEUve.js" as="script"><link rel="prefetch" href="/assets/Config.html-kjPj9cIr.js" as="script"><link rel="prefetch" href="/assets/ExportedHandler.html-Cr40O7kf.js" as="script"><link rel="prefetch" href="/assets/FuncConfig.html-O38doKJH.js" as="script"><link rel="prefetch" href="/assets/FuncEventType.html-DygwLH7-.js" as="script"><link rel="prefetch" href="/assets/FuncReturnType.html-CinSktOG.js" as="script"><link rel="prefetch" href="/assets/Handler.html-rDRS6MWY.js" as="script"><link rel="prefetch" href="/assets/InvokeData.html-CGRUkv6Z.js" as="script"><link rel="prefetch" href="/assets/LifeCycleKey.html-BTjLjjfn.js" as="script"><link rel="prefetch" href="/assets/MountData.html-g260RTT1.js" as="script"><link rel="prefetch" href="/assets/Next.html-DsSkHhdw.js" as="script"><link rel="prefetch" href="/assets/Plugin.html-D9JgQKXD.js" as="script"><link rel="prefetch" href="/assets/UseifyPlugin.html-DmTpuSKc.js" as="script"><link rel="prefetch" href="/assets/Cookie.html-F-bS-bll.js" as="script"><link rel="prefetch" href="/assets/Http.html-D_9wJuWg.js" as="script"><link rel="prefetch" href="/assets/HttpError.html-DUijauXc.js" as="script"><link rel="prefetch" href="/assets/Session.html-KVxkat7E.js" as="script"><link rel="prefetch" href="/assets/useHttp.html-D9pQBqrU.js" as="script"><link rel="prefetch" href="/assets/useHttpFunc.html-D_Oep2W6.js" as="script"><link rel="prefetch" href="/assets/CookieOptions.html-C9Bw3Ts-.js" as="script"><link rel="prefetch" href="/assets/HttpConfig.html-_k-ZF-yQ.js" as="script"><link rel="prefetch" href="/assets/HttpFuncHandler.html-BlQjICUQ.js" as="script"><link rel="prefetch" href="/assets/Response.html-P_q7GnOy.js" as="script"><link rel="prefetch" href="/assets/SessionOptions.html-Xc0dHG2M.js" as="script"><link rel="prefetch" href="/assets/ContentType.html-D3TagYfx.js" as="script"><link rel="prefetch" href="/assets/index.html-DNFjXSUp.js" as="script"><link rel="prefetch" href="/assets/index.html-C37hF1NR.js" as="script"><link rel="prefetch" href="/assets/index.html-CV_-KoEt.js" as="script"><link rel="prefetch" href="/assets/index.html-Bc3mQZ8v.js" as="script"><link rel="prefetch" href="/assets/Knex.html-BVXjx4SZ.js" as="script"><link rel="prefetch" href="/assets/query.html-BBXfwqiz.js" as="script"><link rel="prefetch" href="/assets/raw.html-D61wtk_U.js" as="script"><link rel="prefetch" href="/assets/transaction.html-DvUHlLte.js" as="script"><link rel="prefetch" href="/assets/useKnex.html-Si4Pibqx.js" as="script"><link rel="prefetch" href="/assets/KnexConfig.html-Ro-hmS9O.js" as="script"><link rel="prefetch" href="/assets/originKnex.html-DGoS7tR8.js" as="script"><link rel="prefetch" href="/assets/detectNodeRuntime.html-2MgFMLDy.js" as="script"><link rel="prefetch" href="/assets/loadConfig.html-C34buC0Q.js" as="script"><link rel="prefetch" href="/assets/loadPackage.html-DyyXzghu.js" as="script"><link rel="prefetch" href="/assets/resetRuntime.html-X1Yc1MG2.js" as="script"><link rel="prefetch" href="/assets/NodeRuntime.html-DZJqb5Ff.js" as="script"><link rel="prefetch" href="/assets/Logger.html-BBQVtHM6.js" as="script"><link rel="prefetch" href="/assets/Transport.html-DUW06QNx.js" as="script"><link rel="prefetch" href="/assets/Color.html-DiQ_h9p9.js" as="script"><link rel="prefetch" href="/assets/LevelColor.html-Dc0xY2Qx.js" as="script"><link rel="prefetch" href="/assets/Color.html-D72EEJ1G.js" as="script"><link rel="prefetch" href="/assets/colorfy.html-CqzoP_dr.js" as="script"><link rel="prefetch" href="/assets/formatLogger.html-DdPKGuEa.js" as="script"><link rel="prefetch" href="/assets/getTransport.html-CBfTZ9v-.js" as="script"><link rel="prefetch" href="/assets/Level.html-BtL2Qexu.js" as="script"><link rel="prefetch" href="/assets/LoggerMessage.html-BVS3sDn4.js" as="script"><link rel="prefetch" href="/assets/TransportHandler.html-BDKPNVj-.js" as="script"><link rel="prefetch" href="/assets/TransportOptions.html-KeaqPR3-.js" as="script"><link rel="prefetch" href="/assets/Color.html-BuR1956w.js" as="script"><link rel="prefetch" href="/assets/LevelColor.html-4BFn9BOZ.js" as="script"><link rel="prefetch" href="/assets/NextJsPlugin.html-BKf6hXsS.js" as="script"><link rel="prefetch" href="/assets/useFuncWithNextJsPlugin.html-BeLUq-jK.js" as="script"><link rel="prefetch" href="/assets/ErrorBoundary.html-COdA7Cta.js" as="script"><link rel="prefetch" href="/assets/Response.html-Bidf0CYm.js" as="script"><link rel="prefetch" href="/assets/ResponseError.html-88x5EdpV.js" as="script"><link rel="prefetch" href="/assets/FaasReactClient.html-Bw5SlQe2.js" as="script"><link rel="prefetch" href="/assets/Form.html-B6QHXVft.js" as="script"><link rel="prefetch" href="/assets/FormItem.html-I9KtpI08.js" as="script"><link rel="prefetch" href="/assets/createSplittingContext.html-AtMLQUkq.js" as="script"><link rel="prefetch" href="/assets/equal.html-CGun4011.js" as="script"><link rel="prefetch" href="/assets/faas.html-DNYuYQGp.js" as="script"><link rel="prefetch" href="/assets/getClient.html-VqiEbAwC.js" as="script"><link rel="prefetch" href="/assets/useConstant.html-DJ0JOfFZ.js" as="script"><link rel="prefetch" href="/assets/useEqualCallback.html-Cc5PBblP.js" as="script"><link rel="prefetch" href="/assets/useEqualEffect.html-BKfGi4Ek.js" as="script"><link rel="prefetch" href="/assets/useEqualMemo.html-CAkhz-bD.js" as="script"><link rel="prefetch" href="/assets/useEqualMemoize.html-Gh9unOw7.js" as="script"><link rel="prefetch" href="/assets/useFaas.html-DGGmTteF.js" as="script"><link rel="prefetch" href="/assets/usePrevious.html-BTMVTKv9.js" as="script"><link rel="prefetch" href="/assets/useSplittingState.html-BcU_jwn4.js" as="script"><link rel="prefetch" href="/assets/useStateRef.html-gewVTZnC.js" as="script"><link rel="prefetch" href="/assets/validValues.html-DBmrxkPq.js" as="script"><link rel="prefetch" href="/assets/withFaasData.html-C2_HmoS9.js" as="script"><link rel="prefetch" href="/assets/ErrorBoundaryProps.html-D-FpYRZj.js" as="script"><link rel="prefetch" href="/assets/ErrorChildrenProps.html-Cc1UWTpV.js" as="script"><link rel="prefetch" href="/assets/FaasAction.html-BcBOSj0Q.js" as="script"><link rel="prefetch" href="/assets/FaasData.html-CsLI_-wE.js" as="script"><link rel="prefetch" href="/assets/FaasDataInjection.html-BNgT7qFs.js" as="script"><link rel="prefetch" href="/assets/FaasDataWrapperProps.html-cipWCada.js" as="script"><link rel="prefetch" href="/assets/FaasDataWrapperRef.html-CBmBliFO.js" as="script"><link rel="prefetch" href="/assets/FaasParams.html-J_2aH9nc.js" as="script"><link rel="prefetch" href="/assets/FaasReactClientInstance.html-nbAnrf0Z.js" as="script"><link rel="prefetch" href="/assets/FaasReactClientOptions.html-C6m3Wf06.js" as="script"><link rel="prefetch" href="/assets/FormButtonElementProps.html-BoDRHFFI.js" as="script"><link rel="prefetch" href="/assets/FormContextProps.html-BQd2Fuyo.js" as="script"><link rel="prefetch" href="/assets/FormDefaultRulesOptions.html-CEnGJmly.js" as="script"><link rel="prefetch" href="/assets/FormElementTypes.html-D33bdkNS.js" as="script"><link rel="prefetch" href="/assets/FormInputElementProps.html-zGQx84OD.js" as="script"><link rel="prefetch" href="/assets/FormItemName.html-ChoC78y2.js" as="script"><link rel="prefetch" href="/assets/FormItemProps.html-COw45FPU.js" as="script"><link rel="prefetch" href="/assets/FormLabelElementProps.html-CPlP4mbF.js" as="script"><link rel="prefetch" href="/assets/FormLang.html-DGcyf8lu.js" as="script"><link rel="prefetch" href="/assets/FormProps.html-6c8QrT1d.js" as="script"><link rel="prefetch" href="/assets/FormRule.html-CMAZpYod.js" as="script"><link rel="prefetch" href="/assets/FormRules.html-BWxBT547.js" as="script"><link rel="prefetch" href="/assets/InferFormRulesOptions.html-CqsGqjWQ.js" as="script"><link rel="prefetch" href="/assets/OnError.html-QbcYk5qQ.js" as="script"><link rel="prefetch" href="/assets/OptionalWrapperProps.html-BEzOvudW.js" as="script"><link rel="prefetch" href="/assets/Options.html-B-ZBGKno.js" as="script"><link rel="prefetch" href="/assets/ResponseHeaders.html-Dnghm208.js" as="script"><link rel="prefetch" href="/assets/useFaasOptions.html-DYzCZBhk.js" as="script"><link rel="prefetch" href="/assets/FaasDataWrapper.html-BkaHCWaQ.js" as="script"><link rel="prefetch" href="/assets/FormContextProvider.html-BnA50Vsz.js" as="script"><link rel="prefetch" href="/assets/FormDefaultElements.html-DXo7v-NA.js" as="script"><link rel="prefetch" href="/assets/FormDefaultLang.html-mW37ZAP2.js" as="script"><link rel="prefetch" href="/assets/FormDefaultRules.html-DVGjO4Wb.js" as="script"><link rel="prefetch" href="/assets/OptionalWrapper.html-C33JG5cc.js" as="script"><link rel="prefetch" href="/assets/useFormContext.html-Ka6dZHem.js" as="script"><link rel="prefetch" href="/assets/Redis.html-CsNsXEzF.js" as="script"><link rel="prefetch" href="/assets/get.html-p8HCuwSp.js" as="script"><link rel="prefetch" href="/assets/getJSON.html-DtQtrysX.js" as="script"><link rel="prefetch" href="/assets/lock.html-CFXkDiEe.js" as="script"><link rel="prefetch" href="/assets/multi.html-DLknMaz5.js" as="script"><link rel="prefetch" href="/assets/pipeline.html-BFvpft-L.js" as="script"><link rel="prefetch" href="/assets/publish.html-BVo3zaCp.js" as="script"><link rel="prefetch" href="/assets/query.html-CALY-nEM.js" as="script"><link rel="prefetch" href="/assets/set.html-ZAxYmIZp.js" as="script"><link rel="prefetch" href="/assets/setJSON.html-C6KXbWTN.js" as="script"><link rel="prefetch" href="/assets/unlock.html-CJ4b43gW.js" as="script"><link rel="prefetch" href="/assets/useRedis.html-BfKxlU3K.js" as="script"><link rel="prefetch" href="/assets/RedisConfig.html-mYQ_yMxG.js" as="script"><link rel="prefetch" href="/assets/ResponseError.html-BB-TDaSp.js" as="script"><link rel="prefetch" href="/assets/querystringify.html-ixpFASU-.js" as="script"><link rel="prefetch" href="/assets/request.html-BNAQG1bl.js" as="script"><link rel="prefetch" href="/assets/setMock.html-dgyVcInV.js" as="script"><link rel="prefetch" href="/assets/Request.html-BCZubl7N.js" as="script"><link rel="prefetch" href="/assets/RequestOptions.html-CinAGmrq.js" as="script"><link rel="prefetch" href="/assets/Response.html-D54fd8sF.js" as="script"><link rel="prefetch" href="/assets/Server.html-IQdJzQcw.js" as="script"><link rel="prefetch" href="/assets/closeAll.html-DxJO8eYl.js" as="script"><link rel="prefetch" href="/assets/getAll.html-MFH7N5rU.js" as="script"><link rel="prefetch" href="/assets/getRouteFiles.html-DCljaNNC.js" as="script"><link rel="prefetch" href="/assets/staticHandler.html-B_Q9I1uF.js" as="script"><link rel="prefetch" href="/assets/useMiddleware.html-CyHEneDy.js" as="script"><link rel="prefetch" href="/assets/useMiddlewares.html-D4cNbC8Q.js" as="script"><link rel="prefetch" href="/assets/Middleware.html-Bc2dRYsI.js" as="script"><link rel="prefetch" href="/assets/MiddlewareEvent.html-C1IdFSOu.js" as="script"><link rel="prefetch" href="/assets/ServerHandlerOptions.html-DoCujlIL.js" as="script"><link rel="prefetch" href="/assets/ServerOptions.html-F7wpJ8Zh.js" as="script"><link rel="prefetch" href="/assets/StaticHandlerOptions.html-BJY9hesf.js" as="script"><link rel="prefetch" href="/assets/Func.html-Dr_2cK-5.js" as="script"><link rel="prefetch" href="/assets/FuncWarper.html-Bi5SJ0H1.js" as="script"><link rel="prefetch" href="/assets/nameFunc.html-BKsmsP_s.js" as="script"><link rel="prefetch" href="/assets/test.html-Cm0aVJ8H.js" as="script"><link rel="prefetch" href="/assets/useFunc.html-DXcRq3zz.js" as="script"><link rel="prefetch" href="/assets/usePlugin.html-B7dx1T5p.js" as="script"><link rel="prefetch" href="/assets/Config.html-DERhaRB2.js" as="script"><link rel="prefetch" href="/assets/ExportedHandler.html-BKjcOXgE.js" as="script"><link rel="prefetch" href="/assets/FuncConfig.html-CVlnNAjX.js" as="script"><link rel="prefetch" href="/assets/FuncEventType.html-B5g5e02w.js" as="script"><link rel="prefetch" href="/assets/FuncReturnType.html-CSKx_Rn8.js" as="script"><link rel="prefetch" href="/assets/Handler.html-DHl0soVV.js" as="script"><link rel="prefetch" href="/assets/InvokeData.html-D-NawhFR.js" as="script"><link rel="prefetch" href="/assets/LifeCycleKey.html-DTy10a66.js" as="script"><link rel="prefetch" href="/assets/MountData.html-BrOeT9GO.js" as="script"><link rel="prefetch" href="/assets/Next.html-DX-KIb3_.js" as="script"><link rel="prefetch" href="/assets/Plugin.html-DsdN6QBC.js" as="script"><link rel="prefetch" href="/assets/UseifyPlugin.html-ASV3Catv.js" as="script"><link rel="prefetch" href="/assets/bundle.html-Dwffj-Uy.js" as="script"><link rel="prefetch" href="/assets/transform.html-BiTeqvLd.js" as="script"><link rel="prefetch" href="/assets/NodeBuiltinModules.html-Ch8ccQY8.js" as="script"><link rel="prefetch" href="/assets/FaasAction.html-Glcrzq92.js" as="script"><link rel="prefetch" href="/assets/FaasActionPaths.html-CKWMmI0K.js" as="script"><link rel="prefetch" href="/assets/FaasActionUnionType.html-BYVClgMw.js" as="script"><link rel="prefetch" href="/assets/FaasData.html-D2IPlUTg.js" as="script"><link rel="prefetch" href="/assets/FaasParams.html-Bm3wkWKa.js" as="script"><link rel="prefetch" href="/assets/InferFaasAction.html-Hz-JBZn3.js" as="script"><link rel="prefetch" href="/assets/ReactServerAction.html-C0oFGHFh.js" as="script"><link rel="prefetch" href="/assets/lifecycle.html-zlPL7EHh.js" as="script"><link rel="prefetch" href="/assets/db.html-BaGmiRtJ.js" as="script"><link rel="prefetch" href="/assets/env.html-DKPNkISx.js" as="script"><link rel="prefetch" href="/assets/faas-yaml.html-7Yj36UT2.js" as="script"><link rel="prefetch" href="/assets/http.html-Bnpxwpl3.js" as="script"><link rel="prefetch" href="/assets/plugin.html-BseJGlm0.js" as="script"><link rel="prefetch" href="/assets/react.html-B8yV3tzt.js" as="script"><link rel="prefetch" href="/assets/request-spec.html-D8igud8Z.js" as="script"><link rel="prefetch" href="/assets/404.html-B-mjC2vJ.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="vp-theme-container no-sidebar external-link-icon" vp-container><!--[--><header class="vp-navbar" vp-navbar><div class="vp-toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a class="route-link" href="/"><!----><span class="vp-site-name" aria-hidden="true">FaasJS</span></a></span><div class="vp-navbar-items-wrapper" style=""><!--[--><!--]--><nav class="vp-navbar-items vp-hide-mobile" aria-label="site navigation"><!--[--><div class="vp-navbar-item"><a class="route-link route-link-active auto-link" href="/" aria-label="Home"><!--[--><!--[--><!--]--><!--]-->Home<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="Learn"><span class="title">Learn</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="Learn"><span class="title">Learn</span><span class="right arrow"></span></button><ul class="vp-navbar-dropdown" style="display:none;"><!--[--><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/guide/" aria-label="Guide"><!--[--><!--[--><!--]--><!--]-->Guide<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/doc/" aria-label="Documents"><!--[--><!--[--><!--]--><!--]-->Documents<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/faasjs/starter" aria-label="Starter Template" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Starter Template<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/CHANGELOG.html" aria-label="Changelog"><!--[--><!--[--><!--]--><!--]-->Changelog<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><!--[--><h4 class="vp-navbar-dropdown-subtitle"><span>Ecosystem</span></h4><ul class="vp-navbar-dropdown-subitem-wrapper"><!--[--><li class="vp-navbar-dropdown-subitem"><a class="auto-link external-link" href="https://marketplace.visualstudio.com/items?itemName=FaasJS.faasjs-snippets" aria-label="VS Code Plugin" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->VS Code Plugin<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-subitem"><a class="route-link auto-link" href="/doc/images/" aria-label="Docker Images"><!--[--><!--[--><!--]--><!--]-->Docker Images<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="Community"><span class="title">Community</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="Community"><span class="title">Community</span><span class="right arrow"></span></button><ul class="vp-navbar-dropdown" style="display:none;"><!--[--><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/faasjs/faasjs/" aria-label="Github" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Github<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/CONTRIBUTING.html" aria-label="Contributing"><!--[--><!--[--><!--]--><!--]-->Contributing<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/sponsors/faasjs" aria-label="Sponsor" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Sponsor<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/SECURITY.html" aria-label="Security"><!--[--><!--[--><!--]--><!--]-->Security<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul></div></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">Languages</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">Languages</span><span class="right arrow"></span></button><ul class="vp-navbar-dropdown" style="display:none;"><!--[--><li class="vp-navbar-dropdown-item"><a class="route-link route-link-active auto-link" href="/" aria-label="English"><!--[--><!--[--><!--]--><!--]-->English<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/zh/" aria-label="简体中文"><!--[--><!--[--><!--]--><!--]-->简体中文<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul></div></div><!--]--></nav><!--[--><!--]--><button type="button" class="vp-toggle-color-mode-button" title="toggle color mode"><svg class="light-icon" viewbox="0 0 32 32" style=""><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg class="dark-icon" viewbox="0 0 32 32" style="display:none;"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><form class="search-box" role="search"><input type="search" placeholder="Search" autocomplete="off" spellcheck="false" value><!----></form></div></header><!--]--><div class="vp-sidebar-mask"></div><!--[--><aside class="vp-sidebar" vp-sidebar><nav class="vp-navbar-items" aria-label="site navigation"><!--[--><div class="vp-navbar-item"><a class="route-link route-link-active auto-link" href="/" aria-label="Home"><!--[--><!--[--><!--]--><!--]-->Home<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="Learn"><span class="title">Learn</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="Learn"><span class="title">Learn</span><span class="right arrow"></span></button><ul class="vp-navbar-dropdown" style="display:none;"><!--[--><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/guide/" aria-label="Guide"><!--[--><!--[--><!--]--><!--]-->Guide<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/doc/" aria-label="Documents"><!--[--><!--[--><!--]--><!--]-->Documents<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/faasjs/starter" aria-label="Starter Template" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Starter Template<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/CHANGELOG.html" aria-label="Changelog"><!--[--><!--[--><!--]--><!--]-->Changelog<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><!--[--><h4 class="vp-navbar-dropdown-subtitle"><span>Ecosystem</span></h4><ul class="vp-navbar-dropdown-subitem-wrapper"><!--[--><li class="vp-navbar-dropdown-subitem"><a class="auto-link external-link" href="https://marketplace.visualstudio.com/items?itemName=FaasJS.faasjs-snippets" aria-label="VS Code Plugin" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->VS Code Plugin<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-subitem"><a class="route-link auto-link" href="/doc/images/" aria-label="Docker Images"><!--[--><!--[--><!--]--><!--]-->Docker Images<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="Community"><span class="title">Community</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="Community"><span class="title">Community</span><span class="right arrow"></span></button><ul class="vp-navbar-dropdown" style="display:none;"><!--[--><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/faasjs/faasjs/" aria-label="Github" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Github<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/CONTRIBUTING.html" aria-label="Contributing"><!--[--><!--[--><!--]--><!--]-->Contributing<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/sponsors/faasjs" aria-label="Sponsor" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Sponsor<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/SECURITY.html" aria-label="Security"><!--[--><!--[--><!--]--><!--]-->Security<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul></div></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">Languages</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">Languages</span><span class="right arrow"></span></button><ul class="vp-navbar-dropdown" style="display:none;"><!--[--><li class="vp-navbar-dropdown-item"><a class="route-link route-link-active auto-link" href="/" aria-label="English"><!--[--><!--[--><!--]--><!--]-->English<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/zh/" aria-label="简体中文"><!--[--><!--[--><!--]--><!--]-->简体中文<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul></div></div><!--]--></nav><!--[--><!--]--><!----><!--[--><!--]--></aside><!--]--><!--[--><main class="vp-home"><header class="vp-hero"><img class="vp-hero-image" src="/logo.jpg" alt="🚀 FaasJS" height="280"><h1 id="main-title">🚀 FaasJS</h1><!----><!----></header><!----><div vp-content><div><div style="width:100%;line-height:1.7;"><div style="text-align:center;font-size:1.6rem;color:#6a8bad;margin-bottom:1em;">An atomic application framework built for the TypeScript developer.</div><div style="display:flex;gap:4px;align-items:center;justify-content:center;flex-wrap:wrap;"><a href="https://github.com/faasjs/faasjs/blob/main/packages/faasjs/LICENSE"><img src="https://img.shields.io/npm/l/faasjs.svg"></a><br><a href="https://www.npmjs.com/package/faasjs"><img src="https://img.shields.io/npm/v/faasjs.svg"></a><br><a href="https://github.com/faasjs/faasjs/actions/workflows/unit.yml"><img src="https://github.com/faasjs/faasjs/actions/workflows/unit.yml/badge.svg"></a><a href="https://github.com/faasjs/faasjs/actions/workflows/lint.yml"><img src="https://github.com/faasjs/faasjs/actions/workflows/lint.yml/badge.svg"></a><br><a href="https://codecov.io/gh/faasjs/faasjs"><img src="https://img.shields.io/codecov/c/github/faasjs/faasjs.svg"></a><a href="https://github.com/faasjs/faasjs"><img src="https://badgen.net/github/commits/faasjs/faasjs"></a><br><a href="https://github.com/faasjs/faasjs"><img src="https://badgen.net/github/last-commit/faasjs/faasjs"></a></div></div><h2 id="features" tabindex="-1"><a class="header-anchor" href="#features"><span>Features</span></a></h2><h3 id="featherweight-development-collaboration" tabindex="-1"><a class="header-anchor" href="#featherweight-development-collaboration"><span>Featherweight Development & Collaboration</span></a></h3><ul><li>Break down complex projects into manageable components with the <strong>atomized development model</strong>.</li><li>Enjoy <strong>fast iterations</strong> and <strong>seamless</strong> team collaboration.</li><li>Jump start development with <strong>pre-built plugins</strong> for common functionalities like HTTP and Knex.</li></ul><h3 id="high-maintainability" tabindex="-1"><a class="header-anchor" href="#high-maintainability"><span>High maintainability</span></a></h3><ul><li>The <strong>FaaS architecture</strong> ensures isolated cloud functions, preventing domino-effect errors.</li><li><strong>Automated testing tools</strong> built-in for <strong>robust and efficient testing</strong>.</li></ul><h3 id="high-scalability" tabindex="-1"><a class="header-anchor" href="#high-scalability"><span>High scalability</span></a></h3><ul><li>Extend your application effortlessly with <strong>flexible and simple plugin mechanisms</strong>.</li><li><strong>Freely scale</strong> your functions up or down based on demand.</li></ul><h2 id="quick-start" tabindex="-1"><a class="header-anchor" href="#quick-start"><span>Quick start</span></a></h2><h3 id="start-with-codespace-and-template" tabindex="-1"><a class="header-anchor" href="#start-with-codespace-and-template"><span>Start with Codespace and Template</span></a></h3><p><a href="https://github.com/faasjs/nextjs-starter" target="_blank" rel="noopener noreferrer">🔨 FaasJS & Next.js Stater</a></p><p><a href="https://github.com/faasjs/starter" target="_blank" rel="noopener noreferrer">🔨 Pure FaasJS Stater</a></p><h3 id="start-with-command-line" tabindex="-1"><a class="header-anchor" href="#start-with-command-line"><span>Start with Command Line</span></a></h3><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh"><pre><code><span class="line"><span class="token comment"># use npm</span></span>
<span class="line">npx create-faas-app <span class="token parameter variable">--name</span> faasjs</span>
<span class="line"></span>
<span class="line"><span class="token comment"># use bun</span></span>
<span class="line">bunx create-faas-app <span class="token parameter variable">--name</span> faasjs</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="examples" tabindex="-1"><a class="header-anchor" href="#examples"><span>Examples</span></a></h2><h3 id="cloud-function-s-file" tabindex="-1"><a class="header-anchor" href="#cloud-function-s-file"><span>Cloud function's file</span></a></h3><div class="language-typescript line-numbers-mode" data-highlighter="prismjs" data-ext="ts"><pre><code><span class="line"><span class="token comment">// index.func.ts</span></span>
<span class="line"><span class="token comment">// all cloud function file should be ended with .func.ts</span></span>
<span class="line"><span class="token keyword">import</span> <span class="token punctuation">{</span> useFunc <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@faasjs/func'</span></span>
<span class="line"><span class="token keyword">import</span> <span class="token punctuation">{</span> useHttp <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@faasjs/http'</span></span>
<span class="line"></span>
<span class="line"><span class="token keyword">export</span> <span class="token keyword">const</span> func <span class="token operator">=</span> <span class="token function">useFunc</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token function">useHttp</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">// use http plugin</span></span>
<span class="line"></span>
<span class="line"> <span class="token keyword">return</span> <span class="token keyword">async</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token keyword">return</span> <span class="token string">'Hello, world'</span> <span class="token comment">// response content</span></span>
<span class="line"> <span class="token punctuation">}</span></span>
<span class="line"><span class="token punctuation">}</span><span class="token punctuation">)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="unit-test-s-file" tabindex="-1"><a class="header-anchor" href="#unit-test-s-file"><span>Unit test's file</span></a></h3><div class="language-typescript line-numbers-mode" data-highlighter="prismjs" data-ext="ts"><pre><code><span class="line"><span class="token comment">// __tests__/index.test.ts</span></span>
<span class="line"><span class="token comment">// all unit test file should be ended with .test.ts</span></span>
<span class="line"><span class="token keyword">import</span> <span class="token punctuation">{</span> test <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@faasjs/test'</span></span>
<span class="line"><span class="token keyword">import</span> Func <span class="token keyword">from</span> <span class="token string">'../index.func'</span></span>
<span class="line"></span>
<span class="line"><span class="token function">describe</span><span class="token punctuation">(</span><span class="token string">'index'</span><span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token function">it</span><span class="token punctuation">(</span><span class="token string">'should work'</span><span class="token punctuation">,</span> <span class="token keyword">async</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token comment">// wrap the cloud function</span></span>
<span class="line"> <span class="token keyword">const</span> func <span class="token operator">=</span> <span class="token function">test</span><span class="token punctuation">(</span>Func<span class="token punctuation">)</span></span>
<span class="line"></span>
<span class="line"> <span class="token comment">// mock the request</span></span>
<span class="line"> <span class="token keyword">const</span> <span class="token punctuation">{</span> statusCode<span class="token punctuation">,</span> data <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token keyword">await</span> func<span class="token punctuation">.</span><span class="token function">JSONhandler</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
<span class="line"></span>
<span class="line"> <span class="token comment">// expect the response with 200 status</span></span>
<span class="line"> <span class="token function">expect</span><span class="token punctuation">(</span>statusCode<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toEqual</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">)</span></span>
<span class="line"> <span class="token comment">// expect the response content is 'Hello, world'</span></span>
<span class="line"> <span class="token function">expect</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toEqual</span><span class="token punctuation">(</span><span class="token string">'Hello, world'</span><span class="token punctuation">)</span></span>
<span class="line"> <span class="token punctuation">}</span><span class="token punctuation">)</span></span>
<span class="line"><span class="token punctuation">}</span><span class="token punctuation">)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="thanks" tabindex="-1"><a class="header-anchor" href="#thanks"><span>Thanks</span></a></h2><p>Code contributors (in alphabetical order):</p><div style="display:flex;flex-wrap:wrap;gap:4px;"><a href="https://github.com/Germiniku" target="_blank">Germini</a>, <a href="https://github.com/hiisea" target="_blank">hiisea</a>, <a href="https://github.com/iHeyTang">iHeyTang</a>, <a href="https://github.com/luckyporo" target="_blank">luckyporo</a>, <a href="https://github.com/mingkang1993" target="_blank">mingkang1993</a>, <a href="https://github.com/minzojian" target="_blank">minzojian</a>, <a href="https://github.com/onichandame" target="_blank">onichandame</a>, <a href="https://github.com/Vibutnum" target="_blank">Vibutnum</a>, <a href="https://github.com/victoryifei" target="_blank">victoryifei</a>, <a href="https://github.com/WittCsharp" target="_blank">WittCsharp</a>, <a href="https://github.com/zfben" target="_blank">zfben</a></div><p>Open source projects (in alphabetical order):</p><div style="display:flex;flex-wrap:wrap;gap:4px;margin-bottom:2em;"><a href="https://biomejs.dev/" target="_blank">Biome</a>, <a href="https://jestjs.io/" target="_blank">Jest</a>, <a href="https://knexjs.org/" target="_blank">Knex</a>, <a href="https://nodejs.org/" target="_blank">Node.js</a>, <a href="https://react.dev/" target="_blank">React</a>, <a href="https://rollupjs.org/" target="_blank">Rollup.js</a>, <a href="https://www.typescriptlang.org/" target="_blank">TypeScript</a>, <a href="https://vuepress.vuejs.org/" target="_blank">VuePress</a></div></div></div><!--[--><div class="vp-footer" vp-footer>An atomic application framework built for the TypeScript developer. | MIT Licensed | Copyright © 2019-2024 Zhu Feng</div><!--]--></main><!--]--></div><!--[--><!----><!--]--><!--]--></div>
<script type="module" src="/assets/app-CeuSItVv.js" defer></script>
</body>
</html>