Best JavaScript code snippet using cypress
lessc-rhino-1.7.3.js
Source:lessc-rhino-1.7.3.js
1/* Less.js v1.7.3 RHINO | Copyright (c) 2009-2014, Alexis Sellier <self@cloudhead.net> */2/*global name:true, less, loadStyleSheet, os */3function formatError(ctx, options) {4 options = options || {};5 var message = "";6 var extract = ctx.extract;7 var error = [];8// var stylize = options.color ? require('./lessc_helper').stylize : function (str) { return str; };9 var stylize = function (str) { return str; };10 // only output a stack if it isn't a less error11 if (ctx.stack && !ctx.type) { return stylize(ctx.stack, 'red'); }12 if (!ctx.hasOwnProperty('index') || !extract) {13 return ctx.stack || ctx.message;14 }15 if (typeof(extract[0]) === 'string') {16 error.push(stylize((ctx.line - 1) + ' ' + extract[0], 'grey'));17 }18 if (typeof(extract[1]) === 'string') {19 var errorTxt = ctx.line + ' ';20 if (extract[1]) {21 errorTxt += extract[1].slice(0, ctx.column) +22 stylize(stylize(stylize(extract[1][ctx.column], 'bold') +23 extract[1].slice(ctx.column + 1), 'red'), 'inverse');24 }25 error.push(errorTxt);26 }27 if (typeof(extract[2]) === 'string') {28 error.push(stylize((ctx.line + 1) + ' ' + extract[2], 'grey'));29 }30 error = error.join('\n') + stylize('', 'reset') + '\n';31 message += stylize(ctx.type + 'Error: ' + ctx.message, 'red');32 if (ctx.filename) {33 message += stylize(' in ', 'red') + ctx.filename +34 stylize(' on line ' + ctx.line + ', column ' + (ctx.column + 1) + ':', 'grey');35 }36 message += '\n' + error;37 if (ctx.callLine) {38 message += stylize('from ', 'red') + (ctx.filename || '') + '/n';39 message += stylize(ctx.callLine, 'grey') + ' ' + ctx.callExtract + '/n';40 }41 return message;42}43function writeError(ctx, options) {44 options = options || {};45 if (options.silent) { return; }46 var message = formatError(ctx, options);47 throw new Error(message);48}49function loadStyleSheet(sheet, callback, reload, remaining) {50 var endOfPath = Math.max(name.lastIndexOf('/'), name.lastIndexOf('\\')),51 sheetName = name.slice(0, endOfPath + 1) + sheet.href,52 contents = sheet.contents || {},53 input = readFile(sheetName);54 input = input.replace(/^\xEF\xBB\xBF/, '');55 56 contents[sheetName] = input;57 58 var parser = new less.Parser({59 paths: [sheet.href.replace(/[\w\.-]+$/, '')],60 contents: contents61 });62 parser.parse(input, function (e, root) {63 if (e) {64 return writeError(e);65 }66 try {67 callback(e, root, input, sheet, { local: false, lastModified: 0, remaining: remaining }, sheetName);68 } catch(e) {69 writeError(e);70 }71 });72}73less.Parser.fileLoader = function (file, currentFileInfo, callback, env) {74 var href = file;75 if (currentFileInfo && currentFileInfo.currentDirectory && !/^\//.test(file)) {76 href = less.modules.path.join(currentFileInfo.currentDirectory, file);77 }78 var path = less.modules.path.dirname(href);79 var newFileInfo = {80 currentDirectory: path + '/',81 filename: href82 };83 if (currentFileInfo) {84 newFileInfo.entryPath = currentFileInfo.entryPath;85 newFileInfo.rootpath = currentFileInfo.rootpath;86 newFileInfo.rootFilename = currentFileInfo.rootFilename;87 newFileInfo.relativeUrls = currentFileInfo.relativeUrls;88 } else {89 newFileInfo.entryPath = path;90 newFileInfo.rootpath = less.rootpath || path;91 newFileInfo.rootFilename = href;92 newFileInfo.relativeUrls = env.relativeUrls;93 }94 var j = file.lastIndexOf('/');95 if(newFileInfo.relativeUrls && !/^(?:[a-z-]+:|\/)/.test(file) && j != -1) {96 var relativeSubDirectory = file.slice(0, j+1);97 newFileInfo.rootpath = newFileInfo.rootpath + relativeSubDirectory; // append (sub|sup) directory path of imported file98 }99 newFileInfo.currentDirectory = path;100 newFileInfo.filename = href;101 var data = null;102 try {103 data = readFile(href);104 } catch (e) {105 callback({ type: 'File', message: "'" + less.modules.path.basename(href) + "' wasn't found" });106 return;107 }108 try {109 callback(null, data, href, newFileInfo, { lastModified: 0 });110 } catch (e) {111 callback(e, null, href);112 }113};114function writeFile(filename, content) {115 var fstream = new java.io.FileWriter(filename);116 var out = new java.io.BufferedWriter(fstream);117 out.write(content);118 out.close();119}120// Command line integration via Rhino121(function (args) {122 var options = {123 depends: false,124 compress: false,125 cleancss: false,126 max_line_len: -1,127 optimization: 1,128 silent: false,129 verbose: false,130 lint: false,131 paths: [],132 color: true,133 strictImports: false,134 rootpath: '',135 relativeUrls: false,136 ieCompat: true,137 strictMath: false,138 strictUnits: false139 };140 var continueProcessing = true,141 currentErrorcode;142 var checkArgFunc = function(arg, option) {143 if (!option) {144 print(arg + " option requires a parameter");145 continueProcessing = false;146 return false;147 }148 return true;149 };150 var checkBooleanArg = function(arg) {151 var onOff = /^((on|t|true|y|yes)|(off|f|false|n|no))$/i.exec(arg);152 if (!onOff) {153 print(" unable to parse "+arg+" as a boolean. use one of on/t/true/y/yes/off/f/false/n/no");154 continueProcessing = false;155 return false;156 }157 return Boolean(onOff[2]);158 };159 var warningMessages = "";160 var sourceMapFileInline = false;161 args = args.filter(function (arg) {162 var match = arg.match(/^-I(.+)$/);163 164 if (match) {165 options.paths.push(match[1]);166 return false;167 }168 169 match = arg.match(/^--?([a-z][0-9a-z-]*)(?:=(.*))?$/i);170 if (match) { arg = match[1]; } // was (?:=([^\s]*)), check!171 else { return arg; }172 switch (arg) {173 case 'v':174 case 'version':175 console.log("lessc " + less.version.join('.') + " (Less Compiler) [JavaScript]");176 continueProcessing = false;177 break;178 case 'verbose':179 options.verbose = true;180 break;181 case 's':182 case 'silent':183 options.silent = true;184 break;185 case 'l':186 case 'lint':187 options.lint = true;188 break;189 case 'strict-imports':190 options.strictImports = true;191 break;192 case 'h':193 case 'help':194 //TODO195// require('../lib/less/lessc_helper').printUsage();196 continueProcessing = false;197 break;198 case 'x':199 case 'compress':200 options.compress = true;201 break;202 case 'M':203 case 'depends':204 options.depends = true;205 break;206 case 'yui-compress':207 warningMessages += "yui-compress option has been removed. assuming clean-css.";208 options.cleancss = true;209 break;210 case 'clean-css':211 options.cleancss = true;212 break;213 case 'max-line-len':214 if (checkArgFunc(arg, match[2])) {215 options.maxLineLen = parseInt(match[2], 10);216 if (options.maxLineLen <= 0) {217 options.maxLineLen = -1;218 }219 }220 break;221 case 'no-color':222 options.color = false;223 break;224 case 'no-ie-compat':225 options.ieCompat = false;226 break;227 case 'no-js':228 options.javascriptEnabled = false;229 break;230 case 'include-path':231 if (checkArgFunc(arg, match[2])) {232 options.paths = match[2].split(os.type().match(/Windows/) ? ';' : ':')233 .map(function(p) {234 if (p) {235// return path.resolve(process.cwd(), p);236 return p;237 }238 });239 }240 break;241 case 'O0': options.optimization = 0; break;242 case 'O1': options.optimization = 1; break;243 case 'O2': options.optimization = 2; break;244 case 'line-numbers':245 if (checkArgFunc(arg, match[2])) {246 options.dumpLineNumbers = match[2];247 }248 break;249 case 'source-map':250 if (!match[2]) {251 options.sourceMap = true;252 } else {253 options.sourceMap = match[2];254 }255 break;256 case 'source-map-rootpath':257 if (checkArgFunc(arg, match[2])) {258 options.sourceMapRootpath = match[2];259 }260 break;261 case 'source-map-basepath':262 if (checkArgFunc(arg, match[2])) {263 options.sourceMapBasepath = match[2];264 }265 break;266 case 'source-map-map-inline':267 sourceMapFileInline = true;268 options.sourceMap = true;269 break;270 case 'source-map-less-inline':271 options.outputSourceFiles = true;272 break;273 case 'source-map-url':274 if (checkArgFunc(arg, match[2])) {275 options.sourceMapURL = match[2];276 }277 break;278 case 'source-map-output-map-file':279 if (checkArgFunc(arg, match[2])) {280 options.writeSourceMap = function(sourceMapContent) {281 writeFile(match[2], sourceMapContent);282 };283 }284 break;285 case 'rp':286 case 'rootpath':287 if (checkArgFunc(arg, match[2])) {288 options.rootpath = match[2].replace(/\\/g, '/');289 }290 break;291 case "ru":292 case "relative-urls":293 options.relativeUrls = true;294 break;295 case "sm":296 case "strict-math":297 if (checkArgFunc(arg, match[2])) {298 options.strictMath = checkBooleanArg(match[2]);299 }300 break;301 case "su":302 case "strict-units":303 if (checkArgFunc(arg, match[2])) {304 options.strictUnits = checkBooleanArg(match[2]);305 }306 break;307 default:308 console.log('invalid option ' + arg);309 continueProcessing = false;310 }311 });312 if (!continueProcessing) {313 return;314 }315 var name = args[0];316 if (name && name != '-') {317// name = path.resolve(process.cwd(), name);318 }319 var output = args[1];320 var outputbase = args[1];321 if (output) {322 options.sourceMapOutputFilename = output;323// output = path.resolve(process.cwd(), output);324 if (warningMessages) {325 console.log(warningMessages);326 }327 }328// options.sourceMapBasepath = process.cwd();329// options.sourceMapBasepath = '';330 if (options.sourceMap === true) {331 console.log("output: " + output);332 if (!output && !sourceMapFileInline) {333 console.log("the sourcemap option only has an optional filename if the css filename is given");334 return;335 }336 options.sourceMapFullFilename = options.sourceMapOutputFilename + ".map";337 options.sourceMap = less.modules.path.basename(options.sourceMapFullFilename);338 } else if (options.sourceMap) {339 options.sourceMapOutputFilename = options.sourceMap;340 }341 342 if (!name) {343 console.log("lessc: no inout files");344 console.log("");345 // TODO346// require('../lib/less/lessc_helper').printUsage();347 currentErrorcode = 1;348 return;349 }350// var ensureDirectory = function (filepath) {351// var dir = path.dirname(filepath),352// cmd,353// existsSync = fs.existsSync || path.existsSync;354// if (!existsSync(dir)) {355// if (mkdirp === undefined) {356// try {mkdirp = require('mkdirp');}357// catch(e) { mkdirp = null; }358// }359// cmd = mkdirp && mkdirp.sync || fs.mkdirSync;360// cmd(dir);361// }362// };363 if (options.depends) {364 if (!outputbase) {365 console.log("option --depends requires an output path to be specified");366 return;367 }368 console.log(outputbase + ": ");369 }370 if (!name) {371 console.log('No files present in the fileset');372 quit(1);373 }374 var input = null;375 try {376 input = readFile(name, 'utf-8');377 } catch (e) {378 console.log('lesscss: couldn\'t open file ' + name);379 quit(1);380 }381 options.filename = name;382 var result;383 try {384 var parser = new less.Parser(options);385 parser.parse(input, function (e, root) {386 if (e) {387 writeError(e, options);388 quit(1);389 } else {390 result = root.toCSS(options);391 if (output) {392 writeFile(output, result);393 console.log("Written to " + output);394 } else {395 print(result);396 }397 quit(0);398 }399 });400 }401 catch(e) {402 writeError(e, options);403 quit(1);404 }...
lessc-rhino-1.6.2.js
Source:lessc-rhino-1.6.2.js
1/* LESS.js v1.6.2 RHINO | Copyright (c) 2009-2014, Alexis Sellier <self@cloudhead.net> */2/*global name:true, less, loadStyleSheet, os */3function formatError(ctx, options) {4 options = options || {};5 var message = "";6 var extract = ctx.extract;7 var error = [];8// var stylize = options.color ? require('./lessc_helper').stylize : function (str) { return str; };9 var stylize = function (str) { return str; };10 // only output a stack if it isn't a less error11 if (ctx.stack && !ctx.type) { return stylize(ctx.stack, 'red'); }12 if (!ctx.hasOwnProperty('index') || !extract) {13 return ctx.stack || ctx.message;14 }15 if (typeof(extract[0]) === 'string') {16 error.push(stylize((ctx.line - 1) + ' ' + extract[0], 'grey'));17 }18 if (typeof(extract[1]) === 'string') {19 var errorTxt = ctx.line + ' ';20 if (extract[1]) {21 errorTxt += extract[1].slice(0, ctx.column) +22 stylize(stylize(stylize(extract[1][ctx.column], 'bold') +23 extract[1].slice(ctx.column + 1), 'red'), 'inverse');24 }25 error.push(errorTxt);26 }27 if (typeof(extract[2]) === 'string') {28 error.push(stylize((ctx.line + 1) + ' ' + extract[2], 'grey'));29 }30 error = error.join('\n') + stylize('', 'reset') + '\n';31 message += stylize(ctx.type + 'Error: ' + ctx.message, 'red');32 if (ctx.filename) {33 message += stylize(' in ', 'red') + ctx.filename +34 stylize(' on line ' + ctx.line + ', column ' + (ctx.column + 1) + ':', 'grey');35 }36 message += '\n' + error;37 if (ctx.callLine) {38 message += stylize('from ', 'red') + (ctx.filename || '') + '/n';39 message += stylize(ctx.callLine, 'grey') + ' ' + ctx.callExtract + '/n';40 }41 return message;42}43function writeError(ctx, options) {44 options = options || {};45 if (options.silent) { return; }46 print(formatError(ctx, options));47}48function loadStyleSheet(sheet, callback, reload, remaining) {49 var endOfPath = Math.max(name.lastIndexOf('/'), name.lastIndexOf('\\')),50 sheetName = name.slice(0, endOfPath + 1) + sheet.href,51 contents = sheet.contents || {},52 input = readFile(sheetName);53 input = input.replace(/^\xEF\xBB\xBF/, '');54 55 contents[sheetName] = input;56 57 var parser = new less.Parser({58 paths: [sheet.href.replace(/[\w\.-]+$/, '')],59 contents: contents60 });61 parser.parse(input, function (e, root) {62 if (e) {63 return writeError(e);64 }65 try {66 callback(e, root, input, sheet, { local: false, lastModified: 0, remaining: remaining }, sheetName);67 } catch(e) {68 writeError(e);69 }70 });71}72less.Parser.fileLoader = function (file, currentFileInfo, callback, env) {73 var href = file;74 if (currentFileInfo && currentFileInfo.currentDirectory && !/^\//.test(file)) {75 href = less.modules.path.join(currentFileInfo.currentDirectory, file);76 }77 var path = less.modules.path.dirname(href);78 var newFileInfo = {79 currentDirectory: path + '/',80 filename: href81 };82 if (currentFileInfo) {83 newFileInfo.entryPath = currentFileInfo.entryPath;84 newFileInfo.rootpath = currentFileInfo.rootpath;85 newFileInfo.rootFilename = currentFileInfo.rootFilename;86 newFileInfo.relativeUrls = currentFileInfo.relativeUrls;87 } else {88 newFileInfo.entryPath = path;89 newFileInfo.rootpath = less.rootpath || path;90 newFileInfo.rootFilename = href;91 newFileInfo.relativeUrls = env.relativeUrls;92 }93 var j = file.lastIndexOf('/');94 if(newFileInfo.relativeUrls && !/^(?:[a-z-]+:|\/)/.test(file) && j != -1) {95 var relativeSubDirectory = file.slice(0, j+1);96 newFileInfo.rootpath = newFileInfo.rootpath + relativeSubDirectory; // append (sub|sup) directory path of imported file97 }98 newFileInfo.currentDirectory = path;99 newFileInfo.filename = href;100 var data = null;101 try {102 data = readFile(href);103 } catch (e) {104 callback({ type: 'File', message: "'" + less.modules.path.basename(href) + "' wasn't found" });105 return;106 }107 try {108 callback(null, data, href, newFileInfo, { lastModified: 0 });109 } catch (e) {110 callback(e, null, href);111 }112};113function writeFile(filename, content) {114 var fstream = new java.io.FileWriter(filename);115 var out = new java.io.BufferedWriter(fstream);116 out.write(content);117 out.close();118}119// Command line integration via Rhino120(function (args) {121 var options = {122 depends: false,123 compress: false,124 cleancss: false,125 max_line_len: -1,126 optimization: 1,127 silent: false,128 verbose: false,129 lint: false,130 paths: [],131 color: true,132 strictImports: false,133 rootpath: '',134 relativeUrls: false,135 ieCompat: true,136 strictMath: false,137 strictUnits: false138 };139 var continueProcessing = true,140 currentErrorcode;141 var checkArgFunc = function(arg, option) {142 if (!option) {143 print(arg + " option requires a parameter");144 continueProcessing = false;145 return false;146 }147 return true;148 };149 var checkBooleanArg = function(arg) {150 var onOff = /^((on|t|true|y|yes)|(off|f|false|n|no))$/i.exec(arg);151 if (!onOff) {152 print(" unable to parse "+arg+" as a boolean. use one of on/t/true/y/yes/off/f/false/n/no");153 continueProcessing = false;154 return false;155 }156 return Boolean(onOff[2]);157 };158 var warningMessages = "";159 var sourceMapFileInline = false;160 args = args.filter(function (arg) {161 var match = arg.match(/^-I(.+)$/);162 163 if (match) {164 options.paths.push(match[1]);165 return false;166 }167 168 match = arg.match(/^--?([a-z][0-9a-z-]*)(?:=(.*))?$/i);169 if (match) { arg = match[1]; } // was (?:=([^\s]*)), check!170 else { return arg; }171 switch (arg) {172 case 'v':173 case 'version':174 console.log("lessc " + less.version.join('.') + " (LESS Compiler) [JavaScript]");175 continueProcessing = false;176 break;177 case 'verbose':178 options.verbose = true;179 break;180 case 's':181 case 'silent':182 options.silent = true;183 break;184 case 'l':185 case 'lint':186 options.lint = true;187 break;188 case 'strict-imports':189 options.strictImports = true;190 break;191 case 'h':192 case 'help':193 //TODO194// require('../lib/less/lessc_helper').printUsage();195 continueProcessing = false;196 break;197 case 'x':198 case 'compress':199 options.compress = true;200 break;201 case 'M':202 case 'depends':203 options.depends = true;204 break;205 case 'yui-compress':206 warningMessages += "yui-compress option has been removed. assuming clean-css.";207 options.cleancss = true;208 break;209 case 'clean-css':210 options.cleancss = true;211 break;212 case 'max-line-len':213 if (checkArgFunc(arg, match[2])) {214 options.maxLineLen = parseInt(match[2], 10);215 if (options.maxLineLen <= 0) {216 options.maxLineLen = -1;217 }218 }219 break;220 case 'no-color':221 options.color = false;222 break;223 case 'no-ie-compat':224 options.ieCompat = false;225 break;226 case 'no-js':227 options.javascriptEnabled = false;228 break;229 case 'include-path':230 if (checkArgFunc(arg, match[2])) {231 options.paths = match[2].split(os.type().match(/Windows/) ? ';' : ':')232 .map(function(p) {233 if (p) {234// return path.resolve(process.cwd(), p);235 return p;236 }237 });238 }239 break;240 case 'O0': options.optimization = 0; break;241 case 'O1': options.optimization = 1; break;242 case 'O2': options.optimization = 2; break;243 case 'line-numbers':244 if (checkArgFunc(arg, match[2])) {245 options.dumpLineNumbers = match[2];246 }247 break;248 case 'source-map':249 if (!match[2]) {250 options.sourceMap = true;251 } else {252 options.sourceMap = match[2];253 }254 break;255 case 'source-map-rootpath':256 if (checkArgFunc(arg, match[2])) {257 options.sourceMapRootpath = match[2];258 }259 break;260 case 'source-map-basepath':261 if (checkArgFunc(arg, match[2])) {262 options.sourceMapBasepath = match[2];263 }264 break;265 case 'source-map-map-inline':266 sourceMapFileInline = true;267 options.sourceMap = true;268 break;269 case 'source-map-less-inline':270 options.outputSourceFiles = true;271 break;272 case 'source-map-url':273 if (checkArgFunc(arg, match[2])) {274 options.sourceMapURL = match[2];275 }276 break;277 case 'source-map-output-map-file':278 if (checkArgFunc(arg, match[2])) {279 options.writeSourceMap = function(sourceMapContent) {280 writeFile(match[2], sourceMapContent);281 };282 }283 break;284 case 'rp':285 case 'rootpath':286 if (checkArgFunc(arg, match[2])) {287 options.rootpath = match[2].replace(/\\/g, '/');288 }289 break;290 case "ru":291 case "relative-urls":292 options.relativeUrls = true;293 break;294 case "sm":295 case "strict-math":296 if (checkArgFunc(arg, match[2])) {297 options.strictMath = checkBooleanArg(match[2]);298 }299 break;300 case "su":301 case "strict-units":302 if (checkArgFunc(arg, match[2])) {303 options.strictUnits = checkBooleanArg(match[2]);304 }305 break;306 default:307 console.log('invalid option ' + arg);308 continueProcessing = false;309 }310 });311 if (!continueProcessing) {312 return;313 }314 var name = args[0];315 if (name && name != '-') {316// name = path.resolve(process.cwd(), name);317 }318 var output = args[1];319 var outputbase = args[1];320 if (output) {321 options.sourceMapOutputFilename = output;322// output = path.resolve(process.cwd(), output);323 if (warningMessages) {324 console.log(warningMessages);325 }326 }327// options.sourceMapBasepath = process.cwd();328// options.sourceMapBasepath = '';329 if (options.sourceMap === true) {330 console.log("output: " + output);331 if (!output && !sourceMapFileInline) {332 console.log("the sourcemap option only has an optional filename if the css filename is given");333 return;334 }335 options.sourceMapFullFilename = options.sourceMapOutputFilename + ".map";336 options.sourceMap = less.modules.path.basename(options.sourceMapFullFilename);337 } else if (options.sourceMap) {338 options.sourceMapOutputFilename = options.sourceMap;339 }340 341 if (!name) {342 console.log("lessc: no inout files");343 console.log("");344 // TODO345// require('../lib/less/lessc_helper').printUsage();346 currentErrorcode = 1;347 return;348 }349// var ensureDirectory = function (filepath) {350// var dir = path.dirname(filepath),351// cmd,352// existsSync = fs.existsSync || path.existsSync;353// if (!existsSync(dir)) {354// if (mkdirp === undefined) {355// try {mkdirp = require('mkdirp');}356// catch(e) { mkdirp = null; }357// }358// cmd = mkdirp && mkdirp.sync || fs.mkdirSync;359// cmd(dir);360// }361// };362 if (options.depends) {363 if (!outputbase) {364 console.log("option --depends requires an output path to be specified");365 return;366 }367 console.log(outputbase + ": ");368 }369 if (!name) {370 console.log('No files present in the fileset');371 quit(1);372 }373 var input = null;374 try {375 input = readFile(name, 'utf-8');376 } catch (e) {377 console.log('lesscss: couldn\'t open file ' + name);378 quit(1);379 }380 options.filename = name;381 var result;382 try {383 var parser = new less.Parser(options);384 parser.parse(input, function (e, root) {385 if (e) {386 writeError(e, options);387 quit(1);388 } else {389 result = root.toCSS(options);390 if (output) {391 writeFile(output, result);392 console.log("Written to " + output);393 } else {394 print(result);395 }396 quit(0);397 }398 });399 }400 catch(e) {401 writeError(e, options);402 quit(1);403 }404 console.log("done");...
lessc.js
Source:lessc.js
1#!/usr/bin/env node2var path = require('path'),3 fs = require('../lib/less/fs'),4 os = require('os'),5 mkdirp;6var less = require('../lib/less');7var args = process.argv.slice(1);8var options = {9 depends: false,10 compress: false,11 cleancss: false,12 max_line_len: -1,13 optimization: 1,14 silent: false,15 verbose: false,16 lint: false,17 paths: [],18 color: true,19 strictImports: false,20 insecure: false,21 rootpath: '',22 relativeUrls: false,23 ieCompat: true,24 strictMath: false,25 strictUnits: false,26 globalVariables: '',27 modifyVariables: '',28 urlArgs: ''29};30var cleancssOptions = {};31var continueProcessing = true,32 currentErrorcode;33// calling process.exit does not flush stdout always34// so use this to set the exit code35process.on('exit', function() { process.reallyExit(currentErrorcode) });36var checkArgFunc = function(arg, option) {37 if (!option) {38 console.log(arg + " option requires a parameter");39 continueProcessing = false;40 return false;41 }42 return true;43};44var checkBooleanArg = function(arg) {45 var onOff = /^((on|t|true|y|yes)|(off|f|false|n|no))$/i.exec(arg);46 if (!onOff) {47 console.log(" unable to parse "+arg+" as a boolean. use one of on/t/true/y/yes/off/f/false/n/no");48 continueProcessing = false;49 return false;50 }51 return Boolean(onOff[2]);52};53var parseVariableOption = function(option) {54 var parts = option.split('=', 2);55 return '@' + parts[0] + ': ' + parts[1] + ';\n';56};57var warningMessages = "";58var sourceMapFileInline = false;59args = args.filter(function (arg) {60 var match;61 if (match = arg.match(/^-I(.+)$/)) {62 options.paths.push(match[1]);63 return false;64 }65 if (match = arg.match(/^--?([a-z][0-9a-z-]*)(?:=(.*))?$/i)) { arg = match[1] }66 else { return arg }67 switch (arg) {68 case 'v':69 case 'version':70 console.log("lessc " + less.version.join('.') + " (Less Compiler) [JavaScript]");71 continueProcessing = false;72 case 'verbose':73 options.verbose = true;74 break;75 case 's':76 case 'silent':77 options.silent = true;78 break;79 case 'l':80 case 'lint':81 options.lint = true;82 break;83 case 'strict-imports':84 options.strictImports = true;85 break;86 case 'h':87 case 'help':88 require('../lib/less/lessc_helper').printUsage();89 continueProcessing = false;90 case 'x':91 case 'compress':92 options.compress = true;93 break;94 case 'insecure':95 options.insecure = true;96 break;97 case 'M':98 case 'depends':99 options.depends = true;100 break;101 case 'yui-compress':102 warningMessages += "yui-compress option has been removed. ignoring.";103 break;104 case 'clean-css':105 options.cleancss = true;106 break;107 case 'max-line-len':108 if (checkArgFunc(arg, match[2])) {109 options.maxLineLen = parseInt(match[2], 10);110 if (options.maxLineLen <= 0) {111 options.maxLineLen = -1;112 }113 }114 break;115 case 'no-color':116 options.color = false;117 break;118 case 'no-ie-compat':119 options.ieCompat = false;120 break;121 case 'no-js':122 options.javascriptEnabled = false;123 break;124 case 'include-path':125 if (checkArgFunc(arg, match[2])) {126 options.paths = match[2].split(os.type().match(/Windows/) ? ';' : ':')127 .map(function(p) {128 if (p) {129 return path.resolve(process.cwd(), p);130 }131 });132 }133 break;134 case 'O0': options.optimization = 0; break;135 case 'O1': options.optimization = 1; break;136 case 'O2': options.optimization = 2; break;137 case 'line-numbers':138 if (checkArgFunc(arg, match[2])) {139 options.dumpLineNumbers = match[2];140 }141 break;142 case 'source-map':143 if (!match[2]) {144 options.sourceMap = true;145 } else {146 options.sourceMap = match[2];147 }148 break;149 case 'source-map-rootpath':150 if (checkArgFunc(arg, match[2])) {151 options.sourceMapRootpath = match[2];152 }153 break;154 case 'source-map-basepath':155 if (checkArgFunc(arg, match[2])) {156 options.sourceMapBasepath = match[2];157 }158 break;159 case 'source-map-map-inline':160 sourceMapFileInline = true;161 options.sourceMap = true;162 break;163 case 'source-map-less-inline':164 options.outputSourceFiles = true;165 break;166 case 'source-map-url':167 if (checkArgFunc(arg, match[2])) {168 options.sourceMapURL = match[2];169 }170 break;171 case 'rp':172 case 'rootpath':173 if (checkArgFunc(arg, match[2])) {174 options.rootpath = match[2].replace(/\\/g, '/');175 }176 break;177 case "ru":178 case "relative-urls":179 options.relativeUrls = true;180 break;181 case "sm":182 case "strict-math":183 if (checkArgFunc(arg, match[2])) {184 options.strictMath = checkBooleanArg(match[2]);185 }186 break;187 case "su":188 case "strict-units":189 if (checkArgFunc(arg, match[2])) {190 options.strictUnits = checkBooleanArg(match[2]);191 }192 break;193 case "global-var":194 if (checkArgFunc(arg, match[2])) {195 options.globalVariables += parseVariableOption(match[2]);196 }197 break;198 case "modify-var":199 if (checkArgFunc(arg, match[2])) {200 options.modifyVariables += parseVariableOption(match[2]);201 }202 break;203 case "clean-option":204 var cleanOptionArgs = match[2].split(":");205 switch(cleanOptionArgs[0]) {206 case "--keep-line-breaks":207 case "-b":208 cleancssOptions.keepBreaks = true;209 break;210 case "--s0":211 cleancssOptions.keepSpecialComments = 0;212 break;213 case "--s1":214 cleancssOptions.keepSpecialComments = 1;215 break;216 case "--skip-advanced":217 cleancssOptions.noAdvanced = true;218 break;219 case "--advanced":220 cleancssOptions.noAdvanced = false;221 break;222 case "--compatibility":223 cleancssOptions.compatibility = cleanOptionArgs[1];224 break;225 case "--rounding-precision":226 cleancssOptions.roundingPrecision = Number(cleanOptionArgs[1]);227 break;228 default:229 console.log("unrecognised clean-css option '" + cleanOptionArgs[0] + "'");230 console.log("we support only arguments that make sense for less, '--keep-line-breaks', '-b'");231 console.log("'--s0', '--s1', '--advanced', '--skip-advanced', '--compatibility', '--rounding-precision'");232 continueProcessing = false;233 currentErrorcode = 1;234 break;235 }236 break;237 case 'url-args':238 if (checkArgFunc(arg, match[2])) {239 options.urlArgs = match[2];240 }241 break;242 default:243 require('../lib/less/lessc_helper').printUsage();244 continueProcessing = false;245 currentErrorcode = 1;246 break;247 }248});249if (!continueProcessing) {250 return;251}252var input = args[1];253var inputbase = args[1];254if (input && input != '-') {255 input = path.resolve(process.cwd(), input);256}257var output = args[2];258var outputbase = args[2];259if (output) {260 options.sourceMapOutputFilename = output;261 output = path.resolve(process.cwd(), output);262 if (warningMessages) {263 console.log(warningMessages);264 }265}266options.sourceMapBasepath = options.sourceMapBasepath || (input ? path.dirname(input) : process.cwd());267if (options.sourceMap === true) {268 if (!output && !sourceMapFileInline) {269 console.log("the sourcemap option only has an optional filename if the css filename is given");270 return;271 }272 options.sourceMapFullFilename = options.sourceMapOutputFilename + ".map";273 options.sourceMap = path.basename(options.sourceMapFullFilename);274}275if (options.cleancss && options.sourceMap) {276 console.log("the cleancss option is not compatible with sourcemap support at the moment. See Issue #1656");277 return;278}279if (! input) {280 console.log("lessc: no input files");281 console.log("");282 require('../lib/less/lessc_helper').printUsage();283 currentErrorcode = 1;284 return;285}286var ensureDirectory = function (filepath) {287 var dir = path.dirname(filepath),288 cmd,289 existsSync = fs.existsSync || path.existsSync;290 if (!existsSync(dir)) {291 if (mkdirp === undefined) {292 try {mkdirp = require('mkdirp');}293 catch(e) { mkdirp = null; }294 }295 cmd = mkdirp && mkdirp.sync || fs.mkdirSync;296 cmd(dir);297 }298};299if (options.depends) {300 if (!outputbase) {301 console.log("option --depends requires an output path to be specified");302 return;303 }304 process.stdout.write(outputbase + ": ");305}306if (!sourceMapFileInline) {307 var writeSourceMap = function(output) {308 var filename = options.sourceMapFullFilename || options.sourceMap;309 ensureDirectory(filename);310 fs.writeFileSync(filename, output, 'utf8');311 };312}313var parseLessFile = function (e, data) {314 if (e) {315 console.log("lessc: " + e.message);316 currentErrorcode = 1;317 return;318 }319 data = options.globalVariables + data + '\n' + options.modifyVariables;320 options.paths = [path.dirname(input)].concat(options.paths);321 options.filename = input;322 var parser = new(less.Parser)(options);323 parser.parse(data, function (err, tree) {324 if (err) {325 less.writeError(err, options);326 currentErrorcode = 1;327 return;328 } else if (options.depends) {329 for(var file in parser.imports.files) {330 process.stdout.write(file + " ")331 }332 console.log("");333 } else {334 try {335 if (options.lint) { writeSourceMap = function() {} }336 var css = tree.toCSS({337 silent: options.silent,338 verbose: options.verbose,339 ieCompat: options.ieCompat,340 compress: options.compress,341 cleancss: options.cleancss,342 cleancssOptions: cleancssOptions,343 sourceMap: Boolean(options.sourceMap),344 sourceMapFilename: options.sourceMap,345 sourceMapURL: options.sourceMapURL,346 sourceMapOutputFilename: options.sourceMapOutputFilename,347 sourceMapBasepath: options.sourceMapBasepath,348 sourceMapRootpath: options.sourceMapRootpath || "",349 outputSourceFiles: options.outputSourceFiles,350 writeSourceMap: writeSourceMap,351 maxLineLen: options.maxLineLen,352 strictMath: options.strictMath,353 strictUnits: options.strictUnits,354 urlArgs: options.urlArgs355 });356 if(!options.lint) {357 if (output) {358 ensureDirectory(output);359 fs.writeFileSync(output, css, 'utf8');360 if (options.verbose) {361 console.log('lessc: wrote ' + output);362 }363 } else {364 process.stdout.write(css);365 }366 }367 } catch (e) {368 less.writeError(e, options);369 currentErrorcode = 2;370 return;371 }372 }373 });374};375if (input != '-') {376 fs.readFile(input, 'utf8', parseLessFile);377} else {378 process.stdin.resume();379 process.stdin.setEncoding('utf8');380 var buffer = '';381 process.stdin.on('data', function(data) {382 buffer += data;383 });384 process.stdin.on('end', function() {385 parseLessFile(false, buffer);386 });...
lessc
Source:lessc
1#!/usr/bin/env node2var path = require('path'),3 fs = require('fs'),4 sys = require('util'),5 os = require('os');6var less = require('../lib/less');7var args = process.argv.slice(1);8var options = {9 compress: false,10 yuicompress: false,11 optimization: 1,12 silent: false,13 paths: [],14 color: true,15 strictImports: false,16 rootpath: '',17 relativeUrls: false18};19var continueProcessing = true,20 currentErrorcode;21// calling process.exit does not flush stdout always22// so use this to set the exit code23process.on('exit', function() { process.reallyExit(currentErrorcode) });24args = args.filter(function (arg) {25 var match;26 if (match = arg.match(/^-I(.+)$/)) {27 options.paths.push(match[1]);28 return false;29 }30 if (match = arg.match(/^--?([a-z][0-9a-z-]*)(?:=([^\s]+))?$/i)) { arg = match[1] }31 else { return arg }32 switch (arg) {33 case 'v':34 case 'version':35 sys.puts("lessc " + less.version.join('.') + " (LESS Compiler) [JavaScript]");36 continueProcessing = false;37 case 'verbose':38 options.verbose = true;39 break;40 case 's':41 case 'silent':42 options.silent = true;43 break;44 case 'strict-imports':45 options.strictImports = true;46 break;47 case 'h':48 case 'help':49 require('../lib/less/lessc_helper').printUsage();50 continueProcessing = false;51 case 'x':52 case 'compress':53 options.compress = true;54 break;55 case 'yui-compress':56 options.yuicompress = true;57 break;58 case 'no-color':59 options.color = false;60 break;61 case 'include-path':62 if (!match[2]) {63 sys.puts("include-path option requires a parameter");64 continueProcessing = false;65 } else {66 options.paths = match[2].split(os.type().match(/Windows/) ? ';' : ':')67 .map(function(p) {68 if (p) {69 return path.resolve(process.cwd(), p);70 }71 });72 }73 break;74 case 'O0': options.optimization = 0; break;75 case 'O1': options.optimization = 1; break;76 case 'O2': options.optimization = 2; break;77 case 'line-numbers':78 options.dumpLineNumbers = match[2];79 break;80 case 'rp':81 case 'rootpath':82 if (!match[2]) {83 sys.puts("rootpath option requires a parameter");84 continueProcessing = false;85 } else {86 options.rootpath = path.normalize(match[2] + '/').replace('\\', '/');87 }88 break;89 case "ru":90 case "relative-urls":91 options.relativeUrls = true;92 break;93 }94});95if (!continueProcessing) {96 return;97}98var input = args[1];99if (input && input != '-') {100 input = path.resolve(process.cwd(), input);101}102var output = args[2];103if (output) {104 output = path.resolve(process.cwd(), output);105}106if (! input) {107 sys.puts("lessc: no input files");108 sys.puts("");109 require('../lib/less/lessc_helper').printUsage();110 currentErrorcode = 1;111 return;112}113var ensureDirectory = function (filepath) {114 var dir = path.dirname(filepath),115 existsSync = fs.existsSync || path.existsSync;116 if (!existsSync(dir)) {117 fs.mkdirSync(dir);118 }119};120var parseLessFile = function (e, data) {121 if (e) {122 sys.puts("lessc: " + e.message);123 currentErrorcode = 1;124 return;125 }126 new(less.Parser)({127 paths: [path.dirname(input)].concat(options.paths),128 optimization: options.optimization,129 filename: input,130 rootpath: options.rootpath,131 relativeUrls: options.relativeUrls,132 strictImports: options.strictImports,133 dumpLineNumbers: options.dumpLineNumbers134 }).parse(data, function (err, tree) {135 if (err) {136 less.writeError(err, options);137 currentErrorcode = 1;138 return;139 } else {140 try {141 var css = tree.toCSS({142 compress: options.compress,143 yuicompress: options.yuicompress144 });145 if (output) {146 ensureDirectory(output);147 fs.writeFileSync(output, css, 'utf8');148 if (options.verbose) {149 console.log('lessc: wrote ' + output);150 }151 } else {152 sys.print(css);153 }154 } catch (e) {155 less.writeError(e, options);156 currentErrorcode = 2;157 return;158 }159 }160 });161};162if (input != '-') {163 fs.readFile(input, 'utf8', parseLessFile);164} else {165 process.stdin.resume();166 process.stdin.setEncoding('utf8');167 var buffer = '';168 process.stdin.on('data', function(data) {169 buffer += data;170 });171 process.stdin.on('end', function() {172 parseLessFile(false, buffer);173 });...
DiffUpdateProcessors.js
Source:DiffUpdateProcessors.js
1/* license-start2 * 3 * Copyright (C) 2008 - 2014 Crispico Software, <http://www.crispico.com/>.4 * 5 * This program is free software: you can redistribute it and/or modify6 * it under the terms of the GNU General Public License as published by7 * the Free Software Foundation version 3.8 * 9 * This program is distributed in the hope that it will be useful,10 * but WITHOUT ANY WARRANTY; without even the implied warranty of11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12 * GNU General Public License for more details, at <http://www.gnu.org/licenses/>.13 * 14 * license-end15 */16 17var AddEntityDiffUpdateProcessor = function() { };18AddEntityDiffUpdateProcessor.prototype.applyDiffUpdate = function(entityRegistry, diffUpdate) {19 var continueProcessing = entityRegistry.entityOperationsAdapter.preProcessUpdate(entityRegistry, diffUpdate);20 if (!continueProcessing) {21 return;22 }23 var entity = diffUpdate.entity;24 entityRegistry.mergeEntity(entity);25 entityRegistry.entityOperationsAdapter.postProcessUpdate(entityRegistry, diffUpdate);26};2728var RemoveEntityDiffUpdateProcessor = function() { };29RemoveEntityDiffUpdateProcessor.prototype.applyDiffUpdate = function(entityRegistry, diffUpdate) {30 var continueProcessing = entityRegistry.entityOperationsAdapter.preProcessUpdate(entityRegistry, diffUpdate);31 if (!continueProcessing) {32 return;33 }34 entityRegistry.remove(diffUpdate.entityUid);35 entityRegistry.entityOperationsAdapter.postProcessUpdate(entityRegistry, diffUpdate);36};3738var PropertiesDiffUpdateProcessor = function() { };39PropertiesDiffUpdateProcessor.prototype.applyDiffUpdate = function(entityRegistry, diffUpdate) {40 var continueProcessing = entityRegistry.entityOperationsAdapter.preProcessUpdate(entityRegistry, diffUpdate);41 if (!continueProcessing) {42 return;43 }44 entityRegistry.setProperties(diffUpdate.entityUid, diffUpdate.properties);45 entityRegistry.entityOperationsAdapter.postProcessUpdate(entityRegistry, diffUpdate);46};4748var InitialInfoDiffUpdateProcessor = function() { };49InitialInfoDiffUpdateProcessor.prototype.applyDiffUpdate = function(entityRegistry, diffUpdate) {50 51};
...
Using AI Code Generation
1describe('My First Test', () => {2 it('Does not do much!', () => {3 cy.contains('type').click()4 cy.url().should('include', '/commands/actions')5 cy.get('.action-email')6 .type('
Using AI Code Generation
1describe('My First Test', function() {2 it('Does not do much!', function() {3 cy.pause()4 cy.continueProcessing()5 })6})
Using AI Code Generation
1Cypress.Commands.add('continueProcessing', () => {2 cy.get('button').contains('Continue').click();3});4describe('test', () => {5 it('test', () => {6 cy.get('input').type('test');7 cy.continueProcessing();8 });9});10cy.get('div').contains('test').should('exist');11cy.get('div').contains('test').then((element) => {12 expect(element).exist;13});14cy.get('div').contains('test').should('have.length', 1);
Using AI Code Generation
1describe('Continue processing', () => {2 it('should continue processing', () => {3 cy.continueProcessing();4 });5});6Cypress.Commands.add('continueProcessing', () => {7 cy.window().then(win => {8 win.onbeforeunload = null;9 });10});
Using AI Code Generation
1const { continueProcessing } = require('cypress-continue-processing');2const { expect } = require('chai');3const { Given, When, Then } = require('cypress-cucumber-preprocessor/steps');4Given('I am on the homepage', function () {5});6When('I search for {string}', function (searchTerm) {7 cy.get('input[name="q"]').type(searchTerm);8 cy.get('input[type="submit"]').click();9});10Then('I should see the {string} in the results', function (searchTerm) {11 cy.get('h3').contains(searchTerm).should('be.visible');12 continueProcessing();13});14import { addContinueProcessingToCypress } from 'cypress-continue-processing';15addContinueProcessingToCypress();
Cypress is a renowned Javascript-based open-source, easy-to-use end-to-end testing framework primarily used for testing web applications. Cypress is a relatively new player in the automation testing space and has been gaining much traction lately, as evidenced by the number of Forks (2.7K) and Stars (42.1K) for the project. LambdaTest’s Cypress Tutorial covers step-by-step guides that will help you learn from the basics till you run automation tests on LambdaTest.
You can elevate your expertise with end-to-end testing using the Cypress automation framework and stay one step ahead in your career by earning a Cypress certification. Check out our Cypress 101 Certification.
Watch this 3 hours of complete tutorial to learn the basics of Cypress and various Cypress commands with the Cypress testing at LambdaTest.
Get 100 minutes of automation test minutes FREE!!