diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92c8a5966f6fe..3f7bf264bf2af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,6 @@ jobs: # See https://github.com/puppeteer/puppeteer/issues/7710 for more info # npm run generate:docs npm run test:protocol-revision - npm run test:types - name: Run commit lint run: | diff --git a/package.json b/package.json index 589579f0d8f7a..9c852e39ed1b4 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,6 @@ "test:pinned-deps": "ts-node -s scripts/ensure-pinned-deps", "test:install": "scripts/test-install.sh", "test:debug": "npm run build:test && mocha --inspect-brk", - "test:types": "ts-node -s scripts/test-ts-definition-files.ts", "prepublishOnly": "npm run build", "prepare": "node typescript-if-required.js && ([[ $HUSKY = 0 ]] || husky install)", "lint": "npm run build && npm run lint:eslint && npm run doc && npm run lint:prettier", diff --git a/scripts/test-ts-definition-files.ts b/scripts/test-ts-definition-files.ts deleted file mode 100644 index 89b7e408e9b1a..0000000000000 --- a/scripts/test-ts-definition-files.ts +++ /dev/null @@ -1,217 +0,0 @@ -import {spawnSync} from 'child_process'; -import {version} from '../package.json'; -import path from 'path'; -import fs from 'fs'; -const PROJECT_FOLDERS_ROOT = 'test-ts-types'; -const EXPECTED_ERRORS = new Map([ - [ - 'ts-esm-import-esm-output', - [ - "bad.ts(6,35): error TS2551: Property 'launh' does not exist on type", - "bad.ts(8,29): error TS2551: Property 'devics' does not exist on type", - 'bad.ts(12,39): error TS2554: Expected 0 arguments, but got 1.', - "bad.ts(20,5): error TS2345: Argument of type '(divElem: number) => any' is not assignable to parameter of type 'EvaluateFn'.", - "bad.ts(20,34): error TS2339: Property 'innerText' does not exist on type 'number'.", - "bad.ts(24,45): error TS2344: Type '(x: number) => string' does not satisfy the constraint 'EvaluateFn'.", - "bad.ts(27,34): error TS2339: Property 'innerText' does not exist on type 'number'.", - ], - ], - [ - 'ts-esm-import-cjs-output', - [ - "bad.ts(6,35): error TS2551: Property 'launh' does not exist on type", - "bad.ts(8,29): error TS2551: Property 'devics' does not exist on type", - 'bad.ts(12,39): error TS2554: Expected 0 arguments, but got 1.', - ], - ], - [ - 'ts-cjs-import-cjs-output', - [ - "bad.ts(5,35): error TS2551: Property 'launh' does not exist on type", - "bad.ts(7,29): error TS2551: Property 'devics' does not exist on type", - 'bad.ts(11,39): error TS2554: Expected 0 arguments, but got 1.', - ], - ], - [ - 'js-esm-import-cjs-output', - [ - "bad.js(5,35): error TS2551: Property 'launh' does not exist on type", - "bad.js(7,29): error TS2551: Property 'devics' does not exist on type", - 'bad.js(11,39): error TS2554: Expected 0 arguments, but got 1.', - "bad.js(15,9): error TS2322: Type 'ElementHandle | null' is not assignable to type 'ElementHandle'", - "bad.js(22,5): error TS2345: Argument of type '(divElem: number) => any' is not assignable to parameter of type 'EvaluateFn'.", - "bad.js(22,26): error TS2339: Property 'innerText' does not exist on type 'number'.", - ], - ], - [ - 'js-cjs-import-esm-output', - [ - "bad.js(5,35): error TS2551: Property 'launh' does not exist on type", - "bad.js(7,29): error TS2551: Property 'devics' does not exist on type", - 'bad.js(11,39): error TS2554: Expected 0 arguments, but got 1.', - "bad.js(15,9): error TS2322: Type 'ElementHandle | null' is not assignable to type 'ElementHandle'", - ], - ], - [ - 'js-esm-import-esm-output', - [ - "bad.js(5,35): error TS2551: Property 'launh' does not exist on type", - "bad.js(7,29): error TS2551: Property 'devics' does not exist on type", - 'bad.js(11,39): error TS2554: Expected 0 arguments, but got 1.', - "bad.js(15,9): error TS2322: Type 'ElementHandle | null' is not assignable to type 'ElementHandle'", - ], - ], - [ - 'js-cjs-import-cjs-output', - [ - "bad.js(5,35): error TS2551: Property 'launh' does not exist on type", - "bad.js(7,29): error TS2551: Property 'devics' does not exist on type", - 'bad.js(11,39): error TS2554: Expected 0 arguments, but got 1.', - "bad.js(15,9): error TS2322: Type 'ElementHandle | null' is not assignable to type 'ElementHandle'", - ], - ], -]); -const PROJECT_FOLDERS = [...EXPECTED_ERRORS.keys()]; - -if (!process.env['CI']) { - console.log(`IMPORTANT: this script assumes you have compiled Puppeteer -and its types file before running. Make sure you have run: -=> npm run build:tsc && npm run generate:types -before executing this script locally.`); -} - -function packPuppeteer() { - console.log('Packing Puppeteer'); - const result = spawnSync('npm', ['pack'], { - encoding: 'utf-8', - }); - if (result.status !== 0) { - console.log('Failed to pack Puppeteer', result.stderr); - process.exit(1); - } - - // Move from puppeteer-X.Y.Z.tgz to puppeteer.tgz so we don't have to update - // it when versions change. - const moveResult = spawnSync('mv', [ - `puppeteer-${version}.tgz`, - 'puppeteer.tgz', - ]); - if (moveResult.status !== 0) { - console.log('Failed to rename Puppeteer tar', moveResult.stderr); - process.exit(1); - } - - return `puppeteer.tgz`; -} - -const tar = packPuppeteer(); -const tarPath = path.join(process.cwd(), tar); - -function compileAndCatchErrors(projectLocation: string) { - const {status, stdout, stderr} = spawnSync('npm', ['run', 'compile'], { - cwd: projectLocation, - encoding: 'utf-8', - }); - const tsErrorMesssage = stdout.split('\n'); - - if (status === 0) { - console.error( - `Running tsc on ${projectLocation} succeeded without triggering the expected errors.` - ); - console.log(stdout, stderr); - process.exit(1); - } - - return { - tsErrorMesssage, - }; -} - -function testProject(folder: string) { - console.log('\nTesting:', folder); - const projectLocation = path.join( - process.cwd(), - PROJECT_FOLDERS_ROOT, - folder - ); - - const tarLocation = path.relative(projectLocation, tarPath); - console.log('===> Clearing left over node_modules to ensure clean slate'); - try { - fs.rmdirSync(path.join(projectLocation, 'node_modules'), { - recursive: true, - }); - } catch (_error) { - // We don't care if this errors because if it did it's most likely because - // there was no node_modules folder, which is fine. - } - console.log('===> Installing Puppeteer from tar file', tarLocation); - const {status, stderr, stdout} = spawnSync('npm', ['install', tarLocation], { - env: { - ...process.env, - PUPPETEER_SKIP_DOWNLOAD: '1', - }, - cwd: projectLocation, - encoding: 'utf-8', - }); - - if (status) { - console.error( - 'Installing the tar file unexpectedly failed', - stdout, - stderr - ); - process.exit(status); - } - console.log('===> Running compile to ensure expected errors only.'); - const result = compileAndCatchErrors(projectLocation); - const expectedErrors = EXPECTED_ERRORS.get(folder) || []; - if ( - result.tsErrorMesssage.find(line => { - return line.includes('good.ts') || line.includes('good.js'); - }) - ) { - console.error( - `Error for ${projectLocation} contained unexpected failures in good.ts/good.js:\n${result.tsErrorMesssage.join( - '\n' - )}` - ); - process.exit(1); - } - const errorsInTsMessage = result.tsErrorMesssage.filter(line => { - return line.includes('bad.ts') || line.includes('bad.js'); - }); - const expectedErrorsThatHaveOccurred = new Set(); - const unexpectedErrors = errorsInTsMessage.filter(message => { - const isExpected = expectedErrors.some(expectedError => { - const isExpected = message.startsWith(expectedError); - if (isExpected) { - expectedErrorsThatHaveOccurred.add(expectedError); - } - return isExpected; - }); - return !isExpected; - }); - - if (unexpectedErrors.length) { - console.error( - `${projectLocation} had unexpected TS errors: ${unexpectedErrors.join( - '\n' - )}` - ); - process.exit(1); - } - expectedErrors.forEach(expected => { - if (!expectedErrorsThatHaveOccurred.has(expected)) { - console.error( - `${projectLocation} expected error that was not thrown: ${expected}` - ); - process.exit(1); - } - }); - console.log('===> ✅ Type-checked correctly.'); -} - -PROJECT_FOLDERS.forEach(folder => { - testProject(folder); -}); diff --git a/test-ts-types/js-cjs-import-cjs-output/bad.js b/test-ts-types/js-cjs-import-cjs-output/bad.js deleted file mode 100644 index be5127947cdb2..0000000000000 --- a/test-ts-types/js-cjs-import-cjs-output/bad.js +++ /dev/null @@ -1,18 +0,0 @@ -const puppeteer = require('puppeteer'); - -async function run() { - // Typo in "launch" - const browser = await puppeteer.launh(); - // Typo: "devices" - const devices = puppeteer.devics; - console.log(devices); - const browser2 = await puppeteer.launch(); - // 'foo' is invalid argument - const page = await browser2.newPage('foo'); - /** - * @type {puppeteer.ElementHandle} - */ - const div = await page.$('div'); - console.log('got a div!', div); -} -run(); diff --git a/test-ts-types/js-cjs-import-cjs-output/good.js b/test-ts-types/js-cjs-import-cjs-output/good.js deleted file mode 100644 index f4663006078c8..0000000000000 --- a/test-ts-types/js-cjs-import-cjs-output/good.js +++ /dev/null @@ -1,17 +0,0 @@ -const puppeteer = require('puppeteer'); - -async function run() { - const browser = await puppeteer.launch(); - const devices = puppeteer.devices; - console.log(devices); - const page = await browser.newPage(); - const div = await page.$('div'); - if (div) { - /** - * @type {puppeteer.ElementHandle} - */ - const newDiv = div; - console.log('got a div!', newDiv); - } -} -run(); diff --git a/test-ts-types/js-cjs-import-cjs-output/package.json b/test-ts-types/js-cjs-import-cjs-output/package.json deleted file mode 100644 index 6141e954b0d5a..0000000000000 --- a/test-ts-types/js-cjs-import-cjs-output/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test-ts-types-ts-esm", - "version": "1.0.0", - "private": true, - "description": "Test project with TypeScript, ESM output", - "scripts": { - "compile": "../../node_modules/.bin/tsc" - }, - "dependencies": { - "puppeteer": "file:../../puppeteer.tgz" - } -} diff --git a/test-ts-types/js-cjs-import-cjs-output/tsconfig.json b/test-ts-types/js-cjs-import-cjs-output/tsconfig.json deleted file mode 100644 index 2889972c4b81b..0000000000000 --- a/test-ts-types/js-cjs-import-cjs-output/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "checkJs": true, - "allowJs": true, - "strict": true, - "outDir": "dist", - "moduleResolution": "node" - }, - "files": ["good.js", "bad.js"] -} diff --git a/test-ts-types/js-cjs-import-esm-output/bad.js b/test-ts-types/js-cjs-import-esm-output/bad.js deleted file mode 100644 index be5127947cdb2..0000000000000 --- a/test-ts-types/js-cjs-import-esm-output/bad.js +++ /dev/null @@ -1,18 +0,0 @@ -const puppeteer = require('puppeteer'); - -async function run() { - // Typo in "launch" - const browser = await puppeteer.launh(); - // Typo: "devices" - const devices = puppeteer.devics; - console.log(devices); - const browser2 = await puppeteer.launch(); - // 'foo' is invalid argument - const page = await browser2.newPage('foo'); - /** - * @type {puppeteer.ElementHandle} - */ - const div = await page.$('div'); - console.log('got a div!', div); -} -run(); diff --git a/test-ts-types/js-cjs-import-esm-output/good.js b/test-ts-types/js-cjs-import-esm-output/good.js deleted file mode 100644 index f4663006078c8..0000000000000 --- a/test-ts-types/js-cjs-import-esm-output/good.js +++ /dev/null @@ -1,17 +0,0 @@ -const puppeteer = require('puppeteer'); - -async function run() { - const browser = await puppeteer.launch(); - const devices = puppeteer.devices; - console.log(devices); - const page = await browser.newPage(); - const div = await page.$('div'); - if (div) { - /** - * @type {puppeteer.ElementHandle} - */ - const newDiv = div; - console.log('got a div!', newDiv); - } -} -run(); diff --git a/test-ts-types/js-cjs-import-esm-output/package.json b/test-ts-types/js-cjs-import-esm-output/package.json deleted file mode 100644 index 6141e954b0d5a..0000000000000 --- a/test-ts-types/js-cjs-import-esm-output/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test-ts-types-ts-esm", - "version": "1.0.0", - "private": true, - "description": "Test project with TypeScript, ESM output", - "scripts": { - "compile": "../../node_modules/.bin/tsc" - }, - "dependencies": { - "puppeteer": "file:../../puppeteer.tgz" - } -} diff --git a/test-ts-types/js-cjs-import-esm-output/tsconfig.json b/test-ts-types/js-cjs-import-esm-output/tsconfig.json deleted file mode 100644 index e2ce292bf3e0c..0000000000000 --- a/test-ts-types/js-cjs-import-esm-output/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "module": "esnext", - "checkJs": true, - "allowJs": true, - "strict": true, - "outDir": "dist", - "moduleResolution": "node" - }, - "files": ["good.js", "bad.js"] -} diff --git a/test-ts-types/js-esm-import-cjs-output/bad.js b/test-ts-types/js-esm-import-cjs-output/bad.js deleted file mode 100644 index cda9916d8303d..0000000000000 --- a/test-ts-types/js-esm-import-cjs-output/bad.js +++ /dev/null @@ -1,25 +0,0 @@ -import * as puppeteer from 'puppeteer'; - -async function run() { - // Typo in "launch" - const browser = await puppeteer.launh(); - // Typo: "devices" - const devices = puppeteer.devics; - console.log(devices); - const browser2 = await puppeteer.launch(); - // 'foo' is invalid argument - const page = await browser2.newPage('foo'); - /** - * @type {puppeteer.ElementHandle} - */ - const div = await page.$('div'); - console.log('got a div!', div); - const contentsOfDiv = await div.evaluate( - /** - * @param {number} divElem - * @returns number - */ - (divElem) => divElem.innerText - ); -} -run(); diff --git a/test-ts-types/js-esm-import-cjs-output/good.js b/test-ts-types/js-esm-import-cjs-output/good.js deleted file mode 100644 index 544c43cf8bafb..0000000000000 --- a/test-ts-types/js-esm-import-cjs-output/good.js +++ /dev/null @@ -1,17 +0,0 @@ -import * as puppeteer from 'puppeteer'; - -async function run() { - const browser = await puppeteer.launch(); - const devices = puppeteer.devices; - console.log(devices); - const page = await browser.newPage(); - const div = await page.$('div'); - if (div) { - /** - * @type {puppeteer.ElementHandle} - */ - const newDiv = div; - console.log('got a div!', newDiv); - } -} -run(); diff --git a/test-ts-types/js-esm-import-cjs-output/package.json b/test-ts-types/js-esm-import-cjs-output/package.json deleted file mode 100644 index 6141e954b0d5a..0000000000000 --- a/test-ts-types/js-esm-import-cjs-output/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test-ts-types-ts-esm", - "version": "1.0.0", - "private": true, - "description": "Test project with TypeScript, ESM output", - "scripts": { - "compile": "../../node_modules/.bin/tsc" - }, - "dependencies": { - "puppeteer": "file:../../puppeteer.tgz" - } -} diff --git a/test-ts-types/js-esm-import-cjs-output/tsconfig.json b/test-ts-types/js-esm-import-cjs-output/tsconfig.json deleted file mode 100644 index 2889972c4b81b..0000000000000 --- a/test-ts-types/js-esm-import-cjs-output/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "checkJs": true, - "allowJs": true, - "strict": true, - "outDir": "dist", - "moduleResolution": "node" - }, - "files": ["good.js", "bad.js"] -} diff --git a/test-ts-types/js-esm-import-esm-output/bad.js b/test-ts-types/js-esm-import-esm-output/bad.js deleted file mode 100644 index ba7b56133d4fe..0000000000000 --- a/test-ts-types/js-esm-import-esm-output/bad.js +++ /dev/null @@ -1,18 +0,0 @@ -import * as puppeteer from 'puppeteer'; - -async function run() { - // Typo in "launch" - const browser = await puppeteer.launh(); - // Typo: "devices" - const devices = puppeteer.devics; - console.log(devices); - const browser2 = await puppeteer.launch(); - // 'foo' is invalid argument - const page = await browser2.newPage('foo'); - /** - * @type {puppeteer.ElementHandle} - */ - const div = await page.$('div'); - console.log('got a div!', div); -} -run(); diff --git a/test-ts-types/js-esm-import-esm-output/good.js b/test-ts-types/js-esm-import-esm-output/good.js deleted file mode 100644 index 544c43cf8bafb..0000000000000 --- a/test-ts-types/js-esm-import-esm-output/good.js +++ /dev/null @@ -1,17 +0,0 @@ -import * as puppeteer from 'puppeteer'; - -async function run() { - const browser = await puppeteer.launch(); - const devices = puppeteer.devices; - console.log(devices); - const page = await browser.newPage(); - const div = await page.$('div'); - if (div) { - /** - * @type {puppeteer.ElementHandle} - */ - const newDiv = div; - console.log('got a div!', newDiv); - } -} -run(); diff --git a/test-ts-types/js-esm-import-esm-output/package.json b/test-ts-types/js-esm-import-esm-output/package.json deleted file mode 100644 index 6141e954b0d5a..0000000000000 --- a/test-ts-types/js-esm-import-esm-output/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test-ts-types-ts-esm", - "version": "1.0.0", - "private": true, - "description": "Test project with TypeScript, ESM output", - "scripts": { - "compile": "../../node_modules/.bin/tsc" - }, - "dependencies": { - "puppeteer": "file:../../puppeteer.tgz" - } -} diff --git a/test-ts-types/js-esm-import-esm-output/tsconfig.json b/test-ts-types/js-esm-import-esm-output/tsconfig.json deleted file mode 100644 index e2ce292bf3e0c..0000000000000 --- a/test-ts-types/js-esm-import-esm-output/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "module": "esnext", - "checkJs": true, - "allowJs": true, - "strict": true, - "outDir": "dist", - "moduleResolution": "node" - }, - "files": ["good.js", "bad.js"] -} diff --git a/test-ts-types/ts-cjs-import-cjs-output/bad.ts b/test-ts-types/ts-cjs-import-cjs-output/bad.ts deleted file mode 100644 index fa7a2a57812ff..0000000000000 --- a/test-ts-types/ts-cjs-import-cjs-output/bad.ts +++ /dev/null @@ -1,17 +0,0 @@ -import puppeteer = require('puppeteer'); - -async function run() { - // Typo in "launch" - const browser = await puppeteer.launh(); - // Typo: "devices" - const devices = puppeteer.devics; - console.log(devices); - const browser2 = await puppeteer.launch(); - // 'foo' is invalid argument - const page = await browser2.newPage('foo'); - const div = (await page.$( - 'div' - )) as puppeteer.ElementHandle; - console.log('got a div!', div); -} -run(); diff --git a/test-ts-types/ts-cjs-import-cjs-output/good.ts b/test-ts-types/ts-cjs-import-cjs-output/good.ts deleted file mode 100644 index 64b5013724554..0000000000000 --- a/test-ts-types/ts-cjs-import-cjs-output/good.ts +++ /dev/null @@ -1,16 +0,0 @@ -import puppeteer = require('puppeteer'); - -async function run() { - const browser = await puppeteer.launch(); - const devices = puppeteer.devices; - console.log(devices); - const page = await browser.newPage(); - page.on('request', (request) => { - const resourceType = request.resourceType(); - }); - const div = (await page.$( - 'div' - )) as puppeteer.ElementHandle; - console.log('got a div!', div); -} -run(); diff --git a/test-ts-types/ts-cjs-import-cjs-output/package.json b/test-ts-types/ts-cjs-import-cjs-output/package.json deleted file mode 100644 index 6141e954b0d5a..0000000000000 --- a/test-ts-types/ts-cjs-import-cjs-output/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test-ts-types-ts-esm", - "version": "1.0.0", - "private": true, - "description": "Test project with TypeScript, ESM output", - "scripts": { - "compile": "../../node_modules/.bin/tsc" - }, - "dependencies": { - "puppeteer": "file:../../puppeteer.tgz" - } -} diff --git a/test-ts-types/ts-cjs-import-cjs-output/tsconfig.json b/test-ts-types/ts-cjs-import-cjs-output/tsconfig.json deleted file mode 100644 index a417e47c143ed..0000000000000 --- a/test-ts-types/ts-cjs-import-cjs-output/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "strict": true, - "outDir": "dist", - "moduleResolution": "node" - }, - "files": ["good.ts", "bad.ts"] -} diff --git a/test-ts-types/ts-esm-import-cjs-output/bad.ts b/test-ts-types/ts-esm-import-cjs-output/bad.ts deleted file mode 100644 index 8f890575fa484..0000000000000 --- a/test-ts-types/ts-esm-import-cjs-output/bad.ts +++ /dev/null @@ -1,18 +0,0 @@ -// eslint-disable-next-line import/extensions -import * as puppeteer from 'puppeteer'; - -async function run() { - // Typo in "launch" - const browser = await puppeteer.launh(); - // Typo: "devices" - const devices = puppeteer.devics; - console.log(devices); - const browser2 = await puppeteer.launch(); - // 'foo' is invalid argument - const page = await browser2.newPage('foo'); - const div = (await page.$( - 'div' - )) as puppeteer.ElementHandle; - console.log('got a div!', div); -} -run(); diff --git a/test-ts-types/ts-esm-import-cjs-output/good.ts b/test-ts-types/ts-esm-import-cjs-output/good.ts deleted file mode 100644 index ed7764140d8b6..0000000000000 --- a/test-ts-types/ts-esm-import-cjs-output/good.ts +++ /dev/null @@ -1,13 +0,0 @@ -// eslint-disable-next-line import/extensions -import * as puppeteer from 'puppeteer'; -import type { ElementHandle } from 'puppeteer'; - -async function run() { - const browser = await puppeteer.launch(); - const devices = puppeteer.devices; - console.log(devices); - const page = await browser.newPage(); - const div = (await page.$('div')) as ElementHandle; - console.log('got a div!', div); -} -run(); diff --git a/test-ts-types/ts-esm-import-cjs-output/package.json b/test-ts-types/ts-esm-import-cjs-output/package.json deleted file mode 100644 index 6141e954b0d5a..0000000000000 --- a/test-ts-types/ts-esm-import-cjs-output/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test-ts-types-ts-esm", - "version": "1.0.0", - "private": true, - "description": "Test project with TypeScript, ESM output", - "scripts": { - "compile": "../../node_modules/.bin/tsc" - }, - "dependencies": { - "puppeteer": "file:../../puppeteer.tgz" - } -} diff --git a/test-ts-types/ts-esm-import-cjs-output/tsconfig.json b/test-ts-types/ts-esm-import-cjs-output/tsconfig.json deleted file mode 100644 index a417e47c143ed..0000000000000 --- a/test-ts-types/ts-esm-import-cjs-output/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "strict": true, - "outDir": "dist", - "moduleResolution": "node" - }, - "files": ["good.ts", "bad.ts"] -} diff --git a/test-ts-types/ts-esm-import-esm-output/bad.ts b/test-ts-types/ts-esm-import-esm-output/bad.ts deleted file mode 100644 index d08e6f450ade4..0000000000000 --- a/test-ts-types/ts-esm-import-esm-output/bad.ts +++ /dev/null @@ -1,30 +0,0 @@ -// eslint-disable-next-line import/extensions -import * as puppeteer from 'puppeteer'; - -async function run() { - // Typo in "launch" - const browser = await puppeteer.launh(); - // Typo: "devices" - const devices = puppeteer.devics; - console.log(devices); - const browser2 = await puppeteer.launch(); - // 'foo' is invalid argument - const page = await browser2.newPage('foo'); - const div = (await page.$( - 'div' - )) as puppeteer.ElementHandle; - console.log('got a div!', div); - const contentsOfDiv = await div.evaluate( - // Bad: the type system will know here that divElem is an HTMLAnchorElement - // and won't let me tell it it's a number - (divElem: number) => divElem.innerText - ); - // Bad: the type system will know here that divElem is an HTMLAnchorElement - // and won't let me tell it it's a number via the generic - const contentsOfDiv2 = await div.evaluate<(x: number) => string>( - // Bad: now I've forced it to be a number (which is an error also) - // I can't call `innerText` on it. - (divElem: number) => divElem.innerText - ); -} -run(); diff --git a/test-ts-types/ts-esm-import-esm-output/good.ts b/test-ts-types/ts-esm-import-esm-output/good.ts deleted file mode 100644 index af19f0efb6351..0000000000000 --- a/test-ts-types/ts-esm-import-esm-output/good.ts +++ /dev/null @@ -1,15 +0,0 @@ -// eslint-disable-next-line import/extensions -import * as puppeteer from 'puppeteer'; -import type { ElementHandle } from 'puppeteer'; - -async function run() { - const browser = await puppeteer.launch(); - const devices = puppeteer.devices; - console.log(devices); - const page = await browser.newPage(); - const div = (await page.$('div')) as ElementHandle; - console.log('got a div!', div); - - const contentsOfDiv = await div.evaluate((divElem) => divElem.innerText); -} -run(); diff --git a/test-ts-types/ts-esm-import-esm-output/package.json b/test-ts-types/ts-esm-import-esm-output/package.json deleted file mode 100644 index 6141e954b0d5a..0000000000000 --- a/test-ts-types/ts-esm-import-esm-output/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test-ts-types-ts-esm", - "version": "1.0.0", - "private": true, - "description": "Test project with TypeScript, ESM output", - "scripts": { - "compile": "../../node_modules/.bin/tsc" - }, - "dependencies": { - "puppeteer": "file:../../puppeteer.tgz" - } -} diff --git a/test-ts-types/ts-esm-import-esm-output/tsconfig.json b/test-ts-types/ts-esm-import-esm-output/tsconfig.json deleted file mode 100644 index f9e9bb5f878b0..0000000000000 --- a/test-ts-types/ts-esm-import-esm-output/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "module": "esnext", - "strict": true, - "outDir": "dist", - "moduleResolution": "node" - }, - "files": ["good.ts", "bad.ts"] -}