chore: use utils via index export (6) (#13417)

This commit is contained in:
Pavel Feldman 2022-04-07 20:48:41 -08:00 committed by GitHub
parent e79b90f454
commit 845e32cbb8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 43 additions and 32 deletions

View file

@ -1,4 +1,4 @@
[*]
../common/
../protocol/
../utils/
../utils/**

View file

@ -24,7 +24,7 @@ import { ElementHandle } from './elementHandle';
import type { Frame } from './frame';
import type { FilePayload, FrameExpectOptions, Rect, SelectOption, SelectOptionOptions, TimeoutOptions } from './types';
import { parseResult, serializeArgument } from './jsHandle';
import { escapeWithQuotes } from '../utils/stringUtils';
import { escapeWithQuotes } from '../utils/isomorphic/stringUtils';
export class Locator implements api.Locator {
_frame: Frame;

View file

@ -4,8 +4,9 @@
../protocol/
../utils/
./
./common/
./injected/
./isomorphic/
./registry/
./supplements/
./trace/recorder/tracing.ts

View file

@ -20,7 +20,7 @@ import { getExceptionMessage, releaseObject } from './crProtocolHelper';
import type { Protocol } from './protocol';
import * as js from '../javascript';
import { rewriteErrorMessage } from '../../utils/stackTrace';
import { parseEvaluationResultValue } from '../common/utilityScriptSerializers';
import { parseEvaluationResultValue } from '../isomorphic/utilityScriptSerializers';
import { isSessionClosedError } from '../protocolError';
export class CRExecutionContext implements js.ExecutionContextDelegate {

View file

@ -1 +0,0 @@
Files in this folder are used both in Node.js and injected environments, they can't have dependencies.

View file

@ -19,7 +19,7 @@ import * as js from '../javascript';
import type { FFSession } from './ffConnection';
import type { Protocol } from './protocol';
import { rewriteErrorMessage } from '../../utils/stackTrace';
import { parseEvaluationResultValue } from '../common/utilityScriptSerializers';
import { parseEvaluationResultValue } from '../isomorphic/utilityScriptSerializers';
import { isSessionClosedError } from '../protocolError';
export class FFExecutionContext implements js.ExecutionContextDelegate {

View file

@ -37,8 +37,8 @@ import { serverSideCallMetadata, SdkObject } from './instrumentation';
import { type InjectedScript } from './injected/injectedScript';
import type { ElementStateWithoutStable, FrameExpectParams, InjectedScriptPoll, InjectedScriptProgress } from './injected/injectedScript';
import { isSessionClosedError } from './protocolError';
import type { ParsedSelector } from './common/selectorParser';
import { isInvalidSelectorError, splitSelectorByFrame, stringifySelector } from './common/selectorParser';
import type { ParsedSelector } from './isomorphic/selectorParser';
import { isInvalidSelectorError, splitSelectorByFrame, stringifySelector } from './isomorphic/selectorParser';
import type { SelectorInfo } from './selectors';
import type { ScreenshotOptions } from './screenshotter';
import type { InputFilesItems } from './dom';

View file

@ -1,2 +1,3 @@
# Files in this folder are used in browser environment, they can only depend on isomorphic files.
[*]
../common/
../isomorphic/

View file

@ -19,11 +19,11 @@ import { XPathEngine } from './xpathSelectorEngine';
import { ReactEngine } from './reactSelectorEngine';
import { VueEngine } from './vueSelectorEngine';
import { RoleEngine } from './roleSelectorEngine';
import type { ParsedSelector, ParsedSelectorPart } from '../common/selectorParser';
import { allEngineNames, parseSelector, stringifySelector } from '../common/selectorParser';
import type { ParsedSelector, ParsedSelectorPart } from '../isomorphic/selectorParser';
import { allEngineNames, parseSelector, stringifySelector } from '../isomorphic/selectorParser';
import type { TextMatcher } from './selectorEvaluator';
import { SelectorEvaluatorImpl, isVisible, parentElementOrShadowHost, elementMatchesText, createRegexTextMatcher, createStrictTextMatcher, createLaxTextMatcher } from './selectorEvaluator';
import type { CSSComplexSelectorList } from '../common/cssParser';
import type { CSSComplexSelectorList } from '../isomorphic/cssParser';
import { generateSelector } from './selectorGenerator';
import type * as channels from '../../protocol/channels';
import { Highlight } from './highlight';

View file

@ -14,8 +14,8 @@
* limitations under the License.
*/
import type { CSSComplexSelector, CSSSimpleSelector, CSSComplexSelectorList, CSSFunctionArgument } from '../common/cssParser';
import { customCSSNames } from '../common/selectorParser';
import type { CSSComplexSelector, CSSSimpleSelector, CSSComplexSelectorList, CSSFunctionArgument } from '../isomorphic/cssParser';
import { customCSSNames } from '../isomorphic/selectorParser';
export type QueryContext = {
scope: Element | Document;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
import { serializeAsCallArgument, parseEvaluationResultValue } from '../common/utilityScriptSerializers';
import { serializeAsCallArgument, parseEvaluationResultValue } from '../isomorphic/utilityScriptSerializers';
export class UtilityScript {
evaluate(isFunction: boolean | undefined, returnByValue: boolean, expression: string, argCount: number, ...argsAndHandles: any[]) {

View file

@ -0,0 +1,2 @@
# Files in this folder are used both in Node.js and injected environments, they are isomorphic and can't have dependencies.
[*]

View file

@ -16,7 +16,7 @@
import type * as dom from './dom';
import * as utilityScriptSource from '../generated/utilityScriptSource';
import { serializeAsCallArgument } from './common/utilityScriptSerializers';
import { serializeAsCallArgument } from './isomorphic/utilityScriptSerializers';
import { type UtilityScript } from './injected/utilityScript';
import { SdkObject } from './instrumentation';
import { ManualPromise } from '../utils/manualPromise';

View file

@ -40,8 +40,8 @@ import type { CallMetadata } from './instrumentation';
import { SdkObject } from './instrumentation';
import type { Artifact } from './artifact';
import type { TimeoutOptions } from '../common/types';
import type { ParsedSelector } from './common/selectorParser';
import { isInvalidSelectorError } from './common/selectorParser';
import type { ParsedSelector } from './isomorphic/selectorParser';
import { isInvalidSelectorError } from './isomorphic/selectorParser';
export interface PageDelegate {
readonly rawMouse: input.RawMouse;

View file

@ -20,7 +20,7 @@ import type { Rect } from '../common/types';
import { helper } from './helper';
import type { Page } from './page';
import type { Frame } from './frames';
import type { ParsedSelector } from './common/selectorParser';
import type { ParsedSelector } from './isomorphic/selectorParser';
import type * as types from './types';
import type { Progress } from './progress';
import { assert } from '../utils';

View file

@ -18,8 +18,8 @@ import type * as dom from './dom';
import type * as frames from './frames';
import type * as js from './javascript';
import type * as types from './types';
import type { ParsedSelector } from './common/selectorParser';
import { allEngineNames, InvalidSelectorError, parseSelector, stringifySelector } from './common/selectorParser';
import type { ParsedSelector } from './isomorphic/selectorParser';
import { allEngineNames, InvalidSelectorError, parseSelector, stringifySelector } from './isomorphic/selectorParser';
import { createGuid, experimentalFeaturesEnabled } from '../utils';
export type SelectorInfo = {

View file

@ -1,3 +1,4 @@
# Files in this folder are used in browser environment, they can only depend on isomorphic files.
[*]
../../injected/
../../../utils/
../../../utils/isomorphic/

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
import { escapeWithQuotes } from '../../../utils/stringUtils';
import { escapeWithQuotes } from '../../../utils/isomorphic/stringUtils';
import { type InjectedScript } from '../../injected/injectedScript';
import { generateSelector } from '../../injected/selectorGenerator';

View file

@ -1,8 +1,9 @@
[*]
../../
../../registry/**
../../../common/
../../../protocol/
../../../utils/
../../../utils/**
[recorderApp.ts]
../../chromium/crApp.ts

View file

@ -22,7 +22,7 @@ import type { Action } from './recorderActions';
import { actionTitle } from './recorderActions';
import type { MouseClickOptions } from './utils';
import { toModifiers } from './utils';
import { escapeWithQuotes } from '../../../utils/stringUtils';
import { escapeWithQuotes } from '../../../utils/isomorphic/stringUtils';
import deviceDescriptors from '../../deviceDescriptors';
export class CSharpLanguageGenerator implements LanguageGenerator {

View file

@ -24,7 +24,7 @@ import type { MouseClickOptions } from './utils';
import { toModifiers } from './utils';
import deviceDescriptors from '../../deviceDescriptors';
import { JavaScriptFormatter } from './javascript';
import { escapeWithQuotes } from '../../../utils/stringUtils';
import { escapeWithQuotes } from '../../../utils/isomorphic/stringUtils';
export class JavaLanguageGenerator implements LanguageGenerator {
id = 'java';

View file

@ -23,7 +23,7 @@ import { actionTitle } from './recorderActions';
import type { MouseClickOptions } from './utils';
import { toModifiers } from './utils';
import deviceDescriptors from '../../deviceDescriptors';
import { escapeWithQuotes } from '../../../utils/stringUtils';
import { escapeWithQuotes } from '../../../utils/isomorphic/stringUtils';
export class JavaScriptLanguageGenerator implements LanguageGenerator {
id: string;

View file

@ -22,7 +22,7 @@ import type { Action } from './recorderActions';
import { actionTitle } from './recorderActions';
import type { MouseClickOptions } from './utils';
import { toModifiers } from './utils';
import { escapeWithQuotes } from '../../../utils/stringUtils';
import { escapeWithQuotes } from '../../../utils/isomorphic/stringUtils';
import deviceDescriptors from '../../deviceDescriptors';
export class PythonLanguageGenerator implements LanguageGenerator {

View file

@ -1,5 +1,6 @@
[*]
../../
../../registry/
../../../generated/
../../../utils/
../../chromium/crApp.ts

View file

@ -18,7 +18,7 @@
import type { WKSession } from './wkConnection';
import type { Protocol } from './protocol';
import * as js from '../javascript';
import { parseEvaluationResultValue } from '../common/utilityScriptSerializers';
import { parseEvaluationResultValue } from '../isomorphic/utilityScriptSerializers';
import { isSessionClosedError } from '../protocolError';
export class WKExecutionContext implements js.ExecutionContextDelegate {

View file

@ -15,7 +15,7 @@
*/
import { playwrightTest as it, expect } from '../config/browserTest';
import { parseCSS, serializeSelector as serialize } from '../../packages/playwright-core/lib/server/common/cssParser';
import { parseCSS, serializeSelector as serialize } from '../../packages/playwright-core/lib/server/isomorphic/cssParser';
const parse = (selector: string) => {
return parseCSS(selector, new Set(['text', 'not', 'has', 'react', 'scope', 'right-of', 'is'])).selector;

View file

@ -138,7 +138,9 @@ async function innerCheckDeps(root, checkDepsFile, checkPackageJson) {
function allowImport(from, to) {
const fromDirectory = path.dirname(from);
const toDirectory = path.dirname(to);
const toDirectory = isDirectory(to) ? to : path.dirname(to);
if (to === toDirectory)
to = path.join(to, 'index.ts');
if (fromDirectory === toDirectory)
return true;
@ -217,3 +219,7 @@ checkDeps().catch(e => {
console.error(e && e.stack ? e.stack : e);
process.exit(1);
});
function isDirectory(dir) {
return fs.existsSync(dir) && fs.statSync(dir).isDirectory();
}