Skip to content
This repository has been archived by the owner on Aug 1, 2024. It is now read-only.

Commit

Permalink
Change ModuleLoadFailureType to class for containing extra status code
Browse files Browse the repository at this point in the history
RELNOTES[INC]: Change `ModuleLoadFailureType` to class for containing extra status code

PiperOrigin-RevId: 441302106
Change-Id: I34b98ae7294364be0e4afc43ada460d4c919fba7
  • Loading branch information
Closure Team authored and copybara-github committed Apr 12, 2022
1 parent ebba7d9 commit 8e3cd9f
Show file tree
Hide file tree
Showing 6 changed files with 163 additions and 179 deletions.
13 changes: 12 additions & 1 deletion closure/goog/module/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,31 @@ closure_js_library(
name = "moduleinfo",
srcs = [
"moduleinfo.js",
"moduleloadfailuretype.js",
],
lenient = True,
exports = [
":moduleloadfailure",
],
deps = [
":basemodule",
":module",
":moduleloadcallback",
":moduleloadfailure",
"//closure/goog/async:throwexception",
"//closure/goog/disposable",
"//closure/goog/functions",
"//closure/goog/html:trustedresourceurl",
],
)

closure_js_library(
name = "moduleloadfailure",
srcs = [
"moduleloadfailure.js",
],
lenient = True,
)

closure_js_library(
name = "moduleloadcallback",
srcs = ["moduleloadcallback.js"],
Expand Down
4 changes: 2 additions & 2 deletions closure/goog/module/moduleinfo.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ goog.require('goog.html.TrustedResourceUrl');
goog.require('goog.module');
goog.require('goog.module.BaseModule');
goog.require('goog.module.ModuleLoadCallback');
goog.require('goog.module.ModuleLoadFailureType');
goog.requireType('goog.module.ModuleLoadFailure');



Expand Down Expand Up @@ -301,7 +301,7 @@ goog.module.ModuleInfo.prototype.onLoad = function(contextProvider) {

/**
* Calls the error callbacks for the module.
* @param {goog.module.ModuleLoadFailureType} cause What caused the
* @param {!goog.module.ModuleLoadFailure} cause What caused the
* error.
*/
goog.module.ModuleInfo.prototype.onError = function(cause) {
Expand Down
83 changes: 83 additions & 0 deletions closure/goog/module/moduleloadfailure.js
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;
59 changes: 0 additions & 59 deletions closure/goog/module/moduleloadfailuretype.js

This file was deleted.

Loading

0 comments on commit 8e3cd9f

Please sign in to comment.