owltech
Version:
This a backend for OwlTech Company
87 lines (86 loc) • 2.56 kB
TypeScript
/**
* @license
* Copyright 2017 Google Inc.
*
* 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.
*/
/**
* @fileoverview Standardized Firebase Error.
*
* Usage:
*
* // Typescript string literals for type-safe codes
* type Err =
* 'unknown' |
* 'object-not-found'
* ;
*
* // Closure enum for type-safe error codes
* // at-enum {string}
* var Err = {
* UNKNOWN: 'unknown',
* OBJECT_NOT_FOUND: 'object-not-found',
* }
*
* let errors: Map<Err, string> = {
* 'generic-error': "Unknown error",
* 'file-not-found': "Could not find file: {$file}",
* };
*
* // Type-safe function - must pass a valid error code as param.
* let error = new ErrorFactory<Err>('service', 'Service', errors);
*
* ...
* throw error.create(Err.GENERIC);
* ...
* throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});
* ...
* // Service: Could not file file: foo.txt (service/file-not-found).
*
* catch (e) {
* assert(e.message === "Could not find file: foo.txt.");
* if (e.code === 'service/file-not-found') {
* console.log("Could not read file: " + e['file']);
* }
* }
*/
export declare type ErrorList<T> = {
[code: string]: string;
};
export interface StringLike {
toString: () => string;
}
export declare function patchCapture(captureFake?: any): any;
export interface FirebaseError {
code: string;
message: string;
name: string;
stack: string;
}
export declare class FirebaseError implements FirebaseError {
code: string;
message: string;
stack: string;
name: string;
constructor(code: string, message: string);
}
export declare class ErrorFactory<T extends string> {
private service;
private serviceName;
private errors;
pattern: RegExp;
constructor(service: string, serviceName: string, errors: ErrorList<T>);
create(code: T, data?: {
[prop: string]: StringLike;
}): FirebaseError;
}