Get rid of global moment and page

* Replace the global moment and page variables with named imports.
* Update gr-app-global-var-init.js

Change-Id: I3e084539332efd8344fb76b56b405ffd69bec03f
This commit is contained in:
Dmitrii Filippov
2020-03-24 16:20:44 +01:00
parent cd1a06940b
commit 8a856ffa6c
18 changed files with 28 additions and 14 deletions

View File

@@ -189,8 +189,6 @@ module.exports = {
"Polymer": "readonly", "Polymer": "readonly",
"ShadyCSS": "readonly", "ShadyCSS": "readonly",
"linkify": "readonly", "linkify": "readonly",
"moment": "readonly",
"page": "readonly",
"security": "readonly", "security": "readonly",
}, },
"overrides": [ "overrides": [

View File

@@ -27,6 +27,7 @@ import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import {htmlTemplate} from './gr-create-group-dialog_html.js'; import {htmlTemplate} from './gr-create-group-dialog_html.js';
import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js'; import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js';
import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js'; import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js';
import page from 'page/page.mjs';
/** /**
* @extends Polymer.Element * @extends Polymer.Element

View File

@@ -34,6 +34,8 @@ limitations under the License.
<script type="module"> <script type="module">
import '../../../test/common-test-setup.js'; import '../../../test/common-test-setup.js';
import './gr-create-group-dialog.js'; import './gr-create-group-dialog.js';
import page from 'page/page.mjs';
suite('gr-create-group-dialog tests', () => { suite('gr-create-group-dialog tests', () => {
let element; let element;
let sandbox; let sandbox;

View File

@@ -29,6 +29,7 @@ import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import {htmlTemplate} from './gr-create-pointer-dialog_html.js'; import {htmlTemplate} from './gr-create-pointer-dialog_html.js';
import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js'; import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js';
import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js'; import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js';
import page from 'page/page.mjs';
const DETAIL_TYPES = { const DETAIL_TYPES = {
branches: 'branches', branches: 'branches',

View File

@@ -30,6 +30,7 @@ import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import {htmlTemplate} from './gr-create-repo-dialog_html.js'; import {htmlTemplate} from './gr-create-repo-dialog_html.js';
import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js'; import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js';
import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js'; import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js';
import page from 'page/page.mjs';
/** /**
* @extends Polymer.Element * @extends Polymer.Element

View File

@@ -34,6 +34,7 @@ limitations under the License.
<script type="module"> <script type="module">
import '../../../test/common-test-setup.js'; import '../../../test/common-test-setup.js';
import './gr-repo-detail-list.js'; import './gr-repo-detail-list.js';
import page from 'page/page.mjs';
import {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js'; import {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';
let counter; let counter;
const branchGenerator = () => { const branchGenerator = () => {

View File

@@ -34,6 +34,8 @@ limitations under the License.
<script type="module"> <script type="module">
import '../../../test/common-test-setup.js'; import '../../../test/common-test-setup.js';
import './gr-repo-list.js'; import './gr-repo-list.js';
import page from 'page/page.mjs';
let counter; let counter;
const repoGenerator = () => { const repoGenerator = () => {
return { return {

View File

@@ -30,6 +30,7 @@ import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import {htmlTemplate} from './gr-change-list-view_html.js'; import {htmlTemplate} from './gr-change-list-view_html.js';
import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js'; import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js';
import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js'; import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js';
import page from 'page/page.mjs';
const LookupQueryPatterns = { const LookupQueryPatterns = {
CHANGE_ID: /^\s*i?[0-9a-f]{7,40}\s*$/i, CHANGE_ID: /^\s*i?[0-9a-f]{7,40}\s*$/i,

View File

@@ -34,6 +34,8 @@ limitations under the License.
<script type="module"> <script type="module">
import '../../../test/common-test-setup.js'; import '../../../test/common-test-setup.js';
import './gr-change-list-view.js'; import './gr-change-list-view.js';
import page from 'page/page.mjs';
const CHANGE_ID = 'IcA3dAB3edAB9f60B8dcdA6ef71A75980e4B7127'; const CHANGE_ID = 'IcA3dAB3edAB9f60B8dcdA6ef71A75980e4B7127';
const COMMIT_HASH = '12345678'; const COMMIT_HASH = '12345678';

View File

@@ -24,7 +24,6 @@ import {GestureEventListeners} from '@polymer/polymer/lib/mixins/gesture-event-l
import {LegacyElementMixin} from '@polymer/polymer/lib/legacy/legacy-element-mixin.js'; import {LegacyElementMixin} from '@polymer/polymer/lib/legacy/legacy-element-mixin.js';
import {PolymerElement} from '@polymer/polymer/polymer-element.js'; import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import page from 'page/page.mjs'; import page from 'page/page.mjs';
self.page = page;
import {htmlTemplate} from './gr-router_html.js'; import {htmlTemplate} from './gr-router_html.js';
import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js'; import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js';
import {PatchSetBehavior} from '../../../behaviors/gr-patch-set-behavior/gr-patch-set-behavior.js'; import {PatchSetBehavior} from '../../../behaviors/gr-patch-set-behavior/gr-patch-set-behavior.js';

View File

@@ -33,6 +33,7 @@ limitations under the License.
<script type="module"> <script type="module">
import '../../../test/common-test-setup.js'; import '../../../test/common-test-setup.js';
import './gr-router.js'; import './gr-router.js';
import page from 'page/page.mjs';
suite('gr-router tests', () => { suite('gr-router tests', () => {
let element; let element;
let sandbox; let sandbox;
@@ -149,9 +150,8 @@ suite('gr-router tests', () => {
const requiresAuth = {}; const requiresAuth = {};
const doesNotRequireAuth = {}; const doesNotRequireAuth = {};
sandbox.stub(Gerrit.Nav, 'setup'); sandbox.stub(Gerrit.Nav, 'setup');
sandbox.stub(window.page, 'start'); sandbox.stub(page, 'start');
sandbox.stub(window.page, 'base'); sandbox.stub(page, 'base');
sandbox.stub(window, 'page');
sandbox.stub(element, '_mapRoute', (pattern, methodName, usesAuth) => { sandbox.stub(element, '_mapRoute', (pattern, methodName, usesAuth) => {
if (usesAuth) { if (usesAuth) {
requiresAuth[methodName] = true; requiresAuth[methodName] = true;
@@ -676,11 +676,10 @@ suite('gr-router tests', () => {
const onRegisteringExit = (match, _onExit) => { const onRegisteringExit = (match, _onExit) => {
onExit = _onExit; onExit = _onExit;
}; };
sandbox.stub(window.page, 'exit', onRegisteringExit); sandbox.stub(page, 'exit', onRegisteringExit);
sandbox.stub(Gerrit.Nav, 'setup'); sandbox.stub(Gerrit.Nav, 'setup');
sandbox.stub(window.page, 'start'); sandbox.stub(page, 'start');
sandbox.stub(window.page, 'base'); sandbox.stub(page, 'base');
sandbox.stub(window, 'page');
element._startRouter(); element._startRouter();
const appElementStub = {dispatchEvent: sinon.stub()}; const appElementStub = {dispatchEvent: sinon.stub()};

View File

@@ -34,6 +34,8 @@ limitations under the License.
<script type="module"> <script type="module">
import '../../../test/common-test-setup.js'; import '../../../test/common-test-setup.js';
import './gr-documentation-search.js'; import './gr-documentation-search.js';
import page from 'page/page.mjs';
let counter; let counter;
const documentationGenerator = () => { const documentationGenerator = () => {
return { return {

View File

@@ -45,8 +45,6 @@ import {mixinBehaviors} from '@polymer/polymer/lib/legacy/class.js';
import {GestureEventListeners} from '@polymer/polymer/lib/mixins/gesture-event-listeners.js'; import {GestureEventListeners} from '@polymer/polymer/lib/mixins/gesture-event-listeners.js';
import {LegacyElementMixin} from '@polymer/polymer/lib/legacy/legacy-element-mixin.js'; import {LegacyElementMixin} from '@polymer/polymer/lib/legacy/legacy-element-mixin.js';
import {PolymerElement} from '@polymer/polymer/polymer-element.js'; import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import moment from 'moment/src/moment.js';
self.moment = moment;
import {htmlTemplate} from './gr-app-element_html.js'; import {htmlTemplate} from './gr-app-element_html.js';
import {BaseUrlBehavior} from '../behaviors/base-url-behavior/base-url-behavior.js'; import {BaseUrlBehavior} from '../behaviors/base-url-behavior/base-url-behavior.js';
import {KeyboardShortcutBehavior} from '../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.js'; import {KeyboardShortcutBehavior} from '../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.js';

View File

@@ -48,6 +48,8 @@ import {GrRangeNormalizer} from './diff/gr-diff-highlight/gr-range-normalizer.js
import {GrCountStringFormatter} from './shared/gr-count-string-formatter/gr-count-string-formatter.js'; import {GrCountStringFormatter} from './shared/gr-count-string-formatter/gr-count-string-formatter.js';
import {GrReviewerSuggestionsProvider} from '../scripts/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider.js'; import {GrReviewerSuggestionsProvider} from '../scripts/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider.js';
import {util} from '../scripts/util.js'; import {util} from '../scripts/util.js';
import moment from 'moment/src/moment.js';
import page from 'page/page.mjs';
export function initGlobalVariables() { export function initGlobalVariables() {
window.GrDisplayNameUtils = GrDisplayNameUtils; window.GrDisplayNameUtils = GrDisplayNameUtils;
@@ -79,4 +81,6 @@ export function initGlobalVariables() {
window.GrCountStringFormatter = GrCountStringFormatter; window.GrCountStringFormatter = GrCountStringFormatter;
window.GrReviewerSuggestionsProvider = GrReviewerSuggestionsProvider; window.GrReviewerSuggestionsProvider = GrReviewerSuggestionsProvider;
window.util = util; window.util = util;
window.moment = moment;
window.page = page;
} }

View File

@@ -25,6 +25,7 @@ import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import {htmlTemplate} from './gr-date-formatter_html.js'; import {htmlTemplate} from './gr-date-formatter_html.js';
import {TooltipBehavior} from '../../../behaviors/gr-tooltip-behavior/gr-tooltip-behavior.js'; import {TooltipBehavior} from '../../../behaviors/gr-tooltip-behavior/gr-tooltip-behavior.js';
import {util} from '../../../scripts/util.js'; import {util} from '../../../scripts/util.js';
import moment from 'moment/src/moment.js';
const Duration = { const Duration = {
HOUR: 1000 * 60 * 60, HOUR: 1000 * 60 * 60,

View File

@@ -27,6 +27,7 @@ import {PolymerElement} from '@polymer/polymer/polymer-element.js';
import {htmlTemplate} from './gr-list-view_html.js'; import {htmlTemplate} from './gr-list-view_html.js';
import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js'; import {BaseUrlBehavior} from '../../../behaviors/base-url-behavior/base-url-behavior.js';
import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js'; import {URLEncodingBehavior} from '../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.js';
import page from 'page/page.mjs';
const REQUEST_DEBOUNCE_INTERVAL_MS = 200; const REQUEST_DEBOUNCE_INTERVAL_MS = 200;

View File

@@ -33,6 +33,8 @@ limitations under the License.
<script type="module"> <script type="module">
import '../../../test/common-test-setup.js'; import '../../../test/common-test-setup.js';
import './gr-list-view.js'; import './gr-list-view.js';
import page from 'page/page.mjs';
suite('gr-list-view tests', () => { suite('gr-list-view tests', () => {
let element; let element;
let sandbox; let sandbox;

View File

@@ -19,10 +19,9 @@ import '../scripts/bundled-polymer.js';
import 'polymer-resin/standalone/polymer-resin.js'; import 'polymer-resin/standalone/polymer-resin.js';
import '@polymer/iron-test-helpers/iron-test-helpers.js'; import '@polymer/iron-test-helpers/iron-test-helpers.js';
import './test-router.js'; import './test-router.js';
import moment from 'moment/src/moment.js';
import {SafeTypes} from '../behaviors/safe-types-behavior/safe-types-behavior.js'; import {SafeTypes} from '../behaviors/safe-types-behavior/safe-types-behavior.js';
import {initAppContext} from '../services/app-context-init.js'; import {initAppContext} from '../services/app-context-init.js';
self.moment = moment;
security.polymer_resin.install({ security.polymer_resin.install({
allowedIdentifierPrefixes: [''], allowedIdentifierPrefixes: [''],
reportHandler(isViolation, fmt, ...args) { reportHandler(isViolation, fmt, ...args) {