mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
chore: commit generated types to the repository (#4826)
Also check them during `npm run lint` and regenerate during `npm run watch`.
This commit is contained in:
parent
277d255fc3
commit
9dd982c508
1
.gitignore
vendored
1
.gitignore
vendored
@ -12,7 +12,6 @@ yarn.lock
|
||||
/node6
|
||||
/src/generated/*
|
||||
lib/
|
||||
/types/*
|
||||
jest-report.json
|
||||
drivers/
|
||||
/docs/api.json
|
||||
|
||||
@ -19,13 +19,12 @@
|
||||
"tsc-installer": "tsc -p ./src/install/tsconfig.json",
|
||||
"doc": "node utils/doclint/cli.js",
|
||||
"test-infra": "folio utils/doclint/check_public_api/test/test.js && folio utils/doclint/preprocessor/test.js",
|
||||
"lint": "npm run eslint && npm run tsc && npm run doc && npm run check-deps && npm run generate-channels && npm run test-types && npm run test-infra",
|
||||
"lint": "npm run eslint && npm run tsc && npm run doc && npm run check-deps && npm run generate-channels && node utils/generate_types/ --check-clean && npm run test-types && npm run test-infra",
|
||||
"clean": "rimraf lib && rimraf types",
|
||||
"prepare": "node install-from-github.js",
|
||||
"build": "node utils/runWebpack.js --mode='development' && tsc -p . && npm run generate-types && npm run generate-api-json",
|
||||
"build": "node utils/runWebpack.js --mode='development' && tsc -p . && npm run generate-api-json",
|
||||
"watch": "node utils/watch.js",
|
||||
"test-types": "npm run generate-types && npx -p typescript@3.7.5 tsc -p utils/generate_types/test/tsconfig.json && npm run typecheck-tests",
|
||||
"generate-types": "node utils/generate_types/",
|
||||
"test-types": "node utils/generate_types/ && npx -p typescript@3.7.5 tsc -p utils/generate_types/test/tsconfig.json && npm run typecheck-tests",
|
||||
"generate-channels": "node utils/generate_channels.js",
|
||||
"generate-api-json": "node utils/doclint/generateApiJson.js > docs/api.json",
|
||||
"typecheck-tests": "tsc -p ./test/",
|
||||
|
||||
16834
types/protocol.d.ts
vendored
Normal file
16834
types/protocol.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
101
types/trace.d.ts
vendored
Normal file
101
types/trace.d.ts
vendored
Normal file
@ -0,0 +1,101 @@
|
||||
/**
|
||||
* Copyright (c) Microsoft Corporation.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
export type ContextCreatedTraceEvent = {
|
||||
type: 'context-created',
|
||||
browserName: string,
|
||||
contextId: string,
|
||||
deviceScaleFactor: number,
|
||||
isMobile: boolean,
|
||||
viewportSize?: { width: number, height: number },
|
||||
};
|
||||
|
||||
export type ContextDestroyedTraceEvent = {
|
||||
type: 'context-destroyed',
|
||||
contextId: string,
|
||||
};
|
||||
|
||||
export type NetworkResourceTraceEvent = {
|
||||
type: 'resource',
|
||||
contextId: string,
|
||||
pageId: string,
|
||||
frameId: string,
|
||||
url: string,
|
||||
contentType: string,
|
||||
responseHeaders: { name: string, value: string }[],
|
||||
sha1: string,
|
||||
};
|
||||
|
||||
export type PageCreatedTraceEvent = {
|
||||
type: 'page-created',
|
||||
contextId: string,
|
||||
pageId: string,
|
||||
};
|
||||
|
||||
export type PageDestroyedTraceEvent = {
|
||||
type: 'page-destroyed',
|
||||
contextId: string,
|
||||
pageId: string,
|
||||
};
|
||||
|
||||
export type PageVideoTraceEvent = {
|
||||
type: 'page-video',
|
||||
contextId: string,
|
||||
pageId: string,
|
||||
fileName: string,
|
||||
};
|
||||
|
||||
export type ActionTraceEvent = {
|
||||
type: 'action',
|
||||
contextId: string,
|
||||
action: string,
|
||||
pageId?: string,
|
||||
selector?: string,
|
||||
label?: string,
|
||||
value?: string,
|
||||
startTime?: number,
|
||||
endTime?: number,
|
||||
logs?: string[],
|
||||
snapshot?: {
|
||||
sha1: string,
|
||||
duration: number,
|
||||
},
|
||||
stack?: string,
|
||||
error?: string,
|
||||
};
|
||||
|
||||
export type TraceEvent =
|
||||
ContextCreatedTraceEvent |
|
||||
ContextDestroyedTraceEvent |
|
||||
PageCreatedTraceEvent |
|
||||
PageDestroyedTraceEvent |
|
||||
PageVideoTraceEvent |
|
||||
NetworkResourceTraceEvent |
|
||||
ActionTraceEvent;
|
||||
|
||||
|
||||
export type FrameSnapshot = {
|
||||
frameId: string,
|
||||
url: string,
|
||||
html: string,
|
||||
resourceOverrides: { url: string, sha1: string }[],
|
||||
};
|
||||
|
||||
export type PageSnapshot = {
|
||||
viewportSize?: { width: number, height: number },
|
||||
// First frame is the main frame.
|
||||
frames: FrameSnapshot[],
|
||||
};
|
||||
7866
types/types.d.ts
vendored
Normal file
7866
types/types.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -99,7 +99,7 @@ function checkSources(sources) {
|
||||
parent = parent.parent;
|
||||
className = path.basename(parent.fileName, '.js');
|
||||
}
|
||||
if (className && !excludeClasses.has(className) && !fileName.endsWith('/protocol.ts')) {
|
||||
if (className && !excludeClasses.has(className) && !fileName.endsWith('/protocol.ts') && !fileName.endsWith('/protocol.d.ts') && !fileName.endsWith('/types.d.ts')) {
|
||||
excludeClasses.add(className);
|
||||
classes.push(serializeClass(className, symbol, node));
|
||||
inheritance.set(className, parentClasses(node));
|
||||
|
||||
@ -27,12 +27,14 @@ const objectDefinitions = [];
|
||||
const handledMethods = new Set();
|
||||
/** @type {Documentation} */
|
||||
let documentation;
|
||||
let hadChanges = false;
|
||||
|
||||
(async function() {
|
||||
const typesDir = path.join(PROJECT_DIR, 'types');
|
||||
if (!fs.existsSync(typesDir))
|
||||
fs.mkdirSync(typesDir)
|
||||
fs.writeFileSync(path.join(typesDir, 'protocol.d.ts'), fs.readFileSync(path.join(PROJECT_DIR, 'src', 'server', 'chromium', 'protocol.ts')), 'utf8');
|
||||
fs.writeFileSync(path.join(typesDir, 'trace.d.ts'), fs.readFileSync(path.join(PROJECT_DIR, 'src', 'trace', 'traceTypes.ts')), 'utf8');
|
||||
writeFile(path.join(typesDir, 'protocol.d.ts'), fs.readFileSync(path.join(PROJECT_DIR, 'src', 'server', 'chromium', 'protocol.ts'), 'utf8'));
|
||||
writeFile(path.join(typesDir, 'trace.d.ts'), fs.readFileSync(path.join(PROJECT_DIR, 'src', 'trace', 'traceTypes.ts'), 'utf8'));
|
||||
const browser = await chromium.launch();
|
||||
const page = await browser.newPage();
|
||||
const api = await Source.readFile(path.join(PROJECT_DIR, 'docs', 'api.md'));
|
||||
@ -75,12 +77,22 @@ ${generateDevicesTypes()}
|
||||
`;
|
||||
for (const [key, value] of Object.entries(exported))
|
||||
output = output.replace(new RegExp('\\b' + key + '\\b', 'g'), value);
|
||||
fs.writeFileSync(path.join(typesDir, 'types.d.ts'), output, 'utf8');
|
||||
writeFile(path.join(typesDir, 'types.d.ts'), output);
|
||||
process.exit(hadChanges && process.argv.includes('--check-clean') ? 1 : 0);
|
||||
})().catch(e => {
|
||||
console.error(e);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
function writeFile(filePath, content) {
|
||||
const existing = fs.readFileSync(filePath, 'utf8');
|
||||
if (existing === content)
|
||||
return;
|
||||
hadChanges = true;
|
||||
console.error(`Writing //${path.relative(PROJECT_DIR, filePath)}`);
|
||||
fs.writeFileSync(filePath, content, 'utf8');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} overriddes
|
||||
*/
|
||||
|
||||
@ -25,7 +25,13 @@ const spawns = [
|
||||
process.on('exit', () => spawns.forEach(s => s.kill()));
|
||||
|
||||
runOnChanges(['src/protocol/protocol.yml'], 'utils/generate_channels.js');
|
||||
runOnChanges(['docs/api.md', 'utils/generate_types/overrides.d.ts', 'utils/generate_types/exported.json'], 'utils/generate_types/index.js');
|
||||
runOnChanges([
|
||||
'docs/api.md',
|
||||
'utils/generate_types/overrides.d.ts',
|
||||
'utils/generate_types/exported.json',
|
||||
'src/server/chromium/protocol.ts',
|
||||
'src/trace/traceTypes.ts',
|
||||
], 'utils/generate_types/index.js');
|
||||
|
||||
/**
|
||||
* @param {string[][]} paths
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user