Best JavaScript code snippet using playwright-internal
plugin.spec.js
Source:plugin.spec.js  
...3import { babelTransform, importSyntaxPlugin } from './babel-helpers';4describe('Babel Root Import - Plugin', () => {5  it('transforms the relative path into an absolute path', () => {6    const targetRequire = slash(`/some/example.js`);7    const transformedImport = babelTransform(8      "import SomeExample from '~/some/example.js';",9      {10        plugins: [BabelRootImportPlugin],11      },12    );13    const transformedRequire = babelTransform(14      "var SomeExample = require('~/some/example.js');",15      {16        plugins: [BabelRootImportPlugin],17      },18    );19    const transformedRequireResolve = babelTransform(20      "var SomeExample = require.resolve('~/some/example.js');",21      {22        plugins: [BabelRootImportPlugin],23      },24    );25    expect(transformedImport.code).to.contain(targetRequire);26    expect(transformedRequire.code).to.contain(targetRequire);27    expect(transformedRequireResolve.code).to.contain(targetRequire);28  });29  it('transforms for import() syntax', () => {30    const targetRequire = slash(`"./some/example.js"`);31    const transformed = babelTransform(32      'var SomeExample = import("~/some/example.js");',33      {34        plugins: [importSyntaxPlugin, BabelRootImportPlugin],35      },36    );37    expect(transformed.code).to.contain(targetRequire);38  });39  it('transforms for import() syntax with template literal', () => {40    const targetRequire = slash('`./some/${foo}`');41    const transformed = babelTransform('var SomeExample = import(`~/some/${foo}`);', {42      plugins: [importSyntaxPlugin, BabelRootImportPlugin],43    });44    expect(transformed.code).to.contain(targetRequire);45  });46  it('transforms for require() with template literal', () => {47    const targetRequire = slash('`./some/${foo}`');48    const transformed = babelTransform(49      'var SomeExample = require(`~/some/${foo}`);',50      {51        plugins: [BabelRootImportPlugin],52      },53    );54    expect(transformed.code).to.contain(targetRequire);55  });56  it('transforms for custom functions', () => {57    const targetRequire = slash(`/some/example.js`);58    const transformed = babelTransform(59      "var SomeExample = jest.mock('~/some/example.js');",60      {61        plugins: [62          [63            BabelRootImportPlugin,64            {65              functions: ['jest.mock'],66            },67          ],68        ],69      },70    );71    expect(transformed.code).to.contain(targetRequire);72  });73  it('transforms the relative path into an absolute path with the configured root-path', () => {74    const targetRequire = slash('/some/custom/root/some/example.js');75    const transformedImport = babelTransform(76      "import SomeExample from '~/some/example.js';",77      {78        plugins: [79          [80            BabelRootImportPlugin,81            {82              rootPathSuffix: 'some/custom/root',83            },84          ],85        ],86      },87    );88    const transformedRequire = babelTransform(89      "var SomeExample = require('~/some/example.js');",90      {91        plugins: [92          [93            BabelRootImportPlugin,94            {95              rootPathSuffix: 'some/custom/root',96            },97          ],98        ],99      },100    );101    expect(transformedImport.code).to.contain(targetRequire);102    expect(transformedRequire.code).to.contain(targetRequire);103  });104  it('transforms the relative paths into an absolute paths with the configured root-paths', () => {105    const paths = [106      {107        rootPathPrefix: '~',108        rootPathSuffix: 'some1/custom/root',109      },110      {111        rootPathPrefix: '@',112        rootPathSuffix: 'some2/custom/root',113      },114    ];115    const pluginConfig = process.env.BABEL_VERSION === '7' ? { paths } : paths;116    const plugins = [[BabelRootImportPlugin, pluginConfig]];117    const targetRequire1 = slash(`/some1/custom/root/some/example.js`);118    const transformedImport1 = babelTransform(119      "import SomeExample from '~/some/example.js';",120      {121        plugins,122      },123    );124    const transformedRequire1 = babelTransform(125      "var SomeExample = require('~/some/example.js');",126      {127        plugins,128      },129    );130    const targetRequire2 = slash(`/some2/custom/root/some/example.js`);131    const transformedImport2 = babelTransform(132      "import SomeExample from '@/some/example.js';",133      {134        plugins,135      },136    );137    const transformedRequire2 = babelTransform(138      "var SomeExample = require('@/some/example.js');",139      {140        plugins,141      },142    );143    expect(transformedImport1.code).to.contain(targetRequire1);144    expect(transformedRequire1.code).to.contain(targetRequire1);145    expect(transformedImport2.code).to.contain(targetRequire2);146    expect(transformedRequire2.code).to.contain(targetRequire2);147  });148  it('uses the "@" as custom prefix to detect a root-import path', () => {149    const targetRequire = slash(`/some/example.js`);150    const transformedImport = babelTransform(151      "import SomeExample from '@/some/example.js';",152      {153        plugins: [154          [155            BabelRootImportPlugin,156            {157              rootPathPrefix: '@',158            },159          ],160        ],161      },162    );163    const transformedRequire = babelTransform(164      "var SomeExample = require('@/some/example.js');",165      {166        plugins: [167          [168            BabelRootImportPlugin,169            {170              rootPathPrefix: '@',171            },172          ],173        ],174      },175    );176    expect(transformedImport.code).to.contain(targetRequire);177    expect(transformedRequire.code).to.contain(targetRequire);178  });179  it('supports re-export syntax (export * from ... or export { named } from ...)', () => {180    const targetRequire = slash(`/some/example.js`);181    const transformedExportAll = babelTransform(182      "export * from '@/some/example.js';",183      {184        plugins: [185          [186            BabelRootImportPlugin,187            {188              rootPathPrefix: '@',189            },190          ],191        ],192      },193    );194    const transformedExportNamed = babelTransform(195      "export { named } from '@/some/example.js';",196      {197        plugins: [198          [199            BabelRootImportPlugin,200            {201              rootPathPrefix: '@',202            },203          ],204        ],205      },206    );207    expect(transformedExportNamed.code).to.contain(targetRequire);208    expect(transformedExportAll.code).to.contain(targetRequire);209  });210  it('uses the "/" as custom prefix to detect a root-import path', () => {211    const targetRequire = slash(`/some/example.js`);212    const transformedImport = babelTransform(213      "import SomeExample from '/some/example.js';",214      {215        plugins: [216          [217            BabelRootImportPlugin,218            {219              rootPathPrefix: '/',220            },221          ],222        ],223      },224    );225    const transformedRequire = babelTransform(226      "var SomeExample = require('/some/example.js');",227      {228        plugins: [229          [230            BabelRootImportPlugin,231            {232              rootPathPrefix: '/',233            },234          ],235        ],236      },237    );238    expect(transformedImport.code).to.contain(targetRequire);239    expect(transformedRequire.code).to.contain(targetRequire);240  });241  it('uses the "â" as custom prefix to detect a root-import path', () => {242    const targetRequire = slash(`/some/example.js`);243    const transformedImport = babelTransform(244      "import SomeExample from '-/some/example.js';",245      {246        plugins: [247          [248            BabelRootImportPlugin,249            {250              rootPathPrefix: '-',251            },252          ],253        ],254      },255    );256    const transformedRequire = babelTransform(257      "var SomeExample = require('-/some/example.js');",258      {259        plugins: [260          [261            BabelRootImportPlugin,262            {263              rootPathPrefix: '-',264            },265          ],266        ],267      },268    );269    expect(transformedImport.code).to.contain(targetRequire);270    expect(transformedRequire.code).to.contain(targetRequire);271  });272  it('uses "@" as custom prefix to detect a root-import path and has a custom rootPathSuffix', () => {273    const targetRequire = slash(`/some/example.js`);274    const transformedImport = babelTransform(275      "import SomeExample from '@/example.js';",276      {277        plugins: [278          [279            BabelRootImportPlugin,280            {281              rootPathPrefix: '@',282              rootPathSuffix: 'some',283            },284          ],285        ],286      },287    );288    const transformedRequire = babelTransform(289      "var SomeExample = require('@/example.js');",290      {291        plugins: [292          [293            BabelRootImportPlugin,294            {295              rootPathPrefix: '@',296              rootPathSuffix: 'some',297            },298          ],299        ],300      },301    );302    expect(transformedImport.code).to.contain(targetRequire);303    expect(transformedRequire.code).to.contain(targetRequire);304  });305  it('transforms a multipart require path with string at the beginning', () => {306    const transformedRequire1 = babelTransform(307      "var SomeExample = require('~/some/' + 'example.js');",308      {309        plugins: [BabelRootImportPlugin],310      },311    );312    expect(transformedRequire1.code).to.be.oneOf([313      `var SomeExample = require('./some/' + 'example.js');`, // babel 6314      `var SomeExample = require("./some/" + 'example.js');`, // babel 7315    ]);316    const transformedRequire2 = babelTransform(317      "var SomeExample = require('~/some/' + 'other' + 'example.js');",318      {319        plugins: [BabelRootImportPlugin],320      },321    );322    expect(transformedRequire2.code).to.contain.oneOf([323      `var SomeExample = require('./some/' + 'other' + 'example.js');`, // babel 6324      `var SomeExample = require("./some/" + 'other' + 'example.js');`, // babel 7325    ]);326  });327  it('does not transform a multipart require path with variable at the beginning', () => {328    const targetRequire = slash(`/some' + '/example.js`);329    const transformedRequire = babelTransform(330      "var some = '~/';var SomeExample = require(some+ '/example.js');",331      {332        plugins: [BabelRootImportPlugin],333      },334    );335    expect(transformedRequire.code).to.not.contain(targetRequire);336  });337  it('Considers .. Statements in relative Paths', () => {338    const paths = [339      {340        rootPathPrefix: '~',341        rootPathSuffix: 'some1/custom/root',342      },343      {344        rootPathPrefix: '@',345        rootPathSuffix: '../../some2/custom/../custom/root',346      },347    ];348    const pluginConfig = process.env.BABEL_VERSION === '7' ? { paths } : paths;349    const plugins = [[BabelRootImportPlugin, pluginConfig]];350    const targetRequire1 = slash(`/some1/custom/root/some/example.js`);351    const transformedImport1 = babelTransform(352      "import SomeExample from '~/some/example.js';",353      {354        plugins,355      },356    );357    const transformedRequire1 = babelTransform(358      "var SomeExample = require('~/some/example.js');",359      {360        plugins,361      },362    );363    const targetRequire2 = slash(`../../some2/custom/root/some/example.js`);364    const transformedImport2 = babelTransform(365      "import SomeExample from '@/some/example.js';",366      {367        plugins,368      },369    );370    const transformedRequire2 = babelTransform(371      "var SomeExample = require('@/some/example.js');",372      {373        plugins,374      },375    );376    expect(transformedImport1.code).to.contain(targetRequire1);377    expect(transformedRequire1.code).to.contain(targetRequire1);378    expect(transformedImport2.code).to.contain(targetRequire2);379    expect(transformedRequire2.code).to.contain(targetRequire2);380  });...test.js
Source:test.js  
2const assert = require('chai').assert;3const getErrorMessage = require('../lib').getErrorMessage;4const optionLabels = require('../lib').optionLabels;5const INPUT = `import 'test';`;6function babelTransform(options) {7    const babelOptions = { plugins: [ [ './lib' ] ] };8    if (options) babelOptions.plugins[0].push(options);9    return babel.transform(INPUT, babelOptions);10};11describe('Tests for options:', () => {12    it('should throw an error if there is no options parameter', () => {13        assert.throws(() => babelTransform(), getErrorMessage(0));14    });15    it('should throw an error if options parameter type is boolean', () => {16        const options = true;17        assert.throws(() => babelTransform(options), getErrorMessage(0));18    });19    it('should throw an error if options parameter is a regular expression', () => {20        const options = /.*/g;21        assert.throws(() => babelTransform(options), getErrorMessage(0));22    });23    it('should throw an error if options parameter is a number', () => {24        const options = 123;25        assert.throws(() => babelTransform(options), getErrorMessage(0));26    });27    it('should throw an error if options parameter is an empty list', () => {28        options = ''; // empty string is equal to empty list)29        assert.throws(() => babelTransform(options), getErrorMessage(0));30    });31    it('should throw an error if options parameter is an empty object', () => {32        options = {};33        assert.throws(() => babelTransform(options), getErrorMessage(0));34    });35    it('should throw an error if options item type is boolean', () => {36        const options = [ true ];37        assert.throws(() => babelTransform(options), getErrorMessage(4));38    });39    it('should throw an error if options item is a regular expression', () => {40        const options = [ /.*/g ];41        assert.throws(() => babelTransform(options), getErrorMessage(4));42    });43    it('should throw an error if options item is a string', () => {44        const options = [ 'test' ];45        assert.throws(() => babelTransform(options), getErrorMessage(4));46    });47    it('should throw an error if options item is a number', () => {48        const options = [ 123 ];49        assert.throws(() => babelTransform(options), getErrorMessage(4));50    });51    it('should throw an error if options item is a list', () => {52        const options = [ [] ];53        assert.throws(() => babelTransform(options), getErrorMessage(4));54    });55    it('should throw an error if «test» option is missing', () => {56        const options = [ {} ];57        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.test));58    });59    it('should throw an error if «test» option is an empty list', () => {60        const options = [ { test: [] } ];61        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.test));62    });63    it('should throw an error if «test» option is an empty object', () => {64        const options = [ { test: {} } ];65        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.test));66    });67    it('should throw an error if «test» option type is boolean', () => {68        const options = [ { test: true } ];69        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.test));70    });71    it('should throw an error if «test» option is a number', () => {72        const options = [ { test: 123 } ];73        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.test));74    });75    it('should throw an error if «test» option is a string', () => {76        const options = [ { test: 'test'} ];77        assert.throws(() => babelTransform(options), getErrorMessage(2, optionLabels.test));78    });79    it('should throw an error if «test» option is an object', () => {80        const options = [ { test: { one: 1 } } ];81        assert.throws(() => babelTransform(options), getErrorMessage(2, optionLabels.test));82    });83    it('should throw an error if «replacer» option is missing', () => {84        const options = [ { test: /.*/g } ];85        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.replacer));86    });87    it('should throw an error if «replacer» option is an empty list', () => {88        const options = [ { test: /.*/g, replacer: [] } ];89        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.replacer));90    });91    it('should throw an error if «replacer» option is an empty object', () => {92        const options = [ { test: /.*/g, replacer: {} } ];93        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.replacer));94    });95    it('should throw an error if «replacer» option is a regular expression', () => {96        const options = [ { test: /.*/g, replacer: /.*/g } ];97        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.replacer));98    });99    it('should throw an error if «replacer» option is an object', () => {100        const options = [ { test: /.*/g, replacer: { one: 1 } } ];101        assert.throws(() => babelTransform(options), getErrorMessage(3, optionLabels.replacer));102    });103    it('should throw an error if «replacer» option type is boolean', () => {104        const options = [ { test: /.*/g, replacer: true } ];105        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.replacer));106    });107    it('should throw an error if «replacer» option is a number', () => {108        const options = [ { test: /.*/g, replacer: 123 } ];109        assert.throws(() => babelTransform(options), getErrorMessage(1, optionLabels.replacer));110    });111    it('should pass if «replacer» option is a function', () => {112        const options = [ { test: /.+/g, replacer: match => { return match } } ];113        assert.equal(babelTransform(options).code, INPUT);114    });115});116function getBabelTransformCode(input, options) {117    const babelOptions = { plugins: [ [ './lib' ] ] };118    babelOptions.plugins[0].push(options);119    return babel.transform(input, babelOptions).code;120};121describe('Functionality tests:', () => {122    it('only one replacement rule should be processed', () => {123        const input = `import styl from '../stylus/common.styl';`;124        const expected = `import styl from '../sass/common.styl';`;125        const options = [126            { test: /\/stylus\//, replacer: '/sass/' },127            { test: /\.styl/i, replacer: '$&?theme-red' }...babel-transform.js
Source:babel-transform.js  
1"use strict";2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {3    if (k2 === undefined) k2 = k;4    var desc = Object.getOwnPropertyDescriptor(m, k);5    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {6      desc = { enumerable: true, get: function() { return m[k]; } };7    }8    Object.defineProperty(o, k2, desc);9}) : (function(o, m, k, k2) {10    if (k2 === undefined) k2 = k;11    o[k2] = m[k];12}));13var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {14    Object.defineProperty(o, "default", { enumerable: true, value: v });15}) : function(o, v) {16    o["default"] = v;17});18var __importStar = (this && this.__importStar) || function (mod) {19    if (mod && mod.__esModule) return mod;20    var result = {};21    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);22    __setModuleDefault(result, mod);23    return result;24};25var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {26    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {27        if (ar || !(i in from)) {28            if (!ar) ar = Array.prototype.slice.call(from, 0, i);29            ar[i] = from[i];30        }31    }32    return to.concat(ar || Array.prototype.slice.call(from));33};34Object.defineProperty(exports, "__esModule", { value: true });35exports.babelTransformExpression = exports.babelTransformCode = exports.babelTransform = void 0;36var babel = __importStar(require("@babel/core"));37var lodash_1 = require("lodash");38var jsxPlugin = require('@babel/plugin-syntax-jsx');39var tsPreset = require('@babel/preset-typescript');40var decorators = require('@babel/plugin-syntax-decorators');41var babelTransform = function (code, visitor) {42    return babel.transform(code, {43        sourceFileName: 'file.tsx',44        configFile: false,45        babelrc: false,46        presets: [[tsPreset, { isTSX: true, allExtensions: true }]],47        plugins: __spreadArray([48            [decorators, { legacy: true }],49            jsxPlugin50        ], (visitor ? [function () { return ({ visitor: visitor }); }] : []), true),51    });52};53exports.babelTransform = babelTransform;54var babelTransformCode = function (code, visitor) {55    var _a;56    return ((_a = (0, exports.babelTransform)(code, visitor)) === null || _a === void 0 ? void 0 : _a.code) || '';57};58exports.babelTransformCode = babelTransformCode;59var babelTransformExpression = function (code, visitor, type) {60    var _a;61    if (type === void 0) { type = 'unknown'; }62    if (!code) {63        return '';64    }65    // match for object literal like { foo: ... }66    if (type === 'unknown' && code.trim().match(/^\s*{\s*[a-z0-9]+:/i)) {67        type = 'expression';68    }69    // For Builder content70    if (type === 'unknown' &&71        (code.includes('return _virtual_index') ||72            code.trim().startsWith('return ')) &&73        !code.trim().startsWith('function')) {74        type = 'functionBody';75    }76    var useCode = code;77    if (type === 'functionBody') {78        useCode = "function(){".concat(useCode, "}");79    }80    var result = type === 'expression'81        ? null82        : (0, lodash_1.attempt)(function () {83            var _a;84            var result = ((_a = (0, exports.babelTransform)(useCode, visitor)) === null || _a === void 0 ? void 0 : _a.code) || '';85            if (type === 'functionBody') {86                return result.replace(/^function\(\)\{/, '').replace(/\};$/, '');87            }88            else {89                // Babel addes trailing semicolons, but for expressions we need those gone90                // TODO: maybe detect if the original code ended with one, and keep it if so, for the case91                // of appending several fragements92                return result.replace(/;$/, '');93            }94        });95    if ((0, lodash_1.isError)(result) || type === 'expression') {96        try {97            // If it can't, e.g. this is an expression or code fragment, modify the code below and try again98            // Detect method fragments. These get passed sometimes and otherwise99            // generate compile errors. They are of the form `foo() { ... }`100            var isMethod = Boolean(!code.startsWith('function') &&101                code.match(/^[a-z0-9]+\s*\([^\)]*\)\s*[\{:]/i));102            if (isMethod) {103                useCode = "function ".concat(useCode);104            }105            // Parse the code as an expression (instead of the default, a block) by giving it a fake variable assignment106            // e.g. if the code parsed is { ... } babel will treat that as a block by deafult, unless processed as an expression107            // that is an object108            useCode = "let _ = ".concat(useCode);109            result = (((_a = (0, exports.babelTransform)(useCode, visitor)) === null || _a === void 0 ? void 0 : _a.code) || '')110                // Babel addes trailing semicolons, but for expressions we need those gone111                .replace(/;$/, '')112                // Remove our fake variable assignment113                .replace(/let _ =\s/, '');114            if (isMethod) {115                result = result.replace('function', '');116            }117        }118        catch (err) {119            console.error('Error parsing code:\n', code, '\n', result);120            try {121                return (0, exports.babelTransformExpression)(code, visitor, 'functionBody');122            }123            catch (err) {124                throw err;125            }126        }127    }128    if (type === 'functionBody') {129        return result.replace(/^function\s*\(\)\s*\{/, '').replace(/\};?$/, '');130    }131    else {132        // Babel addes trailing semicolons, but for expressions we need those gone133        // TODO: maybe detect if the original code ended with one, and keep it if so, for the case134        // of appending several fragements135        return result.replace(/;$/, '');136    }137};...compile.js
Source:compile.js  
1console.log("loading libs...");2var args = require("minimist")(3    process.argv.slice(2),4    {5        default : {6            transforms: null7        }8    }9);10// console.log(args);11// return;12var browserify = require("browserify");13var babelify = require("babelify");14// var stringify = require("stringify");15var fs = require("fs");16var uglify = require("uglify-js");17var sass = require("node-sass");18var footer = "\nconsole.log('Build Time: ', '" + (new Date()).toString() + "');";19var babelTransform = [20    [21        babelify,22        {23            loose: 'all',24            stage: 0,25            optional: 'runtime',26            blacklist: "flow",27            compact: false,28            ignore: /(lib|node_modules)\/.*/29        }30    ]31];32if (args.transforms !== null) {33    babelTransform = babelTransform.concat(require(args.transforms));34}35var settings = {36    entries: ["./" + args.source + ".js"],37    debug: true,38    paths: ['./js'],39    transform: babelTransform,40    extensions: [".js"]41};42switch (args.type) {43    case 'js': {44        var compiler = browserify(settings);45        if (args.hasOwnProperty('exclude') === true) {46            if (typeof args.exclude === 'string') {47                compiler.exclude(args.exclude);48            } else {49                args.exclude.forEach(function (exclusion) {50                    compiler.exclude(exclusion);51                });52            }53        }54        console.log("compiling code...");55        compiler.bundle(function (err, buffer) {56            if (err !== null) {57                return;58            }59            if (args.minify === true) {60                console.log("minifying code...");61                var code = buffer.toString();62                var minified = uglify.minify(code, {fromString: true});63                buffer = minified.code;64            }65            console.log("saving compiled code...");66            // buffer.write(footer);67            var outputFile = args.dest + ".js";68            fs.writeFile(69                outputFile,70                buffer,71                {encoding: 'utf8'},72                function () {73                    if (args.buildTime === true) {74                        fs.appendFile(outputFile, footer, {encoding: 'utf8'});75                    }76                    console.log("Finished at", new Date());77                }78            );79        }).on(80            'error',81            function (error) {82                console.log(error.toString());83            }84        );85        break;86    }87    case 'css': {88        console.log("compiling css...");89        sass.render(90            {91                file: args.source + '.sass'92            },93            function (err, result) {94                if (err !== null) {95                    console.log(err.message);96                    console.log(err.file, "@line", err.line, 'column', err.column);97                    return;98                }99                console.log("saving css...");100                fs.writeFile(101                    args.dest + '.css',102                    result.css,103                    {encoding: 'utf8'},104                    function () {105                        console.log("Done");106                    }107                );108            }109        );110        break;111    }...scripts.js
Source:scripts.js  
1module.exports = function(gulp, config) {2	return function(done) {3		if(!config.scripts) return done()4		var c = require('better-console')5		c.info('~ scripts')6		var babel = require('babel-core')7		var replace = require('gulp-replace')8		var uglify = require('gulp-uglify')9		var webmake = require('gulp-webmake')10		var babelTransform = function(code, opts){11			var result = babel.transform(code, {12				sourceMap: config.devmode,13				filename: opts.localFilename,14				highlightCode: false15			})16			return { code: result.code, sourceMap: JSON.stringify(result.map) }17		}18		var task = gulp.src(config.scripts, { base: config.src_folder })19		task = task.pipe(webmake({20				'ext': [21					'coffee',22					{ name: 'BabelJSX', extension: 'jsx', type: 'js', compile: babelTransform },23					{ name: 'BabelES6', extension: 'es6', type: 'js', compile: babelTransform },24					{ name: 'BabelES', extension: 'es', type: 'js', compile: babelTransform }25				],26				'sourceMap': config.devmode,27				'cache': config.devmode28			}))29			.pipe(replace(/process\.env\.NODE_ENV/g, config.devmode ? "'development'" : "'production'")) // do simple envify30			.pipe(replace('DEBUG', config.devmode ? 'true' : 'false')) // inject DEBUG variable31		if(config.uglify !== false){32			var uglifyOptions = (typeof config.uglify == 'object') ? config.uglify : {}33			task = task.pipe(uglify(uglifyOptions))34		}35		return task.pipe(gulp.dest(config.dist_folder))36	}...babel.js
Source:babel.js  
...11		ast: false,12		filename,13	}14	try {15		return babelTransform(input, babelConfig).code;16	} catch (ex) {17		// Parsing stack is extremely long and not very useful, so just rethrow the message.18		throw new Error(ex.message);19	}20}21export function ReactNET_transform_sourcemap(input, babelConfig, filename) {22	babelConfig = {23		...JSON.parse(babelConfig),24		ast: false,25		filename,26		sourceMaps: true,27	};28	try {29		var result = babelTransform(input, babelConfig);30		return JSON.stringify({31			babelVersion,32			code: result.code,33			sourceMap: result.map34		});35	} catch (ex) {36		// Parsing stack is extremely long and not very useful, so just rethrow the message.37		throw new Error(ex.message);38	}...class-test.js
Source:class-test.js  
...6  t.plan(1);7  let path = './tests/post-babel-classes/class.jsx';8  var dir = dirname(path);9  let source = readFileSync(path);10  let code = babelTransform(source, false, {11    blacklist: [12      'react',13      'es6.modules'14    ]15  });16  t.equal(compileTemplate(customRequire(dir, babelTransform(code)))(), react(path));17});18test('classes without default-props should be able to use if babel already transformed syntax', (t) => {19  t.plan(1);20  let path = './tests/post-babel-classes/class-without-default-props.jsx';21  var dir = dirname(path);22  let source = readFileSync(path);23  let code = babelTransform(source, false, {24    blacklist: [25      'react',26      'es6.modules'27    ]28  });29  t.equal(compileTemplate(customRequire(dir, babelTransform(code)))(), react(path));...babel-worker.js
Source:babel-worker.js  
...6var babelTransformDynamicImport = require('babel-plugin-syntax-dynamic-import');7var babelTransformES2015ModulesSystemJS = require('babel-plugin-transform-es2015-modules-systemjs');8self.onmessage = function (evt) {9    // transform source with Babel10    var output = babelTransform(evt.data.source, {11      compact: false,12      filename: evt.data.key + '!transpiled',13      sourceFileName: evt.data.key,14      moduleIds: false,15      sourceMaps: 'inline',16      babelrc: false,17      plugins: [babelTransformDynamicImport, babelTransformES2015ModulesSystemJS],18    });19    self.postMessage({key: evt.data.key, code: output.code, source: evt.data.source});...Using AI Code Generation
1const playwright = require('playwright');2(async () => {3    for (const browserType of BROWSER) {4        const browser = await playwright[browserType].launch();5        const context = await browser.newContext();6        const page = await context.newPage();7        const output = await page.evaluate(async () => {8            const { babelTransform } = window['playwright'].internal;9            const { code, map } = await babelTransform('const a = 1', {10            });11            return { code, map };12        });13        console.log(output);14        await browser.close();15    }16})();17{ code: '"use strict";18var a = 1;',19  map: undefined }Using AI Code Generation
1const { Playwright } = require('playwright-core');2const { chromium } = require('playwright-chromium');3const { firefox } = require('playwright-firefox');4const { webkit } = require('playwright-webkit');5(async () => {6  const browser = await chromium.launch();7  const page = await browser.newPage();8  await page.screenshot({ path: 'example.png' });9  await browser.close();10})();11const { Playwright } = require('playwright-core');12const { chromium } = require('playwright-chromium');13const { firefox } = require('playwright-firefox');14const { webkit } = require('playwright-webkit');15(async () => {16  const browser = await chromium.launch();17  const page = await browser.newPage();18  await page.screenshot({ path: 'example.png' });19  await browser.close();20})();21const { Playwright } = require('playwright-core');22const { chromium } = require('playwright-chromium');23const { firefox } = require('playwright-firefox');24const { webkit } = require('playwright-webkit');25(async () => {26  const browser = await chromium.launch();27  const page = await browser.newPage();28  await page.screenshot({ path: 'example.png' });29  await browser.close();30})();31const { Playwright } = require('playwright-core');32const { chromium } = require('playwright-chromium');33const { firefox } = require('playwright-firefox');34const { webkit } = require('playwright-webkit');35(async () => {36  const browser = await chromium.launch();37  const page = await browser.newPage();38  await page.screenshot({ path: 'example.png' });39  await browser.close();40})();41const { Playwright } = require('playwright-core');42const { chromium } = require('playwrightUsing AI Code Generation
1const {chromium} = require('playwright');2const {babelTransform} = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');3const fs = require('fs');4const path = require('path');5(async () => {6  const browser = await chromium.launch();7  const page = await browser.newPage();8  await page.click('text="I agree"');9  await page.click('text="Google apps"');10  await page.click('text="Gmail"');11  await page.click('text="Sign in"');12  await page.click('css=[aria-label="Email or phone"] >> nth=1');13  await page.fill('css=[aria-label="Email or phone"] >> nth=1', 'Using AI Code Generation
1const playwright = require('playwright');2const { babelTransform } = require('playwright/lib/server/inspector');3(async () => {4  const browser = await playwright.chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  await page.evaluate(() => {8    const babelTransform = window['playwright'].babelTransform;9    const { code, map, ast } = babelTransform('2*3', { presets: ['env'] });10    console.log(code);11  });12  await browser.close();13})();14    Edge: Spartan (44.19041.423.0), Chromium (87.0.664.66)15const playwright = require('playwright');16const { babelTransform } = require('playwright/lib/server/inspector');17(async () => {18  const browser = await playwright.chromium.launch();19  const context = await browser.newContext();20  const page = await context.newPage();21  await page.evaluate(() => {Using AI Code Generation
1const path = require('path');2const playwright = require('playwright');3const babel = require('@babel/core');4const { Internal } = playwright;5const { babelTransform } = Internal;6import { test } from 'playwright';7test('test', async ({ page }) => {8  await page.screenshot({ path: 'example.png' });9});10`;11const result = babelTransform(source, {12    path.join(__dirname, '../node_modules/@babel/preset-env'),13    path.join(__dirname, '../node_modules/@babel/preset-typescript'),14    path.join(__dirname, '../node_modules/babel-plugin-transform-async-to-promises/helpers'),15    path.join(__dirname, '../node_modules/babel-plugin-transform-regenerator'),16    path.join(__dirname, '../node_modules/babel-plugin-syntax-async-generators'),17    path.join(__dirname, '../node_modules/babel-plugin-syntax-object-rest-spread'),18    path.join(__dirname, '../node_modules/babel-plugin-syntax-top-level-await'),19    path.join(__dirname, '../node_modules/babel-plugin-transform-async-to-generator'),20    path.join(__dirname, '../node_modules/babel-plugin-transform-classes'),21    path.join(__dirname, '../node_modules/babel-plugin-transform-destructuring'),22    path.join(__dirname, '../node_modules/babel-plugin-transform-dotall-regex'),23    path.join(__dirname, '../node_modules/babel-plugin-transform-exponentiation-operator'),24    path.join(__dirname, '../node_modules/babel-plugin-transform-for-of'),25    path.join(__dirname, '../node_modules/babel-plugin-transform-function-name'),26    path.join(__dirname, '../node_modules/babel-plugin-transform-literals'),27    path.join(__dirname, '../node_modules/babel-plugin-transform-modules-commonjs'),28    path.join(__dirname, '../node_modules/babel-plugin-transform-object-assign'),29    path.join(__dirname, '../node_modules/babel-plugin-transform-object-rest-spread'),30    path.join(__dirname, '../node_modules/babel-plugin-transform-parameters'),31    path.join(__dirname, '../node_modules/babel-plugin-transform-regenerator'),32    path.join(__dirname, '../node_modules/babel-plugin-transform-shorthand-properties'),33    path.join(__dirname, '../node_modules/babel-plugin-transform-spread'),Using AI Code Generation
1const { PlaywrightTransform } = require('playwright-transform');2const playwrightTransform = new PlaywrightTransform();3const transformedCode = await playwrightTransform.babelTransform('const foo = "bar"');4const { PlaywrightTransform } = require('playwright-transform');5const playwrightTransform = new PlaywrightTransform();6const transformedCode = await playwrightTransform.playwrightTransform('const foo = "bar"');7const { PlaywrightTransform } = require('playwright-transform');8const playwrightTransform = new PlaywrightTransform();9const transformedCode = await playwrightTransform.playwrightTransform('const foo = "bar"');10const { PlaywrightTransform } = require('playwright-transform');11const playwrightTransform = new PlaywrightTransform();12const transformedCode = await playwrightTransform.playwrightTransform('const foo = "bar"');13const { PlaywrightTransform } = require('playwright-transform');14const playwrightTransform = new PlaywrightTransform();15const transformedCode = await playwrightTransform.playwrightTransform('const foo = "bar"');16const { PlaywrightTransform } = require('playwright-transform');17const playwrightTransform = new PlaywrightTransform();18const transformedCode = await playwrightTransform.playwrightTransform('const foo = "bar"');19const { PlaywrightTransform } = require('playwright-transform');20const playwrightTransform = new PlaywrightTransform();21const transformedCode = await playwrightTransform.playwrightTransform('const foo = "bar"');22const { PlaywrightTransform } = require('playwright-transform');23const playwrightTransform = new PlaywrightTransform();24const transformedCode = await playwrightTransform.playwrightTransform('const foo = "bar"');25const { PlaywrightTransform } = require('playwright-transform');26const playwrightTransform = new PlaywrightTransform();27const transformedCode = await playwrightTransform.playwrightTransform('const foo = "bar"');28const { PlaywrightTransform } = require('playwright-transform');29const playwrightTransform = new PlaywrightTransform();Using AI Code Generation
1const { playwrightTransform } = require('playwright');2const babel = require('@babel/core');3const fs = require('fs');4const code = fs.readFileSync('./test.js', 'utf-8');5const transformedCode = await playwrightTransform(code, {6});7fs.writeFileSync('./test-transformed.js', transformedCode);8const f = () => 42;9We welcome contributions to Playwright! Please see the [Contributing Guide](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!!
