Skip to content

Commit

Permalink
♻️ Enable import/order on not-recently-updated extensions (#35649)
Browse files Browse the repository at this point in the history
* Enable import/order for not-recently-touched extensions

* Lint autofix

* drop amp-nexxtv-player exclude

* code review fixes

* Extract exclusions into json per Alan suggestion

* Revert changes to link-rewriter/story-interactive

* Lint fixes

* Fix merge error

* Move rule change to extensions/eslintrc for OWNERS
  • Loading branch information
rcebulko committed Aug 12, 2021
1 parent 481b4e6 commit 82cc058
Show file tree
Hide file tree
Showing 516 changed files with 2,963 additions and 1,948 deletions.
29 changes: 29 additions & 0 deletions extensions/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
* Copyright 2021 The AMP HTML Authors. All Rights Reserved.
*
* 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.
*/

// These extensions have been modified in the last 2 weeks, so we're not
// including them yet to minimize disruption to devs actively working on them.
const EXCLUDED_EXTENSIONS = require('./import-order-excluded.json');

module.exports = {
'rules': {'import/order': 2},
'overrides': [
{
'files': EXCLUDED_EXTENSIONS.map((ext) => `./${ext}/**/*.js`),
'rules': {'import/order': 0},
},
],
};
16 changes: 9 additions & 7 deletions extensions/amp-3d-gltf/0.1/amp-3d-gltf.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,8 @@
*/
import {ActionTrust} from '#core/constants/action-constants';
import {Deferred} from '#core/data-structures/promise';
import {Services} from '#service';
import {removeElement} from '#core/dom';
import {applyFillContent, isLayoutSizeDefined} from '#core/dom/layout';
import {assertHttpsUrl, resolveRelativeUrl} from '../../../src/url';
import {dev, devAssert} from '../../../src/log';
import {dict} from '#core/types/object';
import {getIframe, preloadBootstrap} from '../../../src/3p-frame';
import {listenFor, postMessage} from '../../../src/iframe-helper';
import {
observeContentSize,
unobserveContentSize,
Expand All @@ -30,7 +25,14 @@ import {
observeWithSharedInOb,
unobserveWithSharedInOb,
} from '#core/dom/layout/viewport-observer';
import {removeElement} from '#core/dom';
import {dict} from '#core/types/object';

import {Services} from '#service';

import {getIframe, preloadBootstrap} from '../../../src/3p-frame';
import {listenFor, postMessage} from '../../../src/iframe-helper';
import {dev, devAssert} from '../../../src/log';
import {assertHttpsUrl, resolveRelativeUrl} from '../../../src/url';

const TAG = 'amp-3d-gltf';
const TYPE = '3d-gltf';
Expand Down
24 changes: 13 additions & 11 deletions extensions/amp-3q-player/0.1/amp-3q-player.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,27 @@
*/

import {Deferred} from '#core/data-structures/promise';
import {removeElement} from '#core/dom';
import {
fullscreenEnter,
fullscreenExit,
isFullscreenElement,
} from '#core/dom/fullscreen';
import {isLayoutSizeDefined} from '#core/dom/layout';
import {PauseHelper} from '#core/dom/video/pause-helper';

import {Services} from '#service';
import {VideoEvents} from '../../../src/video-interface';
import {addParamToUrl} from '../../../src/url';
import {installVideoManagerForDoc} from '#service/video-manager-impl';

import {getData, listen} from '../../../src/event-helper';
import {
createFrameFor,
objOrParseJson,
redispatch,
} from '../../../src/iframe-video';
import {dev, userAssert} from '../../../src/log';
import {
fullscreenEnter,
fullscreenExit,
isFullscreenElement,
} from '#core/dom/fullscreen';
import {getData, listen} from '../../../src/event-helper';
import {installVideoManagerForDoc} from '#service/video-manager-impl';
import {isLayoutSizeDefined} from '#core/dom/layout';
import {removeElement} from '#core/dom';
import {addParamToUrl} from '../../../src/url';
import {VideoEvents} from '../../../src/video-interface';

const TAG = 'amp-3q-player';

Expand Down
7 changes: 5 additions & 2 deletions extensions/amp-3q-player/0.1/test/test-amp-3q-player.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,15 @@
*/

import '../amp-3q-player';
import {createElementWithAttributes} from '#core/dom';
import * as fullscreen from '#core/dom/fullscreen';

import {Services} from '#service';
import {VideoEvents} from '../../../../src/video-interface';
import {createElementWithAttributes} from '#core/dom';

import {installResizeObserverStub} from '#testing/resize-observer-stub';

import {listenOncePromise} from '../../../../src/event-helper';
import {VideoEvents} from '../../../../src/video-interface';

describes.realWin(
'amp-3q-player',
Expand Down
1 change: 1 addition & 0 deletions extensions/amp-a4a/0.1/a4a-variable-source.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import {
getTimingDataAsync,
getTimingDataSync,
} from '#service/variable-source';

import {user, userAssert} from '../../../src/log';

const ALLOWLISTED_VARIABLES = [
Expand Down
99 changes: 51 additions & 48 deletions extensions/amp-a4a/0.1/amp-a4a.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,81 +14,84 @@
* limitations under the License.
*/

import {A4AVariableSource} from './a4a-variable-source';
import {ADS_INITIAL_INTERSECTION_EXP} from '#experiments/ads-initial-intersection-exp';
import {signingServerURLs} from '#ads/_a4a-config';

import {CONSENT_POLICY_STATE} from '#core/constants/consent-state';
import {Deferred, tryResolve} from '#core/data-structures/promise';
import {DetachedDomStream, streamResponseToWriter} from '#core/dom/stream';
import {DomTransformStream} from '../../../src/utils/dom-tranform-stream';
import {GEO_IN_GROUP} from '../../amp-geo/0.1/amp-geo-in-group';
import {createElementWithAttributes} from '#core/dom';
import {
Layout,
LayoutPriority,
applyFillContent,
isLayoutSizeDefined,
} from '#core/dom/layout';
import {Services} from '#service';
import {SignatureVerifier, VerificationStatus} from './signature-verifier';
import {
applySandbox,
generateSentinel,
getDefaultBootstrapBaseUrl,
} from '../../../src/3p-frame';
import {assertHttpsUrl} from '../../../src/url';
import {cancellation, isCancellation} from '../../../src/error-reporting';
import {createElementWithAttributes} from '#core/dom';
intersectionEntryToJson,
measureIntersection,
} from '#core/dom/layout/intersection';
import {
observeWithSharedInOb,
unobserveWithSharedInOb,
} from '#core/dom/layout/viewport-observer';
import {DetachedDomStream, streamResponseToWriter} from '#core/dom/stream';
import {setStyle} from '#core/dom/style';
import {duplicateErrorIfNecessary} from '#core/error';
import {isArray, isEnumValue, isObject} from '#core/types';
import {dict} from '#core/types/object';
import {parseJson} from '#core/types/object/json';
import {padStart} from '#core/types/string';
import {utf8Decode} from '#core/types/string/bytes';
import {tryDecodeUriComponent} from '#core/types/string/url';

import {getExperimentBranch, isExperimentOn} from '#experiments';
import {ADS_INITIAL_INTERSECTION_EXP} from '#experiments/ads-initial-intersection-exp';

import {Services} from '#service';
import {installRealTimeConfigServiceForDoc} from '#service/real-time-config/real-time-config-impl';
import {installUrlReplacementsForEmbed} from '#service/url-replacements-impl';

import {A4AVariableSource} from './a4a-variable-source';
import {getExtensionsFromMetadata} from './amp-ad-utils';
import {processHead} from './head-validation';
import {
createSecureDocSkeleton,
createSecureFrame,
isAttributionReportingSupported,
} from './secure-frame';
import {dev, devAssert, logHashParam, user, userAssert} from '../../../src/log';
import {dict} from '#core/types/object';
import {duplicateErrorIfNecessary} from '#core/error';
import {SignatureVerifier, VerificationStatus} from './signature-verifier';
import {whenWithinViewport} from './within-viewport';

import {
getAmpAdRenderOutsideViewport,
incrementLoadingAds,
is3pThrottled,
} from '../../amp-ad/0.1/concurrent-load';
applySandbox,
generateSentinel,
getDefaultBootstrapBaseUrl,
} from '../../../src/3p-frame';
import {isAdPositionAllowed} from '../../../src/ad-helper';
import {triggerAnalyticsEvent} from '../../../src/analytics';
import {
getConsentMetadata,
getConsentPolicyInfo,
getConsentPolicyState,
} from '../../../src/consent';
import {getContextMetadata} from '../../../src/iframe-attributes';
import {getExperimentBranch, isExperimentOn} from '#experiments';
import {getExtensionsFromMetadata} from './amp-ad-utils';
import {getMode} from '../../../src/mode';
import {cancellation, isCancellation} from '../../../src/error-reporting';
import {listenOnce} from '../../../src/event-helper';
import {insertAnalyticsElement} from '../../../src/extension-analytics';
import {
installFriendlyIframeEmbed,
isSrcdocSupported,
preloadFriendlyIframeEmbedExtensions,
} from '../../../src/friendly-iframe-embed';
import {installRealTimeConfigServiceForDoc} from '#service/real-time-config/real-time-config-impl';
import {installUrlReplacementsForEmbed} from '#service/url-replacements-impl';
import {
intersectionEntryToJson,
measureIntersection,
} from '#core/dom/layout/intersection';
import {isAdPositionAllowed} from '../../../src/ad-helper';
import {isArray, isEnumValue, isObject} from '#core/types';
import {tryDecodeUriComponent} from '#core/types/string/url';

import {listenOnce} from '../../../src/event-helper';
import {getContextMetadata} from '../../../src/iframe-attributes';
import {dev, devAssert, logHashParam, user, userAssert} from '../../../src/log';
import {getMode} from '../../../src/mode';
import {assertHttpsUrl} from '../../../src/url';
import {DomTransformStream} from '../../../src/utils/dom-tranform-stream';
import {
observeWithSharedInOb,
unobserveWithSharedInOb,
} from '#core/dom/layout/viewport-observer';
import {padStart} from '#core/types/string';
import {parseJson} from '#core/types/object/json';
import {processHead} from './head-validation';
import {setStyle} from '#core/dom/style';
import {signingServerURLs} from '#ads/_a4a-config';

import {triggerAnalyticsEvent} from '../../../src/analytics';
import {utf8Decode} from '#core/types/string/bytes';
import {whenWithinViewport} from './within-viewport';
getAmpAdRenderOutsideViewport,
incrementLoadingAds,
is3pThrottled,
} from '../../amp-ad/0.1/concurrent-load';
import {GEO_IN_GROUP} from '../../amp-geo/0.1/amp-geo-in-group';

/** @type {Array<string>} */
const METADATA_STRINGS = [
Expand Down
6 changes: 4 additions & 2 deletions extensions/amp-a4a/0.1/amp-ad-network-base.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@
* limitations under the License.
*/

import {FailureType, RecoveryModeType} from './amp-ad-type-defs';
import {dev, devAssert} from '../../../src/log';
import {isLayoutSizeDefined} from '#core/dom/layout';
import {map} from '#core/types/object';

import {FailureType, RecoveryModeType} from './amp-ad-type-defs';
import {sendXhrRequest} from './amp-ad-utils';

import {dev, devAssert} from '../../../src/log';

const TAG = 'amp-ad-network-base';

/**
Expand Down
10 changes: 6 additions & 4 deletions extensions/amp-a4a/0.1/amp-ad-template-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,20 @@
*/

import {LruCache} from '#core/data-structures/lru-cache';
import {Services} from '#service';
import {createElementWithAttributes} from '#core/dom';
import {devAssert} from '../../../src/log';
import {isArray} from '#core/types';
import {dict} from '#core/types/object';

import {Services} from '#service';

import {urls} from '../../../src/config';
import {devAssert} from '../../../src/log';
import {getMode} from '../../../src/mode';
import {
getServiceForDoc,
registerServiceBuilderForDoc,
} from '../../../src/service-helpers';
import {isArray} from '#core/types';
import {parseUrlDeprecated} from '../../../src/url';
import {urls} from '../../../src/config';

/** @private {!Object<string, string|boolean>} */
const TEMPLATE_CORS_CONFIG = {
Expand Down
9 changes: 5 additions & 4 deletions extensions/amp-a4a/0.1/amp-ad-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {Services} from '#service';
import {dev} from '../../../src/log';
import {isArray, isObject} from '#core/types';
import {parseJson} from '#core/types/object/json';

import {isSecureUrlDeprecated} from '../../../src/url';
import {Services} from '#service';
import {parseExtensionUrl} from '#service/extension-script';
import {parseJson} from '#core/types/object/json';

import {urls} from '../../../src/config';
import {dev} from '../../../src/log';
import {isSecureUrlDeprecated} from '../../../src/url';

const TAG = 'amp-ad-util';

Expand Down
9 changes: 6 additions & 3 deletions extensions/amp-a4a/0.1/cryptographic-validator.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,15 @@
* limitations under the License.
*/

import {signingServerURLs} from '#ads/_a4a-config';

import {utf8Decode} from '#core/types/string/bytes';

import {AdResponseType, Validator, ValidatorResult} from './amp-ad-type-defs';
import {SignatureVerifier, VerificationStatus} from './signature-verifier';
import {getAmpAdMetadata} from './amp-ad-utils';
import {signingServerURLs} from '#ads/_a4a-config';
import {SignatureVerifier, VerificationStatus} from './signature-verifier';

import {user} from '../../../src/log';
import {utf8Decode} from '#core/types/string/bytes';

export const SIGNATURE_VERIFIER_PROPERTY_NAME =
'AMP_FAST_FETCH_SIGNATURE_VERIFIER_';
Expand Down
3 changes: 2 additions & 1 deletion extensions/amp-a4a/0.1/friendly-frame-renderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@
*/

import {Renderer} from './amp-ad-type-defs';
import {devAssert} from '../../../src/log';
import {renderCreativeIntoFriendlyFrame} from './friendly-frame-util';

import {devAssert} from '../../../src/log';

/**
* @typedef {{
* creativeMetadata: ./amp-ad-type-defs.CreativeMetaDataDef,
Expand Down
9 changes: 6 additions & 3 deletions extensions/amp-a4a/0.1/friendly-frame-util.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,16 @@
* limitations under the License.
*/

import {A4AVariableSource} from './a4a-variable-source';
import {createElementWithAttributes} from '#core/dom';
import {setStyle} from '#core/dom/style';
import {dict} from '#core/types/object';

import {installUrlReplacementsForEmbed} from '#service/url-replacements-impl';

import {A4AVariableSource} from './a4a-variable-source';
import {getExtensionsFromMetadata} from './amp-ad-utils';

import {installFriendlyIframeEmbed} from '../../../src/friendly-iframe-embed';
import {installUrlReplacementsForEmbed} from '#service/url-replacements-impl';
import {setStyle} from '#core/dom/style';

/**
* Renders a creative into a friendly iframe.
Expand Down
12 changes: 7 additions & 5 deletions extensions/amp-a4a/0.1/head-validation.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,16 @@
* limitations under the License.
*/

import {Services} from '#service';
import {getMode} from '../../../src/mode';
import {includes} from '#core/types/string';
import {removeElement, rootNodeFor} from '#core/dom';
import {map} from '#core/types/object';
import {includes} from '#core/types/string';

import {Services} from '#service';
import {parseExtensionUrl} from '#service/extension-script';
import {preloadFriendlyIframeEmbedExtensions} from '../../../src/friendly-iframe-embed';
import {removeElement, rootNodeFor} from '#core/dom';

import {urls} from '../../../src/config';
import {preloadFriendlyIframeEmbedExtensions} from '../../../src/friendly-iframe-embed';
import {getMode} from '../../../src/mode';

/**
* @typedef {{
Expand Down

0 comments on commit 82cc058

Please sign in to comment.