firebase-functions
Version:
Firebase SDK for Cloud Functions
82 lines (80 loc) • 2.64 kB
JavaScript
import { __export } from "../../_virtual/rolldown_runtime.mjs";
import { initV1Endpoint } from "../../runtime/manifest.mjs";
import { convertIfPresent, convertInvoker } from "../../common/encoding.mjs";
import { withInit } from "../../common/onInit.mjs";
import { optionsToEndpoint, optionsToTrigger } from "../cloud-functions.mjs";
import { HttpsError, onCallHandler, withErrorHandler } from "../../common/providers/https.mjs";
import { wrapTraceContext } from "../../v2/trace.mjs";
//#region src/v1/providers/https.ts
var https_exports = /* @__PURE__ */ __export({
HttpsError: () => HttpsError,
_onCallWithOptions: () => _onCallWithOptions,
_onRequestWithOptions: () => _onRequestWithOptions,
onCall: () => onCall,
onRequest: () => onRequest
});
/**
* Handle HTTP requests.
* @param handler A function that takes a request and response object,
* same signature as an Express app.
*/
function onRequest(handler) {
return _onRequestWithOptions(handler, {});
}
/**
* Declares a callable method for clients to call using a Firebase SDK.
* @param handler A method that takes a data and context and returns a value.
*/
function onCall(handler) {
return _onCallWithOptions(handler, {});
}
/** @internal */
function _onRequestWithOptions(handler, options) {
const cloudFunction = (req, res) => {
return wrapTraceContext(withInit(withErrorHandler(handler)))(req, res);
};
cloudFunction.__trigger = {
...optionsToTrigger(options),
httpsTrigger: {}
};
convertIfPresent(cloudFunction.__trigger.httpsTrigger, options, "invoker", "invoker", convertInvoker);
cloudFunction.__endpoint = {
platform: "gcfv1",
...initV1Endpoint(options),
...optionsToEndpoint(options),
httpsTrigger: {}
};
convertIfPresent(cloudFunction.__endpoint.httpsTrigger, options, "invoker", "invoker", convertInvoker);
return cloudFunction;
}
/** @internal */
function _onCallWithOptions(handler, options) {
const fixedLen = (data, context) => {
return withInit(handler)(data, context);
};
const func = wrapTraceContext(onCallHandler({
enforceAppCheck: options.enforceAppCheck,
consumeAppCheckToken: options.consumeAppCheckToken,
cors: {
origin: true,
methods: "POST"
}
}, fixedLen, "gcfv1"));
func.__trigger = {
labels: {},
...optionsToTrigger(options),
httpsTrigger: {}
};
func.__trigger.labels["deployment-callable"] = "true";
func.__endpoint = {
platform: "gcfv1",
labels: {},
...initV1Endpoint(options),
...optionsToEndpoint(options),
callableTrigger: {}
};
func.run = fixedLen;
return func;
}
//#endregion
export { HttpsError, _onCallWithOptions, _onRequestWithOptions, https_exports, onCall, onRequest };