UNPKG

voluptasmollitia

Version:
54 lines (48 loc) 1.67 kB
/** * @license * Copyright 2019 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. */ import { FirebaseNamespace } from './public-types'; import { createSubscribe, deepExtend, ErrorFactory } from '@firebase/util'; import { FirebaseAppImpl } from './firebaseApp'; import { createFirebaseNamespaceCore } from './firebaseNamespaceCore'; /** * Return a firebase namespace object. * * In production, this will be called exactly once and the result * assigned to the 'firebase' global. It may be called multiple times * in unit tests. */ export function createFirebaseNamespace(): FirebaseNamespace { const namespace = createFirebaseNamespaceCore(FirebaseAppImpl); namespace.INTERNAL = { ...namespace.INTERNAL, createFirebaseNamespace, extendNamespace, createSubscribe, ErrorFactory, deepExtend }; /** * Patch the top-level firebase namespace with additional properties. * * firebase.INTERNAL.extendNamespace() */ function extendNamespace(props: { [prop: string]: unknown }): void { deepExtend(namespace, props); } return namespace; } export const firebase = createFirebaseNamespace();