firebase-admin
Version:
Firebase admin SDK for Node.js
80 lines (79 loc) • 3.4 kB
JavaScript
/*! firebase-admin v13.6.1 */
;
/*!
* @license
* Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports._validateAdminArgs = _validateAdminArgs;
const index_1 = require("./index");
const data_connect_api_client_internal_1 = require("./data-connect-api-client-internal");
/**
* @internal
*
* The generated Admin SDK will allow the user to pass in variables, a Data Connect
* instance, or operation options. The only required argument is the variables,
* which are only required when the operation has at least one required variable.
* Otherwise, all arguments are optional.
*
* This function validates the variables and returns back the DataConnect instance,
* variables, and options based on the arguments passed in. It always returns a
* DataConnect instance, using the connectorConfig to grab one if not provided.
*
* For this function to work properly, if the operation has variables (optional
* are required), you must pass hasVars: true (if there are no variables, it is
* not required, since undefined is false-y).
*
* Usage examples can be found in test files.
*
* @param connectorConfig - DataConnect connector config
* @param dcOrVarsOrOptions - the first argument provided to a generated admin function
* @param varsOrOptions - the second argument provided to a generated admin function
* @param options - the third argument provided to a generated admin function
* @param hasVars - boolean parameter indicating whether the operation has variables
* @param validateVars - boolean parameter indicating whether we should expect to find a value for realVars
* @returns parsed DataConnect, Variables, and Options for the operation
*/
function _validateAdminArgs(connectorConfig, dcOrVarsOrOptions, varsOrOptions, options, hasVars, validateVars) {
let dcInstance;
let realVars;
let realOptions;
if (dcOrVarsOrOptions && 'connectorConfig' in dcOrVarsOrOptions) {
dcInstance = dcOrVarsOrOptions;
if (hasVars) {
realVars = varsOrOptions;
realOptions = options;
}
else {
realVars = undefined;
realOptions = varsOrOptions;
}
}
else {
dcInstance = (0, index_1.getDataConnect)(connectorConfig);
if (hasVars) {
realVars = dcOrVarsOrOptions;
realOptions = varsOrOptions;
}
else {
realVars = undefined;
realOptions = dcOrVarsOrOptions;
}
}
if (!dcInstance || (!realVars && validateVars)) {
throw new data_connect_api_client_internal_1.FirebaseDataConnectError(data_connect_api_client_internal_1.DATA_CONNECT_ERROR_CODE_MAPPING.INVALID_ARGUMENT, 'Variables required.');
}
return { dc: dcInstance, vars: realVars, options: realOptions };
}