Best JavaScript code snippet using playwright-internal
gittools.js
Source:gittools.js
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 };...
download.test.js
Source:download.test.js
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 });...
eject.js
Source:eject.js
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));...
progmem-generator.js
Source:progmem-generator.js
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}...
directory.js
Source:directory.js
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 }...
index.js
Source:index.js
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 },...
v8-snapshots-util.js
Source:v8-snapshots-util.js
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 )...
clean.relative.path.ts
Source:clean.relative.path.ts
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};...
Using AI Code Generation
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})();
Using AI Code Generation
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})();
Using AI Code Generation
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{
Using AI Code Generation
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'));
Using AI Code Generation
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):
Using AI Code Generation
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)
Using AI Code Generation
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);
Using AI Code Generation
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/
Using AI Code Generation
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
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.
Get 100 minutes of automation test minutes FREE!!