diff --git a/best.config.js b/best.config.js index c11ab11a..199a5ec8 100644 --- a/best.config.js +++ b/best.config.js @@ -1,7 +1,4 @@ module.exports = { - "projectName": "perf-best-examples", - projects: [ - '/examples/simple_benchmark', - '/examples/simple_lwc_benchmark', - ] + projectName: 'perf-best-examples', + projects: ['/examples/simple_benchmark', '/examples/simple_lwc_benchmark'], }; diff --git a/examples/simple_benchmark/src/__benchmarks__/deep_merge.js b/examples/simple_benchmark/src/__benchmarks__/deep_merge.js index 91ed421e..9360799a 100644 --- a/examples/simple_benchmark/src/__benchmarks__/deep_merge.js +++ b/examples/simple_benchmark/src/__benchmarks__/deep_merge.js @@ -1,20 +1,17 @@ // https://unpkg.com/deepmerge@2.0.1/dist/es.js var isMergeableObject = function isMergeableObject(value) { - return isNonNullObject(value) - && !isSpecial(value) + return isNonNullObject(value) && !isSpecial(value); }; function isNonNullObject(value) { - return !!value && typeof value === 'object' + return !!value && typeof value === 'object'; } function isSpecial(value) { - var stringValue = Object.prototype.toString.call(value); + var stringValue = Object.prototype.toString.call(value); - return stringValue === '[object RegExp]' - || stringValue === '[object Date]' - || isReactElement(value) + return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value); } // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 @@ -22,68 +19,66 @@ var canUseSymbol = typeof Symbol === 'function' && Symbol.for; var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; function isReactElement(value) { - return value.$$typeof === REACT_ELEMENT_TYPE + return value.$$typeof === REACT_ELEMENT_TYPE; } function emptyTarget(val) { - return Array.isArray(val) ? [] : {} + return Array.isArray(val) ? [] : {}; } function cloneUnlessOtherwiseSpecified(value, optionsArgument) { - var clone = !optionsArgument || optionsArgument.clone !== false; + var clone = !optionsArgument || optionsArgument.clone !== false; - return (clone && isMergeableObject(value)) - ? deepmerge(emptyTarget(value), value, optionsArgument) - : value + return clone && isMergeableObject(value) ? deepmerge(emptyTarget(value), value, optionsArgument) : value; } function defaultArrayMerge(target, source, optionsArgument) { - return target.concat(source).map(function(element) { - return cloneUnlessOtherwiseSpecified(element, optionsArgument) - }) + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, optionsArgument); + }); } function mergeObject(target, source, optionsArgument) { - var destination = {}; - if (isMergeableObject(target)) { - Object.keys(target).forEach(function(key) { - destination[key] = cloneUnlessOtherwiseSpecified(target[key], optionsArgument); - }); - } - Object.keys(source).forEach(function(key) { - if (!isMergeableObject(source[key]) || !target[key]) { - destination[key] = cloneUnlessOtherwiseSpecified(source[key], optionsArgument); - } else { - destination[key] = deepmerge(target[key], source[key], optionsArgument); - } - }); - return destination + var destination = {}; + if (isMergeableObject(target)) { + Object.keys(target).forEach(function(key) { + destination[key] = cloneUnlessOtherwiseSpecified(target[key], optionsArgument); + }); + } + Object.keys(source).forEach(function(key) { + if (!isMergeableObject(source[key]) || !target[key]) { + destination[key] = cloneUnlessOtherwiseSpecified(source[key], optionsArgument); + } else { + destination[key] = deepmerge(target[key], source[key], optionsArgument); + } + }); + return destination; } function deepmerge(target, source, optionsArgument) { - var sourceIsArray = Array.isArray(source); - var targetIsArray = Array.isArray(target); - var options = optionsArgument || { arrayMerge: defaultArrayMerge }; - var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; - - if (!sourceAndTargetTypesMatch) { - return cloneUnlessOtherwiseSpecified(source, optionsArgument) - } else if (sourceIsArray) { - var arrayMerge = options.arrayMerge || defaultArrayMerge; - return arrayMerge(target, source, optionsArgument) - } else { - return mergeObject(target, source, optionsArgument) - } + var sourceIsArray = Array.isArray(source); + var targetIsArray = Array.isArray(target); + var options = optionsArgument || { arrayMerge: defaultArrayMerge }; + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; + + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, optionsArgument); + } else if (sourceIsArray) { + var arrayMerge = options.arrayMerge || defaultArrayMerge; + return arrayMerge(target, source, optionsArgument); + } else { + return mergeObject(target, source, optionsArgument); + } } deepmerge.all = function deepmergeAll(array, optionsArgument) { - if (!Array.isArray(array)) { - throw new Error('first argument should be an array') - } + if (!Array.isArray(array)) { + throw new Error('first argument should be an array'); + } - return array.reduce(function(prev, next) { - return deepmerge(prev, next, optionsArgument) - }, {}) + return array.reduce(function(prev, next) { + return deepmerge(prev, next, optionsArgument); + }, {}); }; var deepmerge_1 = deepmerge; diff --git a/examples/simple_benchmark/src/__benchmarks__/mock_data.js b/examples/simple_benchmark/src/__benchmarks__/mock_data.js index 369890bb..ee9c84c0 100644 --- a/examples/simple_benchmark/src/__benchmarks__/mock_data.js +++ b/examples/simple_benchmark/src/__benchmarks__/mock_data.js @@ -1,23 +1,23 @@ export const MOCK_DATA_SMALL = { - "id": "0001", - "type": "donut", - "name": "Cake", - "ppu": 0.55, - "batters": { - "batter":[ - { "id": "1001", "type": "Regular" }, - { "id": "1002", "type": "Chocolate" }, - { "id": "1003", "type": "Blueberry" }, - { "id": "1004", "type": "Devil's Food" } - ] + id: '0001', + type: 'donut', + name: 'Cake', + ppu: 0.55, + batters: { + batter: [ + { id: '1001', type: 'Regular' }, + { id: '1002', type: 'Chocolate' }, + { id: '1003', type: 'Blueberry' }, + { id: '1004', type: "Devil's Food" }, + ], }, - "topping": [ - { "id": "5001", "type": "None" }, - { "id": "5002", "type": "Glazed" }, - { "id": "5005", "type": "Sugar" }, - { "id": "5007", "type": "Powdered Sugar" }, - { "id": "5006", "type": "Chocolate with Sprinkles" }, - { "id": "5003", "type": "Chocolate" }, - { "id": "5004", "type": "Maple" } - ] + topping: [ + { id: '5001', type: 'None' }, + { id: '5002', type: 'Glazed' }, + { id: '5005', type: 'Sugar' }, + { id: '5007', type: 'Powdered Sugar' }, + { id: '5006', type: 'Chocolate with Sprinkles' }, + { id: '5003', type: 'Chocolate' }, + { id: '5004', type: 'Maple' }, + ], }; diff --git a/examples/simple_benchmark/src/__benchmarks__/object_keys.benchmark.js b/examples/simple_benchmark/src/__benchmarks__/object_keys.benchmark.js index 45b7cc2f..c29865f6 100644 --- a/examples/simple_benchmark/src/__benchmarks__/object_keys.benchmark.js +++ b/examples/simple_benchmark/src/__benchmarks__/object_keys.benchmark.js @@ -1,5 +1,5 @@ -import { MOCK_DATA_SMALL } from "./mock_data"; -import merge from "./deep_merge"; +import { MOCK_DATA_SMALL } from './mock_data'; +import merge from './deep_merge'; describe('deep_clone', () => { benchmark('stringify_parse', () => { diff --git a/examples/simple_lwc_benchmark/best.config.js b/examples/simple_lwc_benchmark/best.config.js index 214c5f74..df408429 100644 --- a/examples/simple_lwc_benchmark/best.config.js +++ b/examples/simple_lwc_benchmark/best.config.js @@ -3,7 +3,7 @@ module.exports = { plugins: { 'rollup-plugin-lwc-compiler': { rootDir: '/src/', - mode: 'dev' // We don't really need prod here since this is for test best itself + mode: 'dev', // We don't really need prod here since this is for test best itself }, }, benchmarkOnClient: false, diff --git a/packages/best-analyzer/src/stats.js b/packages/best-analyzer/src/stats.js index 31ef6745..f97c6202 100644 --- a/packages/best-analyzer/src/stats.js +++ b/packages/best-analyzer/src/stats.js @@ -63,7 +63,7 @@ export function compare(sample1, sample2) { } function getZ(n) { - return (n - (size1 * size2 / 2)) / Math.sqrt(size1 * size2 * (size1 + size2 + 1) / 12); + return (n - size1 * size2 / 2) / Math.sqrt(size1 * size2 * (size1 + size2 + 1) / 12); } if (size1 + size2 < 30) { diff --git a/packages/best-build/src/rollup-plugin-benchmark-import.js b/packages/best-build/src/rollup-plugin-benchmark-import.js index b3531d3e..e19b330d 100644 --- a/packages/best-build/src/rollup-plugin-benchmark-import.js +++ b/packages/best-build/src/rollup-plugin-benchmark-import.js @@ -27,7 +27,7 @@ function resolveModuleEntryFromPackage(module) { const BENCHMARK_RUNTIME_MODULE = '@best/runtime'; const BENCHMARK_IMPORT = `import { ${PRIMITIVES.join(',')} } from "${BENCHMARK_RUNTIME_MODULE}" \n`; -export default function () { +export default function() { let input; return { name: 'benchmark-import', diff --git a/packages/best-cli/src/cli/args.js b/packages/best-cli/src/cli/args.js index 4acd22ea..a6b2a2c7 100644 --- a/packages/best-cli/src/cli/args.js +++ b/packages/best-cli/src/cli/args.js @@ -18,8 +18,7 @@ export const options = { }, projects: { description: - 'A list of projects that use Best to run all tests of all ' + - 'projects in a single instance of Best.', + 'A list of projects that use Best to run all tests of all ' + 'projects in a single instance of Best.', type: 'array', }, iterations: { diff --git a/packages/best-cli/src/cli/output.js b/packages/best-cli/src/cli/output.js index ceb861db..f493e365 100644 --- a/packages/best-cli/src/cli/output.js +++ b/packages/best-cli/src/cli/output.js @@ -4,8 +4,8 @@ import chalk from 'chalk'; function padding(n) { return n > 0 ? Array.apply(null, Array((n - 1) * 3)) - .map(() => ' ') - .join('') + '└─ ' + .map(() => ' ') + .join('') + '└─ ' : ''; } diff --git a/packages/best-compare/src/index.js b/packages/best-compare/src/index.js index d56a3797..66a21b02 100644 --- a/packages/best-compare/src/index.js +++ b/packages/best-compare/src/index.js @@ -18,7 +18,7 @@ function compareBenchmarks(baseBenchs, targetBenchs, comparison = []) { } if (baseBenchmark.benchmarks) { - compareBenchmarks(baseBenchmark.benchmarks, targetBenchmark.benchmarks); + comparison.push(...compareBenchmarks(baseBenchmark.benchmarks, targetBenchmark.benchmarks)); } else { // For now compare only duration metrics, we should compare more things const baseDurationMetrics = baseBenchmark.duration; @@ -60,8 +60,6 @@ export async function compareBenchmarkStats(baseCommit, targetCommit, projectNam comparison: [], }; - // console.log('>> ', baseBenchmarks, targetBenchmarks); - baseBenchmarks.forEach(baseBenchmarkBundle => { const { benchmarkName } = baseBenchmarkBundle; const targetBenchmarkBundle = targetBenchmarks.find(b => b.benchmarkName === benchmarkName); diff --git a/packages/best-config/src/git.js b/packages/best-config/src/git.js index 8cbda335..d31f2a51 100644 --- a/packages/best-config/src/git.js +++ b/packages/best-config/src/git.js @@ -51,9 +51,11 @@ function getRepository(cwd) { child.on('close', code => { if (code === 0) { const rawValue = stdout.trim(); - const [owner, repo] = rawValue.split(':') + const [owner, repo] = rawValue + .split(':') .pop() - .split('.git')[0].split('/'); + .split('.git')[0] + .split('/'); resolve({ owner, repo }); } else { reject(code + ': ' + stderr); @@ -68,7 +70,7 @@ export async function addGitInformation(options) { getCurrentHash(cwd), hasLocalChanges(cwd), getBranch(cwd), - getRepository(cwd) + getRepository(cwd), ]); return Object.assign(options, { gitCommit, gitLocalChanges, gitBranch, gitRepository }); diff --git a/packages/best-config/src/index.js b/packages/best-config/src/index.js index 9a358ee7..a6aa17f1 100644 --- a/packages/best-config/src/index.js +++ b/packages/best-config/src/index.js @@ -129,9 +129,7 @@ function normalizeRootDirPattern(str, rootDir) { } function normalizeUnmockedModulePathPatterns(options, key) { - return options[key].map(pattern => - replacePathSepForRegex(normalizeRootDirPattern(pattern, options.rootDir)) - ); + return options[key].map(pattern => replacePathSepForRegex(normalizeRootDirPattern(pattern, options.rootDir))); } function normalizeObjectPathPatterns(options, { rootDir }) { @@ -207,7 +205,7 @@ function _getConfigs(options) { gitCommit: options.gitCommit, gitLocalChanges: options.gitLocalChanges, gitBranch: options.gitBranch, - gitRepository: options.gitRepository + gitRepository: options.gitRepository, }), projectConfig: Object.freeze({ cache: options.cache, @@ -256,7 +254,13 @@ const ensureNoDuplicateConfigs = (parsedConfigs, projects) => { let message = 'One or more specified projects share the same config file\n'; parsedConfigs.forEach((projectConfig, index) => { - message = message + '\nProject: "' + projects[index] + '"\nConfig: "' + String(projectConfig.configPath) + '"'; + message = + message + + '\nProject: "' + + projects[index] + + '"\nConfig: "' + + String(projectConfig.configPath) + + '"'; }); throw new Error(message); } @@ -285,7 +289,7 @@ export async function readConfig(argsCLI, packageRoot, parentConfigPath) { } const { globalConfig, projectConfig } = _getConfigs(options); - return { configPath, globalConfig, projectConfig }; + return { configPath, globalConfig, projectConfig }; } export async function getConfigs(projectsFromCLIArgs, argv) { diff --git a/packages/best-github-integration/src/comment.js b/packages/best-github-integration/src/comment.js index 267da170..68ab8287 100644 --- a/packages/best-github-integration/src/comment.js +++ b/packages/best-github-integration/src/comment.js @@ -10,22 +10,23 @@ function template({ targetCommit, baseCommit, table }) { ]); } -function generateRows(stats, name = '') { - return stats.comparison.map(node => { +function generateRows(stats, name = '', rows = []) { + return stats.comparison.reduce((allRows, node) => { if (node.comparison) { - return generateRows(node, `${node.benchmarkName || node.name}:`).reduce((a, b) => a.concat(b)); - } - - const durationMetric = node.metrics.duration; - const { baseStats, targetStats, samplesComparison } = durationMetric; + generateRows(node, `${node.benchmarkName || node.name}:`, rows); + } else { + const durationMetric = node.metrics.duration; + const { baseStats, targetStats, samplesComparison } = durationMetric; - return [ - name + node.name, - `${baseStats.median.toFixed(2)} (± ${targetStats.medianAbsoluteDeviation.toFixed(2)} ms)`, - `${targetStats.median.toFixed(2)} (± ${targetStats.medianAbsoluteDeviation.toFixed(2)} ms)`, - samplesComparison === 0 ? '👌' : samplesComparison === 1 ? '👎' : '👍', - ]; - }); + allRows.push([ + name + node.name, + `${baseStats.median.toFixed(2)} (± ${targetStats.medianAbsoluteDeviation.toFixed(2)} ms)`, + `${targetStats.median.toFixed(2)} (± ${targetStats.medianAbsoluteDeviation.toFixed(2)} ms)`, + samplesComparison === 0 ? '👌' : samplesComparison === 1 ? '👎' : '👍', + ]); + } + return allRows; + }, rows); } function generateTable(baseCommit, targetCommit, stats) { @@ -39,6 +40,7 @@ function generateTable(baseCommit, targetCommit, stats) { export function generateComparisonComment(baseCommit, targetCommit, stats) { const table = generateTable(baseCommit, targetCommit, stats); + return template({ baseCommit, targetCommit, diff --git a/packages/best-runner-headless/src/index.js b/packages/best-runner-headless/src/index.js index 637e0af5..1e3f32a7 100644 --- a/packages/best-runner-headless/src/index.js +++ b/packages/best-runner-headless/src/index.js @@ -118,7 +118,7 @@ async function normalizeEnvironment(browser, projectConfig, globalConfig) { gitCommitHash: globalConfig.gitCommit, gitHasLocalChanges: globalConfig.gitLocalChanges, gitBranch: globalConfig.gitBranch, - gitRepository: globalConfig.gitRepository + gitRepository: globalConfig.gitRepository, }, }, }; diff --git a/packages/best-runtime/src/primitives-handler.js b/packages/best-runtime/src/primitives-handler.js index 597beb76..2ff455a9 100644 --- a/packages/best-runtime/src/primitives-handler.js +++ b/packages/best-runtime/src/primitives-handler.js @@ -29,7 +29,9 @@ const handler = (event, state) => { if (currentDescribeBlock.children.length === 0 && !currentDescribeBlock.run) { throw new Error( - `Benchmark "${currentDescribeBlock.name}" must have a 'run()' function or contain benchmarks inside.` + `Benchmark "${ + currentDescribeBlock.name + }" must have a 'run()' function or contain benchmarks inside.`, ); } diff --git a/packages/best-runtime/src/utils/timers.js b/packages/best-runtime/src/utils/timers.js index e5f718dc..ae2fd945 100644 --- a/packages/best-runtime/src/utils/timers.js +++ b/packages/best-runtime/src/utils/timers.js @@ -75,7 +75,7 @@ if (typeof Promise !== 'undefined' && isNative(Promise)) { export function withMacroTask(fn) { return ( fn._withTask || - (fn._withTask = function () { + (fn._withTask = function() { useMacroTask = true; const res = fn.apply(null, arguments); useMacroTask = false; diff --git a/packages/best-store-aws/src/aws-wrapper.js b/packages/best-store-aws/src/aws-wrapper.js index 2613e121..ccec22f3 100644 --- a/packages/best-store-aws/src/aws-wrapper.js +++ b/packages/best-store-aws/src/aws-wrapper.js @@ -95,7 +95,7 @@ export class S3 { Bucket: bucket, Key: url, Body: `{ time: ${'' + new Date()} }`, - Expires: new Date(Date.now() + (1000 * 60 * 60 * 24 * 365 /* a year */)), + Expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 /* a year */), ContentType: lookup(url) || undefined, }, (err, data) => { @@ -119,7 +119,7 @@ export class S3 { Bucket: bucket, Key: url, Body: body, - Expires: new Date(Date.now() + (1000 * 60 * 60 * 24 * 365 /* a year */)), + Expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 /* a year */), ContentType: lookup(url) || undefined, }, (err, data) => {