How to use relativeFilePath method in Playwright Internal

Best JavaScript code snippet using playwright-internal

gittools.js

Source:gittools.js Github

copy

Full Screen

1/**2 * Git Tools for the Pylon IDE3 *4 * @license GPLv3 <http://www.gnu.org/licenses/gpl.txt>5 */6"use strict";7var Plugin = require("../pylon.core/plugin");8var util = require("util");9var name = "gittools";10module.exports = function setup(options, imports, register) {11 imports.ide.register(name, GitToolsPlugin, register);12};13var GitToolsPlugin = function(ide) {14 this.ide = ide;15 this.hooks = ["command"];16 this.name = "gittools";17};18util.inherits(GitToolsPlugin, Plugin);19(function() {20 // TODO place these two functions in a separate file21 // Could be useful for others22 this.getGitTopDir = function(dirPath, absoluteFilePath, callback) {23 var _self = this;24 this.getGitTopDirProc(dirPath, function(err, gitRoot) {25 if (err || !gitRoot)26 return callback("Error getting git top dir: " + err +27 " | " + absoluteFilePath + " | " + dirPath);28 gitRoot = gitRoot.replace("\n", "");29 var relativeFilePath = absoluteFilePath.substr(gitRoot.length + 1);30 callback(null, relativeFilePath, gitRoot);31 });32 };33 this.getGitTopDirProc = function(path, callback) {34 // @TODO SECURITY35 var argv = ["rev-parse", "--show-toplevel"];36 this.spawnCommand("git", argv, this.ide.workspaceDir + path,37 function(err) { // Error38 return callback(err);39 },40 function(out) { // Data41 return callback(null, out);42 },43 function(code, err, out) {44 // Exit45 }46 );47 };48 /**49 * Entry point for hooked command from the Plugin arch.50 * Determines if the primary command is "gittools" and then51 * handles the subcommand. Assumes the user is passing a52 * file argument in @message to perform a git operation on53 *54 * @param {object} user55 * @param {object} message User's message to the plugin56 * @param {object} client Client connection to the server57 * @return {boolean} False if message.command != "gittools" so the Plugin58 * architecture knows to keep asking other plugins if they handle59 * message.command60 */61 this.command = function(user, message, client) {62 if (message.command != "gittools" || !message.file)63 return false;64 var _self = this;65 // Cleanup the file path66 if (message.file.indexOf("/workspace/" >= 0))67 message.file = message.file.substr(11);68 // Get the file's parent directory path69 var lastSlash = message.file.lastIndexOf("/");70 var dirPath = "/" + message.file.substr(0, lastSlash);71 // Get the absolute system path to the file (as opposed to the72 // relative file path passed to us by the user)73 var absoluteFilePath = _self.ide.workspaceDir + "/" + message.file;74 // Given the path to the file's parent directory and the75 // absolute file path, determine the top-level directory76 // location of the git repository holding the file77 this.getGitTopDir(dirPath, absoluteFilePath, function(err, relativeFilePath, gitRoot) {78 if (err)79 return _self.sendResult(0, message.command, {80 code: 0,81 argv: message.argv,82 err: err ? err : "No git root found for file",83 out: null84 });85 switch (message.subcommand) {86 case "blame":87 _self.gitBlame(message, relativeFilePath, gitRoot);88 break;89 case "log":90 _self.gitLog(message, relativeFilePath, gitRoot);91 break;92 case "show":93 _self.gitShow(message, relativeFilePath, gitRoot, message.hash);94 break;95 default:96 console.log("Git Tools warning: subcommand `" +97 message.subcommand + "` not found");98 break;99 }100 });101 return true;102 };103 this.gitBlame = function(message, relativeFilePath, gitRoot) {104 var gitCommand = "blame";105 var argv;106 if (message.hash)107 argv = [gitCommand, "-p", message.hash, "--", relativeFilePath];108 else109 argv = [gitCommand, "-p", relativeFilePath];110 var _self = this;111 this.spawnCommand("git", argv, gitRoot,112 function(err) { // Error113 _self.sendResult(0, message.command, {114 code: 0,115 err: err,116 gitcommand: gitCommand,117 file: message.file,118 out: null119 });120 },121 function(out) { }, // Data122 function(code, err, out) { // Exit123 _self.sendResult(0, message.command, {124 code: code,125 err: null,126 gitcommand: gitCommand,127 file: message.file,128 out: out129 });130 }131 );132 };133 this.gitLog = function(message, relativeFilePath, gitRoot) {134 var gitCommand = "log";135 var argv = [gitCommand, "--format=raw", "--reverse", "--", relativeFilePath];136 var _self = this;137 this.spawnCommand("git", argv, gitRoot,138 function(err) { // Error139 _self.sendResult(0, message.command, {140 code: 0,141 err: err,142 gitcommand: gitCommand,143 file: message.file,144 out: null145 });146 },147 function(out) { }, // Data148 function(code, err, out) { // Exit149 _self.sendResult(0, message.command, {150 code: code,151 err: null,152 gitcommand: gitCommand,153 file: message.file,154 out: out155 });156 }157 );158 };159 this.gitShow = function(message, relativeFilePath, gitRoot, hash) {160 var gitCommand = "show";161 var argv = [gitCommand, hash + ":" + relativeFilePath];162 var _self = this;163 this.spawnCommand("git", argv, gitRoot,164 function(err) { // Error165 _self.sendResult(0, message.command, {166 code: 0,167 err: err,168 gitcommand: gitCommand,169 hash: hash,170 file: message.file,171 out: null172 });173 },174 function(out) { }, // Data175 function(code, err, out) { // Exit176 _self.sendResult(0, message.command, {177 code: code,178 err: null,179 gitcommand: gitCommand,180 hash: hash,181 file: message.file,182 out: out183 });184 }185 );186 };187 this.dispose = function(callback) {188 // TODO kill all running processes!189 callback();190 };...

Full Screen

Full Screen

download.test.js

Source:download.test.js Github

copy

Full Screen

1const {expect, test} = require('@oclif/test');2const td = require('testdouble');3const path = require('path');4describe('download', () => {5 const destination = 'destination';6 const relativeFilePath = '/some/file/path/file.zip'7 const absoluteFilePath = 'file:///some/file/path/file.zip'8 const remoteFilePath = 'http://website.com/files/file.zip'9 const localManifestPath = '/some/manifest/path/manifest.json'10 const remoteManifestPath = '/some/manifest/path/manifest.json'11 const manifestJsonLocalFile = [{12 "@id": absoluteFilePath,13 "@type": "koio:KnowledgeObject"14 }]15 const manifestJsonRemoteFile = [{16 "@id": remoteFilePath,17 "@type": "koio:KnowledgeObject"18 }]19 let downloadOptions = {20 extract: false,21 headers: {accept: ['application/zip', 'application/octet-stream']}22 };23 const fs = td.replace('fs-extra');24 const download = td.replace('download');25 const admzip = td.replace('adm-zip');26 const del = td.replace('del');27 td.when(fs.existsSync(relativeFilePath)).thenResolve(() => {28 })29 td.when(fs.existsSync(localManifestPath)).thenResolve(() => {30 })31 td.when(fs.writeJsonSync(manifestJsonLocalFile)).thenResolve(() => {32 })33 td.when(fs.copySync(relativeFilePath, path.join(destination, path.basename(relativeFilePath)))).thenResolve(() => {34 })35 td.when(download(remoteFilePath, path.join(process.cwd()), downloadOptions)).thenResolve(null);36 td.when(fs.readJsonSync(localManifestPath)).thenResolve(() => {37 return manifestJsonLocalFile38 })39 td.when(fs.readJsonSync(remoteManifestPath)).thenResolve(() => {40 return manifestJsonRemoteFile41 })42 td.when(del(td.matchers.anything())).thenResolve(() => {43 });44 describe('with files', () => {45 test46 .command([`download`, `-d`, `${destination}`, `-f`, `${relativeFilePath}`])47 .it('should create the destination directory if not already there', (context) => {48 td.verify(fs.ensureDirSync(destination))49 });50 test51 .command([`download`, `-f`, `${relativeFilePath}`])52 .it('should use the current directory if destination not set', (context) => {53 td.verify(fs.ensureDirSync(process.cwd()))54 });55 test56 .command([`download`, `-f`, `${relativeFilePath}`])57 .it('should copy the relative file', (context) => {58 td.verify(fs.copySync(relativeFilePath, path.join(process.cwd(), path.basename(relativeFilePath))))59 });60 test61 .command([`download`, `-d`, `${destination}`, `-f`, `${relativeFilePath}`])62 .it('should download the relative file to the destination', (context) => {63 td.verify(fs.copySync(relativeFilePath, path.join(destination, path.basename(relativeFilePath))))64 });65 test66 .command([`download`, `-f`, `${absoluteFilePath}`])67 .it('should copy the absolute file', (context) => {68 td.verify(fs.copySync(relativeFilePath, path.join(process.cwd(), path.basename(relativeFilePath))))69 });70 test71 .command([`download`, `-f`, `${remoteFilePath}`])72 .it('should download the remote file', (context) => {73 td.verify(download(74 remoteFilePath,75 path.join(process.cwd()),76 downloadOptions))77 });78 test79 .command([`download`, `-f`, `${relativeFilePath}`])80 .it('should write the relative file into the final manifest', (context) => {81 td.verify(fs.writeJsonSync(path.join(process.cwd(), 'manifest.json'), manifestJsonLocalFile, {spaces: 4}))82 });83 test84 .command([`download`, `-d`, `${destination}`, `-f`, `${relativeFilePath}`])85 .it('should write the final manifest in the destination', (context) => {86 td.verify(fs.writeJsonSync(path.join(destination, 'manifest.json'), manifestJsonLocalFile, {spaces: 4}))87 });88 test89 .command([`download`, `-f`, `${absoluteFilePath}`])90 .it('should write the absolute file into the final manifest', (context) => {91 td.verify(fs.writeJsonSync(path.join(process.cwd(), 'manifest.json'), manifestJsonLocalFile, {spaces: 4}))92 });93 test94 .command([`download`, `-f`, `${remoteFilePath}`])95 .it('should write the remote file into the final manifest', (context) => {96 td.verify(fs.writeJsonSync(path.join(process.cwd(), 'manifest.json'), manifestJsonRemoteFile, {spaces: 4}))97 });98 test99 .command([`download`, `-d`, `${destination}`,`-f`, `${remoteFilePath}`])100 .it('should delete the temporary directory', (context) => {101 td.verify(del([path.join(destination, 'tmp')]))102 });103 });104 describe('with manifest', () => {105 test106 .command([`download`, `-m`, `${localManifestPath}`])107 .it('should read the local manifest json', (context) => {108 td.verify(fs.readJsonSync(localManifestPath))109 });110 test111 .command([`download`, `-m`, `${localManifestPath}`])112 .it('should copy the local file in the manifest', (context) => {113 td.verify(fs.copySync(relativeFilePath, path.join(process.cwd(), path.basename(relativeFilePath))))114 });115 test116 .command([`download`, `-m`, `${remoteManifestPath}`])117 .it('should read the remote manifest json', (context) => {118 td.verify(fs.readJsonSync(remoteManifestPath))119 });120 test121 .command([`download`, `-m`, `${remoteManifestPath}`])122 .it('should download the remote file from the manifest', (context) => {123 td.verify(download(124 remoteFilePath,125 path.join(process.cwd()),126 downloadOptions))127 });128 test129 .command([`download`, `-m`, `${localManifestPath}`])130 .it('should write the local file from the original manifest into the final manifest', (context) => {131 td.verify(fs.writeJsonSync(path.join(process.cwd(), 'manifest.json'), manifestJsonLocalFile, {spaces: 4}))132 });133 test134 .command([`download`, `-m`, `${remoteManifestPath}`])135 .it('should write the remote file from the original manifest into the final manifest', (context) => {136 td.verify(fs.writeJsonSync(path.join(process.cwd(), 'manifest.json'), manifestJsonRemoteFile, {spaces: 4}))137 });138 test139 .command([`download`, `-d`, `${destination}`,`-m`, `${remoteManifestPath}`])140 .it('should delete the temporary directory', (context) => {141 td.verify(del([path.join(destination, 'tmp')]))142 });143 });...

Full Screen

Full Screen

eject.js

Source:eject.js Github

copy

Full Screen

1'use strict';2// 检测 node 版本3require('webpack-launcher-utils/checkNodeVersion')();4// Makes the script crash on unhandled rejections instead of silently5// ignoring them. In the future, promise rejections that are not handled will6// terminate the Node.js process with a non-zero exit code.7// 脚本未知原因终止运行,需要提示错误8process.on('unhandledRejection', err => {9 throw err;10});11const inquirer = require('react-dev-utils/inquirer');12const chalk = require('chalk');13const fs = require('fs-extra');14const path = require('path');15inquirer16 .prompt({17 type: 'confirm',18 name: 'shouldEject',19 message: 'Are you sure you want to eject? This action is permanent.',20 default: false,21 })22 .then(answer => {23 if (!answer.shouldEject) {24 console.log(chalk.cyan('Close one! Eject aborted.'));25 return;26 }27 const shouldCopyedFileRelativePaths = [28 './.eslintrc.js',29 './.babelrc.js',30 './config/webpack.config.js',31 './config/webpackDevServer.config.js',32 './config/webpackLauncher.config.js',33 './config/webpack.dll.config.js',34 './scripts/start.js',35 './scripts/build.js',36 './scripts/buildDll.js',37 './scripts/serveBuild.js',38 './bin/start.js',39 './bin/build.js',40 './bin/buildDll.js',41 './bin/serveBuild.js',42 ];43 shouldCopyedFileRelativePaths.forEach(relativeFilePath => {44 // 检查文件是否存储,只要其中存在立即中断 eject45 const file = path.resolve(relativeFilePath);46 if (fs.existsSync(file)) {47 console.log();48 console.log(chalk.red(`The ejected file ${relativeFilePath} exited! Eject aborted.`));49 console.log();50 console.log(51 chalk.cyan('Make sure that the file not existed in any of the following files:')52 );53 console.log();54 shouldCopyedFileRelativePaths.forEach(relativeFilePath => {55 console.log(` ${relativeFilePath}`);56 });57 process.exit();58 }59 });60 console.log();61 console.log('Ejecting...');62 console.log();63 shouldCopyedFileRelativePaths.forEach(relativeFilePath => {64 if (!!~relativeFilePath.indexOf('./public/')) {65 // public 直接复制66 console.log(` Adding ${chalk.cyan(relativeFilePath)}`);67 return;68 }69 // 原始文件路径70 let originalFilePath = path.resolve(__dirname, '../', relativeFilePath);71 // 复制后的路径72 const copyedFilePath = path.resolve(relativeFilePath);73 if (relativeFilePath === './.eslintrc.js') {74 originalFilePath = path.resolve(__dirname, '../config/eslint.config.js');75 } else if (relativeFilePath === './.babelrc.js') {76 originalFilePath = path.resolve(__dirname, '../config/babel.config.js');77 } else if (relativeFilePath === './bin/start.js') {78 originalFilePath = path.resolve(__dirname, '../bin/webpack-launcher-start.js');79 } else if (relativeFilePath === './bin/build.js') {80 originalFilePath = path.resolve(__dirname, '../bin/webpack-launcher-build.js');81 } else if (relativeFilePath === './bin/buildDll.js') {82 originalFilePath = path.resolve(__dirname, '../bin/webpack-launcher-build-dll.js');83 } else if (relativeFilePath === './bin/serveBuild.js') {84 originalFilePath = path.resolve(__dirname, '../bin/webpack-launcher-serve-build.js');85 }86 const content = fs87 .readFileSync(originalFilePath, 'utf8')88 // Remove dead code from .js files on eject89 .replace(/\/\/ @remove-on-eject-begin([\s\S]*?)\/\/ @remove-on-eject-end/gm, '')90 .trim();91 console.log(` Adding ${chalk.cyan(relativeFilePath)}`);92 fs.outputFileSync(copyedFilePath, content);93 });94 updateCwdPackageJson();95 console.log();96 console.log('Ejected sucessfully!');97 });98function updateCwdPackageJson() {99 const cwdPacakgeJsonPath = path.resolve('package.json');100 const cwdPacakgeJson = require(cwdPacakgeJsonPath);101 cwdPacakgeJson.scripts.start = 'node ./bin/start.js';102 cwdPacakgeJson.scripts.build = 'node ./bin/build.js';103 cwdPacakgeJson.scripts['build-dll'] = 'node ./bin/buildDll.js';104 cwdPacakgeJson.scripts['serve-build'] = 'node ./bin/serveBuild.js';105 delete cwdPacakgeJson.scripts.eject;106 fs.outputFileSync(cwdPacakgeJsonPath, JSON.stringify(cwdPacakgeJson, null, 2));...

Full Screen

Full Screen

progmem-generator.js

Source:progmem-generator.js Github

copy

Full Screen

1const { resolve, relative, sep } = require('path');2const { readdirSync, existsSync, unlinkSync, readFileSync, createWriteStream } = require('fs');3var zlib = require('zlib');4var mime = require('mime-types');5const ARDUINO_INCLUDES = "#include <Arduino.h>\n\n";6function getFilesSync(dir, files = []) {7 readdirSync(dir, { withFileTypes: true }).forEach(entry => {8 const entryPath = resolve(dir, entry.name);9 if (entry.isDirectory()) {10 getFilesSync(entryPath, files);11 } else {12 files.push(entryPath);13 }14 })15 return files;16}17function coherseToBuffer(input) {18 return Buffer.isBuffer(input) ? input : Buffer.from(input);19}20function cleanAndOpen(path) {21 if (existsSync(path)) {22 unlinkSync(path);23 }24 return createWriteStream(path, { flags: "w+" });25}26class ProgmemGenerator {27 constructor(options = {}) {28 const { outputPath, bytesPerLine = 20, indent = " ", includes = ARDUINO_INCLUDES } = options;29 this.options = { outputPath, bytesPerLine, indent, includes };30 }31 apply(compiler) {32 compiler.hooks.emit.tapAsync(33 { name: 'ProgmemGenerator' },34 (compilation, callback) => {35 const { outputPath, bytesPerLine, indent, includes } = this.options;36 const fileInfo = [];37 const writeStream = cleanAndOpen(resolve(compilation.options.context, outputPath));38 try {39 const writeIncludes = () => {40 writeStream.write(includes);41 }42 const writeFile = (relativeFilePath, buffer) => {43 const variable = "ESP_REACT_DATA_" + fileInfo.length;44 const mimeType = mime.lookup(relativeFilePath);45 var size = 0;46 writeStream.write("const uint8_t " + variable + "[] PROGMEM = {");47 const zipBuffer = zlib.gzipSync(buffer);48 zipBuffer.forEach((b) => {49 if (!(size % bytesPerLine)) {50 writeStream.write("\n");51 writeStream.write(indent);52 }53 writeStream.write("0x" + ("00" + b.toString(16).toUpperCase()).substr(-2) + ",");54 size++;55 });56 if (size % bytesPerLine) {57 writeStream.write("\n");58 }59 writeStream.write("};\n\n");60 fileInfo.push({61 uri: '/' + relativeFilePath.replace(sep, '/'),62 mimeType,63 variable,64 size65 });66 };67 const writeFiles = () => {68 // process static files69 const buildPath = compilation.options.output.path;70 for (const filePath of getFilesSync(buildPath)) {71 const readStream = readFileSync(filePath);72 const relativeFilePath = relative(buildPath, filePath);73 writeFile(relativeFilePath, readStream);74 }75 // process assets76 const { assets } = compilation;77 Object.keys(assets).forEach((relativeFilePath) => {78 writeFile(relativeFilePath, coherseToBuffer(assets[relativeFilePath].source()));79 });80 }81 const generateWWWClass = () => {82 return `typedef std::function<void(const String& uri, const String& contentType, const uint8_t * content, size_t len)> RouteRegistrationHandler; 83class WWWData {84${indent}public:85${indent.repeat(2)}static void registerRoutes(RouteRegistrationHandler handler) {86${fileInfo.map(file => `${indent.repeat(3)}handler("${file.uri}", "${file.mimeType}", ${file.variable}, ${file.size});`).join('\n')}87${indent.repeat(2)}}88};89`;90 }91 const writeWWWClass = () => {92 writeStream.write(generateWWWClass());93 }94 writeIncludes();95 writeFiles();96 writeWWWClass();97 writeStream.on('finish', () => {98 callback();99 });100 } finally {101 writeStream.end();102 }103 }104 );105 }106}...

Full Screen

Full Screen

directory.js

Source:directory.js Github

copy

Full Screen

1import * as path from 'path';2import { createReadStream } from 'fs';3import FirstChunkStream from 'first-chunk-stream';4import stripBomStream from 'strip-bom-stream';5import { oneLine } from 'common-tags';6import { IOBase } from 'io/base';7import { walkPromise } from 'io/utils';8import log from 'logger';9export class Directory extends IOBase {10 async getFiles(_walkPromise = walkPromise) {11 // If we have already processed this directory and have data12 // on this instance return that.13 if (Object.keys(this.files).length) {14 log.info(oneLine`Files already exist for directory15 "${this.path}" returning cached data`);16 return this.files;17 }18 const files = await _walkPromise(this.path, {19 shouldIncludePath: (...args) => this.shouldScanFile(...args),20 });21 this.files = files;22 this.entries = Object.keys(files);23 return files;24 }25 async getPath(relativeFilePath) {26 if (!Object.prototype.hasOwnProperty.call(this.files, relativeFilePath)) {27 throw new Error(`Path "${relativeFilePath}" does not exist in this dir.`);28 }29 if (this.files[relativeFilePath].size > this.maxSizeBytes) {30 throw new Error(`File "${relativeFilePath}" is too large. Aborting`);31 }32 const absoluteDirPath = path.resolve(this.path);33 const filePath = path.resolve(path.join(absoluteDirPath, relativeFilePath));34 // This is belt and braces. Should never happen that a file was in35 // the files object and yet doesn't meet these requirements.36 if (37 !filePath.startsWith(absoluteDirPath) ||38 relativeFilePath.startsWith('/')39 ) {40 throw new Error(`Path argument must be relative to ${this.path}`);41 }42 return filePath;43 }44 async getFileAsStream(relativeFilePath, { encoding } = { encoding: 'utf8' }) {45 const filePath = await this.getPath(relativeFilePath);46 const readStream = createReadStream(filePath, {47 autoClose: true,48 encoding,49 flags: 'r',50 });51 return !encoding ? readStream : readStream.pipe(stripBomStream());52 }53 async getFileAsString(_path) {54 const readStream = await this.getFileAsStream(_path);55 return new Promise((resolve, reject) => {56 let content = '';57 readStream.on('readable', () => {58 let chunk;59 // eslint-disable-next-line no-cond-assign60 while ((chunk = readStream.read()) !== null) {61 content += chunk.toString();62 }63 });64 readStream.on('end', () => {65 resolve(content);66 });67 readStream.on('error', reject);68 });69 }70 async getChunkAsBuffer(relativeFilePath, chunkLength) {71 const filePath = await this.getPath(relativeFilePath);72 return new Promise((resolve) => {73 createReadStream(filePath, {74 flags: 'r',75 // This is important because you don't want to encode the76 // bytes if you are doing a binary check.77 encoding: null,78 autoClose: true,79 }).pipe(80 new FirstChunkStream({ chunkLength }, (_, enc) => {81 resolve(enc);82 })83 );84 });85 }...

Full Screen

Full Screen

index.js

Source:index.js Github

copy

Full Screen

1import { PREVIEW_HOST, PREVIEW_ORIGIN } from '../../constants/preview';2import AWS from 'aws-sdk';3import chalk from 'chalk';4import fs from 'fs-extra';5import glob from 'glob';6import mime from 'mime-types';7import open from 'open';8import path from 'path';9const AWS_REGION = 'us-east-1';10const s3 = new AWS.S3({ region: AWS_REGION });11// Logging12const LOGFILE = path.join(process.cwd(), '.aws.publish.log');13const readLog = () => {14 if (!fs.existsSync(LOGFILE)) fs.writeFileSync(LOGFILE, '{}');15 return JSON.parse(fs.readFileSync(LOGFILE, 'utf-8'), (k, v) => {16 return typeof v === 'string' ? new Date(v) : v;17 });18};19const writeLog = () => fs.writeFileSync(LOGFILE, JSON.stringify(LOG));20const LOG = readLog();21const uploadFile = async(relativeFilePath, URL, DIST_DIR) => {22 const absoluteFilePath = path.resolve(DIST_DIR, relativeFilePath);23 const currentModifiedTime = fs.statSync(absoluteFilePath).mtime;24 const lastModifiedTime = LOG[URL + relativeFilePath];25 if (lastModifiedTime && currentModifiedTime <= lastModifiedTime) {26 console.log(chalk`{green.dim Skip} {yellow.dim ${relativeFilePath}}`);27 return;28 } else {29 console.log(chalk`{green.dim Send} {yellow.dim ${relativeFilePath}}`);30 LOG[URL + relativeFilePath] = currentModifiedTime;31 }32 const fileContent = fs.readFileSync(absoluteFilePath);33 const bucketPath = path.join(URL.replace(PREVIEW_ORIGIN + '/', ''), relativeFilePath);34 const contentType = mime.contentType(path.extname(absoluteFilePath));35 if (!contentType) return;36 const params = {37 Bucket: PREVIEW_HOST,38 Key: bucketPath,39 Body: fileContent,40 CacheControl: 'no-cache',41 ContentType: contentType,42 };43 return new Promise((resolve, reject) => {44 s3.putObject(params, function(err, data) {45 if (err) reject(err);46 resolve();47 });48 });49};50export default {51 async publishToAWS() {52 const URL = this.getPreviewURL();53 const files = glob.sync('**/*', { cwd: this.DIST_DIR, nodir: true });54 await Promise.all(files.map(file => uploadFile(file, URL, this.DIST_DIR)));55 writeLog();56 await open(URL);57 },...

Full Screen

Full Screen

v8-snapshots-util.js

Source:v8-snapshots-util.js Github

copy

Full Screen

1const path = require('path')2console.log('snapshotResult:', snapshotResult)3if (typeof snapshotResult !== 'undefined') {4 console.log('snapshotResult available!', snapshotResult)5 const Module = require('module')6 const entryPointDirPath = path.resolve(7 global.require.resolve('react'),8 '..',9 '..',10 '..'11 )12 console.log('entryPointDirPath:', entryPointDirPath)13 Module.prototype.require = function (module) {14 const absoluteFilePath = Module._resolveFilename(module, this, false)15 let relativeFilePath = path.relative(entryPointDirPath, absoluteFilePath)16 if (!relativeFilePath.startsWith('./')) {17 relativeFilePath = `./${relativeFilePath}`18 }19 if (process.platform === 'win32') {20 relativeFilePath = relativeFilePath.replace(/\\/g, '/')21 }22 let cachedModule = snapshotResult.customRequire.cache[relativeFilePath]23 if (snapshotResult.customRequire.cache[relativeFilePath]) {24 console.log('Snapshot cache hit:', relativeFilePath)25 }26 if (!cachedModule) {27 console.log('Uncached module:', module, relativeFilePath)28 cachedModule = { exports: Module._load(module, this, false) }29 snapshotResult.customRequire.cache[relativeFilePath] = cachedModule30 }31 return cachedModule.exports32 }33 snapshotResult.setGlobals(34 global,35 process,36 window,37 document,38 console,39 global.require40 )...

Full Screen

Full Screen

clean.relative.path.ts

Source:clean.relative.path.ts Github

copy

Full Screen

1#!/usr/bin/env node2'use strict';3import {toLower, replace, join, split} from 'lodash';4const cleanRelativePath = (rootFolder: string, absoluteFilePath: string, ext: '.ts' | '.js'): string => {5 let relativeFilePath = toLower(absoluteFilePath) + '/';6 relativeFilePath = replace(relativeFilePath, toLower(rootFolder), '');7 relativeFilePath = replace(relativeFilePath, toLower(ext), '');8 relativeFilePath = replace(relativeFilePath, 'root', '');9 relativeFilePath = join(split(relativeFilePath, '\\'), '/');10 relativeFilePath = join(split(relativeFilePath, '//'), '/');11 return relativeFilePath;12};...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const path = require('path');2const {chromium} = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const relativeFilePath = require(path.join(__dirname, '../node_modules/playwright/lib/utils/utils.js')).relativeFilePath;8 console.log(relativeFilePath('test.js'));9 await browser.close();10})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const path = require('path');2const playwright = require('playwright');3(async () => {4 for (const browserType of ['chromium', 'firefox', 'webkit']) {5 const browser = await playwright[browserType].launch();6 const context = await browser.newContext();7 const page = await context.newPage();8 const elementHandle = await page.$('text=Get started');9 const filePath = await elementHandle.evaluate(element => element.ownerDocument.defaultView.relativeFilePath('test.js'));10 console.log(filePath);11 await browser.close();12 }13})();14const path = require('path');15const playwright = require('playwright');16(async () => {17 for (const browserType of ['chromium', 'firefox', 'webkit']) {18 const browser = await playwright[browserType].launch();19 const context = await browser.newContext();20 const page = await context.newPage();21 const elementHandle = await page.$('text=Get started');22 const filePath = await elementHandle.evaluate(element => element.ownerDocument.defaultView.relativeFilePath('src/test.js'));23 console.log(filePath);24 await browser.close();25 }26})();27const path = require('path');28const playwright = require('playwright');29(async () => {30 for (const browserType of ['chromium', 'firefox', 'webkit']) {31 const browser = await playwright[browserType].launch();32 const context = await browser.newContext();33 const page = await context.newPage();34 const elementHandle = await page.$('text=Get started');35 const filePath = await elementHandle.evaluate(element => element.ownerDocument.defaultView.relativeFilePath('src/subfolder/test.js'));36 console.log(filePath);37 await browser.close();38 }39})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const path = require('path');2const playwright = require('playwright');3const { relativeFilePath } = require('playwright/lib/server/utils');4(async () => {5 for (const browserType of ['chromium', 'firefox', 'webkit']) {6 const browser = await playwright[browserType].launch();7 const context = await browser.newContext();8 const page = await context.newPage();9 await page.goto(relativeFilePath(path.join(__dirname, 'index.html')));10 await page.screenshot({ path: `example-${browserType}.png` });11 await browser.close();12 }13})();14{15 "scripts": {16 },17 "dependencies": {18 }19}20{21 "scripts": {22 },23 "dependencies": {24 }25}26{

Full Screen

Using AI Code Generation

copy

Full Screen

1const { relativeFilePath } = require('@playwright/test');2console.log(relativeFilePath('test.js'));3const { relativeFilePath } = require('@playwright/test');4console.log(relativeFilePath('/home/user/test.js'));5const { relativeFilePath } = require('@playwright/test');6console.log(relativeFilePath('/home/user/test.js', '/home/user'));7const { relativeFilePath } = require('@playwright/test');8console.log(relativeFilePath('/home/user/test.js', '/home/user/'));9const { relativeFilePath } = require('@playwright/test');10console.log(relativeFilePath('/home/user/test.js', '/home/user/other'));11const { relativeFilePath } = require('@playwright/test');12console.log(relativeFilePath('/home/user/test.js', '/home/user/other/'));13const { relativeFilePath } = require('@playwright/test');14console.log(relativeFilePath('/home/user/test.js', '/home/user/other/other'));15const { relativeFilePath } = require('@playwright/test');16console.log(relativeFilePath('/home/user/test.js', '/home/user/other/other/'));17const { relativeFilePath } = require('@playwright/test');18console.log(relativeFilePath('/home/user/test.js', '/home/user/other/other/other'));

Full Screen

Using AI Code Generation

copy

Full Screen

1const path = require('path');2const { test, expect } = require('@playwright/test');3test('relativeFilePath', async ({ page }) => {4 const filePath = path.relative(process.cwd(), __filename);5 const relativeFilePath = page.internalModule().relativeFilePath(filePath);6 expect(relativeFilePath).toBe('test.js');7});8Your name to display (optional):

Full Screen

Using AI Code Generation

copy

Full Screen

1const { test, expect } = require('@playwright/test');2const path = require('path');3test('test', async ({ page }) => {4 const filePath = path.resolve(__dirname, 'data/test.csv');5 const relativeFilePath = page.relativeFilePath(filePath);6 console.log(relativeFilePath);7 await page.waitForLoadState('networkidle');8});9 ✓ test (1s)10 1 passed (1s)

Full Screen

Using AI Code Generation

copy

Full Screen

1const { relativeFilePath } = require('@playwright/test');2const path = require('path');3const relativePath = relativeFilePath(path.join(__dirname, 'relativeFilePath.js'));4console.log(relativePath);5const { relativeFilePath } = require('@playwright/test');6const path = require('path');7const relativePath = relativeFilePath(path.join(__dirname, 'relativeFilePath.js'));8console.log(relativePath);9const { relativeFilePath } = require('@playwright/test');10const path = require('path');11const relativePath = relativeFilePath(path.join(__dirname, 'relativeFilePath.js'));12console.log(relativePath);13const { relativeFilePath } = require('@playwright/test');14const path = require('path');15const relativePath = relativeFilePath(path.join(__dirname, 'relativeFilePath.js'));16console.log(relativePath);17const { relativeFilePath } = require('@playwright/test');18const path = require('path');19const relativePath = relativeFilePath(path.join(__dirname, 'relativeFilePath.js'));20console.log(relativePath);21const { relativeFilePath } = require('@playwright/test');22const path = require('path');23const relativePath = relativeFilePath(path.join(__dirname, 'relativeFilePath.js'));24console.log(relativePath);25const { relativeFilePath } = require('@playwright/test');26const path = require('path');27const relativePath = relativeFilePath(path.join(__dirname, 'relativeFilePath.js'));28console.log(relativePath);29const { relativeFilePath } = require('@playwright/test');30const path = require('path');31const relativePath = relativeFilePath(path.join(__dirname, 'relativeFilePath.js'));32console.log(relativePath);

Full Screen

Using AI Code Generation

copy

Full Screen

1const { relativeFilePath } = require('@playwright/test');2console.log(relativeFilePath('test.js'));3const { relativeFilePath } = require('@playwright/test');4console.log(relativeFilePath('/Users/username/Documents/playwright/test.js'));5const { relativeFilePath } = require('@playwright/test');6console.log(relativeFilePath('test.js', '/Users/username/Documents/playwright/test.js'));7const { relativeFilePath } = require('@playwright/test');8console.log(relativeFilePath('/Users/username/Documents/playwright/test.js', '/Users/username/Documents/playwright/test.js'));9const { relativeFilePath } = require('@playwright/test');10console.log(relativeFilePath('test.js', '/Users/username/Documents/playwright/test.js', '/Users/username/Documents/playwright/test.js'));11const { relativeFilePath } = require('@playwright/test');12console.log(relativeFilePath('/Users/username/Documents/playwright/test.js', '/Users/username/Documents/playwright/test.js', '/Users/username/Documents/playwright/test.js'));13const { relativeFilePath } = require('@playwright/test');14console.log(relativeFilePath('/Users/username/Documents/playwright/test.js', '/Users/username/Documents/playwright/test.js', '/Users/username/Documents/playwright/test.js', '/Users/username/Documents/playwright/test.js'));15const { relativeFilePath } = require('@playwright/test');16console.log(relativeFilePath('/Users/

Full Screen

Using AI Code Generation

copy

Full Screen

1const { relativeFilePath } = require('playwright/lib/utils/utils');2const path = require('path');3const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt');4console.log(filePath);5const { relativeFilePath } = require('playwright/lib/utils/utils');6const path = require('path');7const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt');8console.log(filePath);9const { relativeFilePath } = require('playwright/lib/utils/utils');10const path = require('path');11const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt');12console.log(filePath);13const { relativeFilePath } = require('playwright/lib/utils/utils');14const path = require('path');15const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt');16console.log(filePath);17const { relativeFilePath } = require('playwright/lib/utils/utils');18const path = require('path');19const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt');20console.log(filePath);21const { relativeFilePath } = require('playwright/lib/utils/utils');22const path = require('path');23const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt');24console.log(filePath);25const { relativeFilePath } = require('playwright/lib/utils/utils');26const path = require('path');27const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt');28console.log(filePath);29const { relativeFilePath } = require('playwright/lib/utils/utils');30const path = require('path');31const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt');32console.log(filePath);33const { relativeFilePath } = require('playwright/lib/utils/utils');34const path = require('path');35const filePath = relativeFilePath(__dirname, 'relativeFilePath.txt

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Internal automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful