This repository has been archived by the owner on Aug 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change
ModuleLoadFailureType
to class for containing extra status code
RELNOTES[INC]: Change `ModuleLoadFailureType` to class for containing extra status code PiperOrigin-RevId: 441302106 Change-Id: I34b98ae7294364be0e4afc43ada460d4c919fba7
- Loading branch information
1 parent
ebba7d9
commit 8e3cd9f
Showing
6 changed files
with
163 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
/** | ||
* @license | ||
* Copyright The Closure Library Authors. | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
/** | ||
* @fileoverview The possible reasons for a module load failure callback being | ||
* fired. Moved to a separate file to allow it to be used across packages. | ||
*/ | ||
|
||
goog.module('goog.module.ModuleLoadFailure'); | ||
goog.module.declareLegacyNamespace(); | ||
|
||
class ModuleLoadFailure { | ||
/** | ||
* @param {!ModuleLoadFailure.Type} type | ||
* @param {number=} status Optional http error status associated with this | ||
* failure. This should be `undefined` if there was no associated http | ||
* error status (i.e. do not use values like -1). | ||
*/ | ||
constructor(type, status = undefined) { | ||
/** @const {!ModuleLoadFailure.Type} */ | ||
this.type = type; | ||
/** @const {number|undefined} */ | ||
this.status = status; | ||
} | ||
|
||
/** | ||
* @return {string} | ||
* @override | ||
*/ | ||
toString() { | ||
return `${this.getReadableError_()} (${ | ||
this.status != undefined ? this.status : '?'})`; | ||
} | ||
|
||
/** | ||
* Gets a human readable error message for a failure type. | ||
* @return {string} The readable error message. | ||
* @private | ||
*/ | ||
getReadableError_() { | ||
switch (this.type) { | ||
case ModuleLoadFailure.Type.UNAUTHORIZED: | ||
return 'Unauthorized'; | ||
case ModuleLoadFailure.Type.CONSECUTIVE_FAILURES: | ||
return 'Consecutive load failures'; | ||
case ModuleLoadFailure.Type.TIMEOUT: | ||
return 'Timed out'; | ||
case ModuleLoadFailure.Type.OLD_CODE_GONE: | ||
return 'Out of date module id'; | ||
case ModuleLoadFailure.Type.INIT_ERROR: | ||
return 'Init error'; | ||
default: | ||
return `Unknown failure type ${this.type}`; | ||
} | ||
} | ||
} | ||
|
||
/** | ||
* The possible reasons for a module load failure callback being fired. | ||
* @enum {number} | ||
*/ | ||
const Type = { | ||
/** 401 Status. */ | ||
UNAUTHORIZED: 0, | ||
|
||
/** Error status (not 401) returned multiple times. */ | ||
CONSECUTIVE_FAILURES: 1, | ||
|
||
/** Request timeout. */ | ||
TIMEOUT: 2, | ||
|
||
/** 410 status, old code gone. */ | ||
OLD_CODE_GONE: 3, | ||
|
||
/** The onLoad callbacks failed. */ | ||
INIT_ERROR: 4 | ||
}; | ||
|
||
exports = ModuleLoadFailure; | ||
exports.Type = Type; |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.