@codspeed/tinybench-plugin 1.1.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -6,6 +6,7 @@ var node_url = require('node:url');
6
6
  var process = require('node:process');
7
7
  var fs = require('node:fs');
8
8
  var path$1 = require('path');
9
+ var url = require('url');
9
10
 
10
11
  const typeMappings = {
11
12
  directory: 'isDirectory',
@@ -164,8 +165,11 @@ boolProperties.forEach(function (property) {
164
165
  };
165
166
  });
166
167
 
168
+ function isCodSpeedBenchOptions(options) {
169
+ return "uri" in options;
170
+ }
167
171
  function withCodSpeed(bench) {
168
- if (!core.measurement.isInstrumented()) {
172
+ if (!core.Measurement.isInstrumented()) {
169
173
  const rawRun = bench.run;
170
174
  bench.run = async () => {
171
175
  console.warn(
@@ -175,30 +179,55 @@ function withCodSpeed(bench) {
175
179
  };
176
180
  return bench;
177
181
  }
178
- core.initCore();
179
- const callingFile = getCallingFile();
182
+ const rawAdd = bench.add;
183
+ bench.add = (name, fn, opts) => {
184
+ const callingFile = getCallingFile();
185
+ const uri = `${callingFile}::${name}`;
186
+ const options = Object.assign({}, opts != null ? opts : {}, { uri });
187
+ return rawAdd.bind(bench)(name, fn, options);
188
+ };
189
+ const rootCallingFile = getCallingFile();
180
190
  bench.run = async () => {
181
- console.log(`[CodSpeed] running with @codspeed/tinybench v${"1.1.0"}`);
191
+ core.setupCore();
192
+ console.log(`[CodSpeed] running with @codspeed/tinybench v${"2.1.0"}`);
182
193
  for (const task of bench.tasks) {
183
- const uri = callingFile + "::" + task.name;
194
+ if (task.opts.beforeAll != null) {
195
+ await task.opts.beforeAll.call(task);
196
+ }
197
+ if (task.opts.beforeEach != null) {
198
+ await task.opts.beforeEach.call(task);
199
+ }
200
+ const uri = isCodSpeedBenchOptions(task.opts) ? task.opts.uri : `${rootCallingFile}::${task.name}`;
184
201
  await core.optimizeFunction(task.fn);
185
- core.measurement.startInstrumentation();
186
- await task.fn();
187
- core.measurement.stopInstrumentation(uri);
202
+ await async function __codspeed_root_frame__() {
203
+ core.Measurement.startInstrumentation();
204
+ await task.fn();
205
+ core.Measurement.stopInstrumentation(uri);
206
+ }();
207
+ if (task.opts.afterEach != null) {
208
+ await task.opts.afterEach.call(task);
209
+ }
210
+ if (task.opts.afterAll != null) {
211
+ await task.opts.afterAll.call(task);
212
+ }
188
213
  console.log(` \u2714 Measured ${uri}`);
189
214
  }
190
215
  console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);
191
216
  return bench.tasks;
192
217
  };
218
+ core.teardownCore();
193
219
  return bench;
194
220
  }
195
221
  function getCallingFile() {
196
222
  const stack = get();
197
- const callingFile = stack[2].getFileName();
223
+ let callingFile = stack[2].getFileName();
198
224
  const gitDir = getGitDir(callingFile);
199
225
  if (gitDir === void 0) {
200
226
  throw new Error("Could not find a git repository");
201
227
  }
228
+ if (callingFile.startsWith("file://")) {
229
+ callingFile = url.fileURLToPath(callingFile);
230
+ }
202
231
  return path$1.relative(gitDir, callingFile);
203
232
  }
204
233
  function getGitDir(path2) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../node_modules/.pnpm/locate-path@7.2.0/node_modules/locate-path/index.js","../../../node_modules/.pnpm/find-up@6.3.0/node_modules/find-up/index.js","../../../node_modules/.pnpm/stack-trace@1.0.0-pre1/node_modules/stack-trace/index.js","../src/index.ts"],"sourcesContent":["import process from 'node:process';\nimport path from 'node:path';\nimport fs, {promises as fsPromises} from 'node:fs';\nimport {fileURLToPath} from 'node:url';\nimport pLocate from 'p-locate';\n\nconst typeMappings = {\n\tdirectory: 'isDirectory',\n\tfile: 'isFile',\n};\n\nfunction checkType(type) {\n\tif (Object.hasOwnProperty.call(typeMappings, type)) {\n\t\treturn;\n\t}\n\n\tthrow new Error(`Invalid type specified: ${type}`);\n}\n\nconst matchType = (type, stat) => stat[typeMappings[type]]();\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport async function locatePath(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t\tconcurrency,\n\t\tpreserveOrder,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fsPromises.stat : fsPromises.lstat;\n\n\treturn pLocate(paths, async path_ => {\n\t\ttry {\n\t\t\tconst stat = await statFunction(path.resolve(cwd, path_));\n\t\t\treturn matchType(type, stat);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, {concurrency, preserveOrder});\n}\n\nexport function locatePathSync(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fs.statSync : fs.lstatSync;\n\n\tfor (const path_ of paths) {\n\t\ttry {\n\t\t\tconst stat = statFunction(path.resolve(cwd, path_), {\n\t\t\t\tthrowIfNoEntry: false,\n\t\t\t});\n\n\t\t\tif (!stat) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (matchType(type, stat)) {\n\t\t\t\treturn path_;\n\t\t\t}\n\t\t} catch {}\n\t}\n}\n","import path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport {locatePath, locatePathSync} from 'locate-path';\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport const findUpStop = Symbol('findUpStop');\n\nexport async function findUpMultiple(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) || '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = path.resolve(directory, options.stopAt || root);\n\tconst limit = options.limit || Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = async locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = await name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst foundPath = await runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport function findUpMultipleSync(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) || '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = options.stopAt || root;\n\tconst limit = options.limit || Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePathSync(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePathSync([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst foundPath = runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport async function findUp(name, options = {}) {\n\tconst matches = await findUpMultiple(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport function findUpSync(name, options = {}) {\n\tconst matches = findUpMultipleSync(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport {\n\tpathExists,\n\tpathExistsSync,\n} from 'path-exists';\n","export function get(belowFn) {\r\n const oldLimit = Error.stackTraceLimit;\r\n Error.stackTraceLimit = Infinity;\r\n\r\n const dummyObject = {};\r\n\r\n const v8Handler = Error.prepareStackTrace;\r\n Error.prepareStackTrace = function(dummyObject, v8StackTrace) {\r\n return v8StackTrace;\r\n };\r\n Error.captureStackTrace(dummyObject, belowFn || get);\r\n\r\n const v8StackTrace = dummyObject.stack;\r\n Error.prepareStackTrace = v8Handler;\r\n Error.stackTraceLimit = oldLimit;\r\n\r\n return v8StackTrace;\r\n}\r\n\r\nexport function parse(err) {\r\n if (!err.stack) {\r\n return [];\r\n }\r\n\r\n const lines = err.stack.split('\\n').slice(1);\r\n return lines\r\n .map(function(line) {\r\n if (line.match(/^\\s*[-]{4,}$/)) {\r\n return createParsedCallSite({\r\n fileName: line,\r\n lineNumber: null,\r\n functionName: null,\r\n typeName: null,\r\n methodName: null,\r\n columnNumber: null,\r\n 'native': null,\r\n });\r\n }\r\n\r\n const lineMatch = line.match(/at (?:(.+?)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/);\r\n if (!lineMatch) {\r\n return;\r\n }\r\n\r\n let object = null;\r\n let method = null;\r\n let functionName = null;\r\n let typeName = null;\r\n let methodName = null;\r\n let isNative = (lineMatch[5] === 'native');\r\n\r\n if (lineMatch[1]) {\r\n functionName = lineMatch[1];\r\n let methodStart = functionName.lastIndexOf('.');\r\n if (functionName[methodStart-1] == '.')\r\n methodStart--;\r\n if (methodStart > 0) {\r\n object = functionName.substr(0, methodStart);\r\n method = functionName.substr(methodStart + 1);\r\n const objectEnd = object.indexOf('.Module');\r\n if (objectEnd > 0) {\r\n functionName = functionName.substr(objectEnd + 1);\r\n object = object.substr(0, objectEnd);\r\n }\r\n }\r\n }\r\n\r\n if (method) {\r\n typeName = object;\r\n methodName = method;\r\n }\r\n\r\n if (method === '<anonymous>') {\r\n methodName = null;\r\n functionName = null;\r\n }\r\n\r\n const properties = {\r\n fileName: lineMatch[2] || null,\r\n lineNumber: parseInt(lineMatch[3], 10) || null,\r\n functionName: functionName,\r\n typeName: typeName,\r\n methodName: methodName,\r\n columnNumber: parseInt(lineMatch[4], 10) || null,\r\n 'native': isNative,\r\n };\r\n\r\n return createParsedCallSite(properties);\r\n })\r\n .filter(function(callSite) {\r\n return !!callSite;\r\n });\r\n}\r\n\r\nfunction CallSite(properties) {\r\n for (const property in properties) {\r\n this[property] = properties[property];\r\n }\r\n}\r\n\r\nconst strProperties = [\r\n 'this',\r\n 'typeName',\r\n 'functionName',\r\n 'methodName',\r\n 'fileName',\r\n 'lineNumber',\r\n 'columnNumber',\r\n 'function',\r\n 'evalOrigin'\r\n];\r\n\r\nconst boolProperties = [\r\n 'topLevel',\r\n 'eval',\r\n 'native',\r\n 'constructor'\r\n];\r\n\r\nstrProperties.forEach(function (property) {\r\n CallSite.prototype[property] = null;\r\n CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () {\r\n return this[property];\r\n }\r\n});\r\n\r\nboolProperties.forEach(function (property) {\r\n CallSite.prototype[property] = false;\r\n CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () {\r\n return this[property];\r\n }\r\n});\r\n\r\nfunction createParsedCallSite(properties) {\r\n return new CallSite(properties);\r\n}\r\n","import { initCore, measurement, optimizeFunction } from \"@codspeed/core\";\nimport { findUpSync, Options } from \"find-up\";\nimport path, { dirname } from \"path\";\nimport { get as getStackTrace } from \"stack-trace\";\nimport { Bench } from \"tinybench\";\n\ndeclare const __VERSION__: string;\n\nexport function withCodSpeed(bench: Bench): Bench {\n if (!measurement.isInstrumented()) {\n const rawRun = bench.run;\n bench.run = async () => {\n console.warn(\n `[CodSpeed] ${bench.tasks.length} benches detected but no instrumentation found, falling back to tinybench`\n );\n return await rawRun.bind(bench)();\n };\n return bench;\n }\n initCore();\n const callingFile = getCallingFile();\n bench.run = async () => {\n console.log(`[CodSpeed] running with @codspeed/tinybench v${__VERSION__}`);\n for (const task of bench.tasks) {\n const uri = callingFile + \"::\" + task.name;\n await optimizeFunction(task.fn);\n measurement.startInstrumentation();\n await task.fn();\n measurement.stopInstrumentation(uri);\n console.log(` ✔ Measured ${uri}`);\n }\n console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);\n return bench.tasks;\n };\n return bench;\n}\n\nfunction getCallingFile(): string {\n const stack = getStackTrace();\n const callingFile = stack[2].getFileName(); // [here, withCodSpeed, actual caller]\n const gitDir = getGitDir(callingFile);\n if (gitDir === undefined) {\n throw new Error(\"Could not find a git repository\");\n }\n return path.relative(gitDir, callingFile);\n}\n\nfunction getGitDir(path: string): string | undefined {\n const dotGitPath = findUpSync(\".git\", {\n cwd: path,\n type: \"directory\",\n } as Options);\n return dotGitPath ? dirname(dotGitPath) : undefined;\n}\n"],"names":["toPath","fileURLToPath","measurement","initCore","optimizeFunction","getStackTrace","path","dirname"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../node_modules/.pnpm/locate-path@7.2.0/node_modules/locate-path/index.js","../../../node_modules/.pnpm/find-up@6.3.0/node_modules/find-up/index.js","../../../node_modules/.pnpm/stack-trace@1.0.0-pre2/node_modules/stack-trace/index.js","../src/index.ts"],"sourcesContent":["import process from 'node:process';\nimport path from 'node:path';\nimport fs, {promises as fsPromises} from 'node:fs';\nimport {fileURLToPath} from 'node:url';\nimport pLocate from 'p-locate';\n\nconst typeMappings = {\n\tdirectory: 'isDirectory',\n\tfile: 'isFile',\n};\n\nfunction checkType(type) {\n\tif (Object.hasOwnProperty.call(typeMappings, type)) {\n\t\treturn;\n\t}\n\n\tthrow new Error(`Invalid type specified: ${type}`);\n}\n\nconst matchType = (type, stat) => stat[typeMappings[type]]();\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport async function locatePath(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t\tconcurrency,\n\t\tpreserveOrder,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fsPromises.stat : fsPromises.lstat;\n\n\treturn pLocate(paths, async path_ => {\n\t\ttry {\n\t\t\tconst stat = await statFunction(path.resolve(cwd, path_));\n\t\t\treturn matchType(type, stat);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, {concurrency, preserveOrder});\n}\n\nexport function locatePathSync(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fs.statSync : fs.lstatSync;\n\n\tfor (const path_ of paths) {\n\t\ttry {\n\t\t\tconst stat = statFunction(path.resolve(cwd, path_), {\n\t\t\t\tthrowIfNoEntry: false,\n\t\t\t});\n\n\t\t\tif (!stat) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (matchType(type, stat)) {\n\t\t\t\treturn path_;\n\t\t\t}\n\t\t} catch {}\n\t}\n}\n","import path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport {locatePath, locatePathSync} from 'locate-path';\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport const findUpStop = Symbol('findUpStop');\n\nexport async function findUpMultiple(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) || '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = path.resolve(directory, options.stopAt || root);\n\tconst limit = options.limit || Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = async locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = await name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst foundPath = await runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport function findUpMultipleSync(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) || '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = options.stopAt || root;\n\tconst limit = options.limit || Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePathSync(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePathSync([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst foundPath = runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport async function findUp(name, options = {}) {\n\tconst matches = await findUpMultiple(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport function findUpSync(name, options = {}) {\n\tconst matches = findUpMultipleSync(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport {\n\tpathExists,\n\tpathExistsSync,\n} from 'path-exists';\n","export function get(belowFn) {\r\n const oldLimit = Error.stackTraceLimit;\r\n Error.stackTraceLimit = Infinity;\r\n\r\n const dummyObject = {};\r\n\r\n const v8Handler = Error.prepareStackTrace;\r\n Error.prepareStackTrace = function(dummyObject, v8StackTrace) {\r\n return v8StackTrace;\r\n };\r\n Error.captureStackTrace(dummyObject, belowFn || get);\r\n\r\n const v8StackTrace = dummyObject.stack;\r\n Error.prepareStackTrace = v8Handler;\r\n Error.stackTraceLimit = oldLimit;\r\n\r\n return v8StackTrace;\r\n}\r\n\r\nexport function parse(err) {\r\n if (!err.stack) {\r\n return [];\r\n }\r\n\r\n const lines = err.stack.split('\\n').slice(1);\r\n return lines\r\n .map(function(line) {\r\n if (line.match(/^\\s*[-]{4,}$/)) {\r\n return createParsedCallSite({\r\n fileName: line,\r\n lineNumber: null,\r\n functionName: null,\r\n typeName: null,\r\n methodName: null,\r\n columnNumber: null,\r\n 'native': null,\r\n });\r\n }\r\n\r\n const lineMatch = line.match(/at (?:(.+?)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/);\r\n if (!lineMatch) {\r\n return;\r\n }\r\n\r\n let object = null;\r\n let method = null;\r\n let functionName = null;\r\n let typeName = null;\r\n let methodName = null;\r\n let isNative = (lineMatch[5] === 'native');\r\n\r\n if (lineMatch[1]) {\r\n functionName = lineMatch[1];\r\n let methodStart = functionName.lastIndexOf('.');\r\n if (functionName[methodStart-1] == '.')\r\n methodStart--;\r\n if (methodStart > 0) {\r\n object = functionName.substr(0, methodStart);\r\n method = functionName.substr(methodStart + 1);\r\n const objectEnd = object.indexOf('.Module');\r\n if (objectEnd > 0) {\r\n functionName = functionName.substr(objectEnd + 1);\r\n object = object.substr(0, objectEnd);\r\n }\r\n }\r\n }\r\n\r\n if (method) {\r\n typeName = object;\r\n methodName = method;\r\n }\r\n\r\n if (method === '<anonymous>') {\r\n methodName = null;\r\n functionName = null;\r\n }\r\n\r\n const properties = {\r\n fileName: lineMatch[2] || null,\r\n lineNumber: parseInt(lineMatch[3], 10) || null,\r\n functionName: functionName,\r\n typeName: typeName,\r\n methodName: methodName,\r\n columnNumber: parseInt(lineMatch[4], 10) || null,\r\n 'native': isNative,\r\n };\r\n\r\n return createParsedCallSite(properties);\r\n })\r\n .filter(function(callSite) {\r\n return !!callSite;\r\n });\r\n}\r\n\r\nfunction CallSite(properties) {\r\n for (const property in properties) {\r\n this[property] = properties[property];\r\n }\r\n}\r\n\r\nconst strProperties = [\r\n 'this',\r\n 'typeName',\r\n 'functionName',\r\n 'methodName',\r\n 'fileName',\r\n 'lineNumber',\r\n 'columnNumber',\r\n 'function',\r\n 'evalOrigin'\r\n];\r\n\r\nconst boolProperties = [\r\n 'topLevel',\r\n 'eval',\r\n 'native',\r\n 'constructor'\r\n];\r\n\r\nstrProperties.forEach(function (property) {\r\n CallSite.prototype[property] = null;\r\n CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () {\r\n return this[property];\r\n }\r\n});\r\n\r\nboolProperties.forEach(function (property) {\r\n CallSite.prototype[property] = false;\r\n CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () {\r\n return this[property];\r\n }\r\n});\r\n\r\nfunction createParsedCallSite(properties) {\r\n return new CallSite(properties);\r\n}\r\n","import {\n Measurement,\n optimizeFunction,\n setupCore,\n teardownCore,\n} from \"@codspeed/core\";\nimport { findUpSync, Options } from \"find-up\";\nimport path, { dirname } from \"path\";\nimport { get as getStackTrace } from \"stack-trace\";\nimport { Bench, Task } from \"tinybench\";\nimport { fileURLToPath } from \"url\";\n\ndeclare const __VERSION__: string;\n\ntype CodSpeedBenchOptions = Task[\"opts\"] & {\n uri: string;\n};\n\nfunction isCodSpeedBenchOptions(\n options: Task[\"opts\"]\n): options is CodSpeedBenchOptions {\n return \"uri\" in options;\n}\n\nexport function withCodSpeed(bench: Bench): Bench {\n if (!Measurement.isInstrumented()) {\n const rawRun = bench.run;\n bench.run = async () => {\n console.warn(\n `[CodSpeed] ${bench.tasks.length} benches detected but no instrumentation found, falling back to tinybench`\n );\n return await rawRun.bind(bench)();\n };\n return bench;\n }\n\n const rawAdd = bench.add;\n bench.add = (name, fn, opts: CodSpeedBenchOptions) => {\n const callingFile = getCallingFile();\n const uri = `${callingFile}::${name}`;\n const options = Object.assign({}, opts ?? {}, { uri });\n return rawAdd.bind(bench)(name, fn, options);\n };\n const rootCallingFile = getCallingFile();\n\n bench.run = async () => {\n setupCore();\n console.log(`[CodSpeed] running with @codspeed/tinybench v${__VERSION__}`);\n for (const task of bench.tasks) {\n // run before hooks\n if (task.opts.beforeAll != null) {\n await task.opts.beforeAll.call(task);\n }\n if (task.opts.beforeEach != null) {\n await task.opts.beforeEach.call(task);\n }\n\n // run the actual benchmark, with instrumentation\n const uri = isCodSpeedBenchOptions(task.opts)\n ? task.opts.uri\n : `${rootCallingFile}::${task.name}`;\n await optimizeFunction(task.fn);\n await (async function __codspeed_root_frame__() {\n Measurement.startInstrumentation();\n await task.fn();\n Measurement.stopInstrumentation(uri);\n })();\n\n // run after hooks\n if (task.opts.afterEach != null) {\n await task.opts.afterEach.call(task);\n }\n if (task.opts.afterAll != null) {\n await task.opts.afterAll.call(task);\n }\n\n // print results\n console.log(` ✔ Measured ${uri}`);\n }\n console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);\n return bench.tasks;\n };\n teardownCore();\n return bench;\n}\n\nfunction getCallingFile(): string {\n const stack = getStackTrace();\n let callingFile = stack[2].getFileName(); // [here, withCodSpeed, actual caller]\n const gitDir = getGitDir(callingFile);\n if (gitDir === undefined) {\n throw new Error(\"Could not find a git repository\");\n }\n if (callingFile.startsWith(\"file://\")) {\n callingFile = fileURLToPath(callingFile);\n }\n return path.relative(gitDir, callingFile);\n}\n\nfunction getGitDir(path: string): string | undefined {\n const dotGitPath = findUpSync(\".git\", {\n cwd: path,\n type: \"directory\",\n } as Options);\n return dotGitPath ? dirname(dotGitPath) : undefined;\n}\n"],"names":["toPath","fileURLToPath","Measurement","setupCore","optimizeFunction","teardownCore","getStackTrace","path","dirname"],"mappings":"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","x_google_ignoreList":[0,1,2]}
package/dist/index.es5.js CHANGED
@@ -1,9 +1,10 @@
1
- import { measurement, initCore, optimizeFunction } from '@codspeed/core';
1
+ import { Measurement, setupCore, optimizeFunction, teardownCore } from '@codspeed/core';
2
2
  import path from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import process from 'node:process';
5
5
  import fs from 'node:fs';
6
6
  import path$1, { dirname } from 'path';
7
+ import { fileURLToPath as fileURLToPath$1 } from 'url';
7
8
 
8
9
  const typeMappings = {
9
10
  directory: 'isDirectory',
@@ -162,8 +163,11 @@ boolProperties.forEach(function (property) {
162
163
  };
163
164
  });
164
165
 
166
+ function isCodSpeedBenchOptions(options) {
167
+ return "uri" in options;
168
+ }
165
169
  function withCodSpeed(bench) {
166
- if (!measurement.isInstrumented()) {
170
+ if (!Measurement.isInstrumented()) {
167
171
  const rawRun = bench.run;
168
172
  bench.run = async () => {
169
173
  console.warn(
@@ -173,30 +177,55 @@ function withCodSpeed(bench) {
173
177
  };
174
178
  return bench;
175
179
  }
176
- initCore();
177
- const callingFile = getCallingFile();
180
+ const rawAdd = bench.add;
181
+ bench.add = (name, fn, opts) => {
182
+ const callingFile = getCallingFile();
183
+ const uri = `${callingFile}::${name}`;
184
+ const options = Object.assign({}, opts != null ? opts : {}, { uri });
185
+ return rawAdd.bind(bench)(name, fn, options);
186
+ };
187
+ const rootCallingFile = getCallingFile();
178
188
  bench.run = async () => {
179
- console.log(`[CodSpeed] running with @codspeed/tinybench v${"1.1.0"}`);
189
+ setupCore();
190
+ console.log(`[CodSpeed] running with @codspeed/tinybench v${"2.1.0"}`);
180
191
  for (const task of bench.tasks) {
181
- const uri = callingFile + "::" + task.name;
192
+ if (task.opts.beforeAll != null) {
193
+ await task.opts.beforeAll.call(task);
194
+ }
195
+ if (task.opts.beforeEach != null) {
196
+ await task.opts.beforeEach.call(task);
197
+ }
198
+ const uri = isCodSpeedBenchOptions(task.opts) ? task.opts.uri : `${rootCallingFile}::${task.name}`;
182
199
  await optimizeFunction(task.fn);
183
- measurement.startInstrumentation();
184
- await task.fn();
185
- measurement.stopInstrumentation(uri);
200
+ await async function __codspeed_root_frame__() {
201
+ Measurement.startInstrumentation();
202
+ await task.fn();
203
+ Measurement.stopInstrumentation(uri);
204
+ }();
205
+ if (task.opts.afterEach != null) {
206
+ await task.opts.afterEach.call(task);
207
+ }
208
+ if (task.opts.afterAll != null) {
209
+ await task.opts.afterAll.call(task);
210
+ }
186
211
  console.log(` \u2714 Measured ${uri}`);
187
212
  }
188
213
  console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);
189
214
  return bench.tasks;
190
215
  };
216
+ teardownCore();
191
217
  return bench;
192
218
  }
193
219
  function getCallingFile() {
194
220
  const stack = get();
195
- const callingFile = stack[2].getFileName();
221
+ let callingFile = stack[2].getFileName();
196
222
  const gitDir = getGitDir(callingFile);
197
223
  if (gitDir === void 0) {
198
224
  throw new Error("Could not find a git repository");
199
225
  }
226
+ if (callingFile.startsWith("file://")) {
227
+ callingFile = fileURLToPath$1(callingFile);
228
+ }
200
229
  return path$1.relative(gitDir, callingFile);
201
230
  }
202
231
  function getGitDir(path2) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.es5.js","sources":["../../../node_modules/.pnpm/locate-path@7.2.0/node_modules/locate-path/index.js","../../../node_modules/.pnpm/find-up@6.3.0/node_modules/find-up/index.js","../../../node_modules/.pnpm/stack-trace@1.0.0-pre1/node_modules/stack-trace/index.js","../src/index.ts"],"sourcesContent":["import process from 'node:process';\nimport path from 'node:path';\nimport fs, {promises as fsPromises} from 'node:fs';\nimport {fileURLToPath} from 'node:url';\nimport pLocate from 'p-locate';\n\nconst typeMappings = {\n\tdirectory: 'isDirectory',\n\tfile: 'isFile',\n};\n\nfunction checkType(type) {\n\tif (Object.hasOwnProperty.call(typeMappings, type)) {\n\t\treturn;\n\t}\n\n\tthrow new Error(`Invalid type specified: ${type}`);\n}\n\nconst matchType = (type, stat) => stat[typeMappings[type]]();\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport async function locatePath(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t\tconcurrency,\n\t\tpreserveOrder,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fsPromises.stat : fsPromises.lstat;\n\n\treturn pLocate(paths, async path_ => {\n\t\ttry {\n\t\t\tconst stat = await statFunction(path.resolve(cwd, path_));\n\t\t\treturn matchType(type, stat);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, {concurrency, preserveOrder});\n}\n\nexport function locatePathSync(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fs.statSync : fs.lstatSync;\n\n\tfor (const path_ of paths) {\n\t\ttry {\n\t\t\tconst stat = statFunction(path.resolve(cwd, path_), {\n\t\t\t\tthrowIfNoEntry: false,\n\t\t\t});\n\n\t\t\tif (!stat) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (matchType(type, stat)) {\n\t\t\t\treturn path_;\n\t\t\t}\n\t\t} catch {}\n\t}\n}\n","import path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport {locatePath, locatePathSync} from 'locate-path';\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport const findUpStop = Symbol('findUpStop');\n\nexport async function findUpMultiple(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) || '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = path.resolve(directory, options.stopAt || root);\n\tconst limit = options.limit || Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = async locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = await name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst foundPath = await runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport function findUpMultipleSync(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) || '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = options.stopAt || root;\n\tconst limit = options.limit || Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePathSync(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePathSync([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst foundPath = runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport async function findUp(name, options = {}) {\n\tconst matches = await findUpMultiple(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport function findUpSync(name, options = {}) {\n\tconst matches = findUpMultipleSync(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport {\n\tpathExists,\n\tpathExistsSync,\n} from 'path-exists';\n","export function get(belowFn) {\r\n const oldLimit = Error.stackTraceLimit;\r\n Error.stackTraceLimit = Infinity;\r\n\r\n const dummyObject = {};\r\n\r\n const v8Handler = Error.prepareStackTrace;\r\n Error.prepareStackTrace = function(dummyObject, v8StackTrace) {\r\n return v8StackTrace;\r\n };\r\n Error.captureStackTrace(dummyObject, belowFn || get);\r\n\r\n const v8StackTrace = dummyObject.stack;\r\n Error.prepareStackTrace = v8Handler;\r\n Error.stackTraceLimit = oldLimit;\r\n\r\n return v8StackTrace;\r\n}\r\n\r\nexport function parse(err) {\r\n if (!err.stack) {\r\n return [];\r\n }\r\n\r\n const lines = err.stack.split('\\n').slice(1);\r\n return lines\r\n .map(function(line) {\r\n if (line.match(/^\\s*[-]{4,}$/)) {\r\n return createParsedCallSite({\r\n fileName: line,\r\n lineNumber: null,\r\n functionName: null,\r\n typeName: null,\r\n methodName: null,\r\n columnNumber: null,\r\n 'native': null,\r\n });\r\n }\r\n\r\n const lineMatch = line.match(/at (?:(.+?)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/);\r\n if (!lineMatch) {\r\n return;\r\n }\r\n\r\n let object = null;\r\n let method = null;\r\n let functionName = null;\r\n let typeName = null;\r\n let methodName = null;\r\n let isNative = (lineMatch[5] === 'native');\r\n\r\n if (lineMatch[1]) {\r\n functionName = lineMatch[1];\r\n let methodStart = functionName.lastIndexOf('.');\r\n if (functionName[methodStart-1] == '.')\r\n methodStart--;\r\n if (methodStart > 0) {\r\n object = functionName.substr(0, methodStart);\r\n method = functionName.substr(methodStart + 1);\r\n const objectEnd = object.indexOf('.Module');\r\n if (objectEnd > 0) {\r\n functionName = functionName.substr(objectEnd + 1);\r\n object = object.substr(0, objectEnd);\r\n }\r\n }\r\n }\r\n\r\n if (method) {\r\n typeName = object;\r\n methodName = method;\r\n }\r\n\r\n if (method === '<anonymous>') {\r\n methodName = null;\r\n functionName = null;\r\n }\r\n\r\n const properties = {\r\n fileName: lineMatch[2] || null,\r\n lineNumber: parseInt(lineMatch[3], 10) || null,\r\n functionName: functionName,\r\n typeName: typeName,\r\n methodName: methodName,\r\n columnNumber: parseInt(lineMatch[4], 10) || null,\r\n 'native': isNative,\r\n };\r\n\r\n return createParsedCallSite(properties);\r\n })\r\n .filter(function(callSite) {\r\n return !!callSite;\r\n });\r\n}\r\n\r\nfunction CallSite(properties) {\r\n for (const property in properties) {\r\n this[property] = properties[property];\r\n }\r\n}\r\n\r\nconst strProperties = [\r\n 'this',\r\n 'typeName',\r\n 'functionName',\r\n 'methodName',\r\n 'fileName',\r\n 'lineNumber',\r\n 'columnNumber',\r\n 'function',\r\n 'evalOrigin'\r\n];\r\n\r\nconst boolProperties = [\r\n 'topLevel',\r\n 'eval',\r\n 'native',\r\n 'constructor'\r\n];\r\n\r\nstrProperties.forEach(function (property) {\r\n CallSite.prototype[property] = null;\r\n CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () {\r\n return this[property];\r\n }\r\n});\r\n\r\nboolProperties.forEach(function (property) {\r\n CallSite.prototype[property] = false;\r\n CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () {\r\n return this[property];\r\n }\r\n});\r\n\r\nfunction createParsedCallSite(properties) {\r\n return new CallSite(properties);\r\n}\r\n","import { initCore, measurement, optimizeFunction } from \"@codspeed/core\";\nimport { findUpSync, Options } from \"find-up\";\nimport path, { dirname } from \"path\";\nimport { get as getStackTrace } from \"stack-trace\";\nimport { Bench } from \"tinybench\";\n\ndeclare const __VERSION__: string;\n\nexport function withCodSpeed(bench: Bench): Bench {\n if (!measurement.isInstrumented()) {\n const rawRun = bench.run;\n bench.run = async () => {\n console.warn(\n `[CodSpeed] ${bench.tasks.length} benches detected but no instrumentation found, falling back to tinybench`\n );\n return await rawRun.bind(bench)();\n };\n return bench;\n }\n initCore();\n const callingFile = getCallingFile();\n bench.run = async () => {\n console.log(`[CodSpeed] running with @codspeed/tinybench v${__VERSION__}`);\n for (const task of bench.tasks) {\n const uri = callingFile + \"::\" + task.name;\n await optimizeFunction(task.fn);\n measurement.startInstrumentation();\n await task.fn();\n measurement.stopInstrumentation(uri);\n console.log(` ✔ Measured ${uri}`);\n }\n console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);\n return bench.tasks;\n };\n return bench;\n}\n\nfunction getCallingFile(): string {\n const stack = getStackTrace();\n const callingFile = stack[2].getFileName(); // [here, withCodSpeed, actual caller]\n const gitDir = getGitDir(callingFile);\n if (gitDir === undefined) {\n throw new Error(\"Could not find a git repository\");\n }\n return path.relative(gitDir, callingFile);\n}\n\nfunction getGitDir(path: string): string | undefined {\n const dotGitPath = findUpSync(\".git\", {\n cwd: path,\n type: \"directory\",\n } as Options);\n return dotGitPath ? dirname(dotGitPath) : undefined;\n}\n"],"names":["toPath","getStackTrace","path"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.es5.js","sources":["../../../node_modules/.pnpm/locate-path@7.2.0/node_modules/locate-path/index.js","../../../node_modules/.pnpm/find-up@6.3.0/node_modules/find-up/index.js","../../../node_modules/.pnpm/stack-trace@1.0.0-pre2/node_modules/stack-trace/index.js","../src/index.ts"],"sourcesContent":["import process from 'node:process';\nimport path from 'node:path';\nimport fs, {promises as fsPromises} from 'node:fs';\nimport {fileURLToPath} from 'node:url';\nimport pLocate from 'p-locate';\n\nconst typeMappings = {\n\tdirectory: 'isDirectory',\n\tfile: 'isFile',\n};\n\nfunction checkType(type) {\n\tif (Object.hasOwnProperty.call(typeMappings, type)) {\n\t\treturn;\n\t}\n\n\tthrow new Error(`Invalid type specified: ${type}`);\n}\n\nconst matchType = (type, stat) => stat[typeMappings[type]]();\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport async function locatePath(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t\tconcurrency,\n\t\tpreserveOrder,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fsPromises.stat : fsPromises.lstat;\n\n\treturn pLocate(paths, async path_ => {\n\t\ttry {\n\t\t\tconst stat = await statFunction(path.resolve(cwd, path_));\n\t\t\treturn matchType(type, stat);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, {concurrency, preserveOrder});\n}\n\nexport function locatePathSync(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fs.statSync : fs.lstatSync;\n\n\tfor (const path_ of paths) {\n\t\ttry {\n\t\t\tconst stat = statFunction(path.resolve(cwd, path_), {\n\t\t\t\tthrowIfNoEntry: false,\n\t\t\t});\n\n\t\t\tif (!stat) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (matchType(type, stat)) {\n\t\t\t\treturn path_;\n\t\t\t}\n\t\t} catch {}\n\t}\n}\n","import path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport {locatePath, locatePathSync} from 'locate-path';\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport const findUpStop = Symbol('findUpStop');\n\nexport async function findUpMultiple(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) || '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = path.resolve(directory, options.stopAt || root);\n\tconst limit = options.limit || Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = async locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = await name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst foundPath = await runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport function findUpMultipleSync(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) || '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = options.stopAt || root;\n\tconst limit = options.limit || Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePathSync(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePathSync([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst foundPath = runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport async function findUp(name, options = {}) {\n\tconst matches = await findUpMultiple(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport function findUpSync(name, options = {}) {\n\tconst matches = findUpMultipleSync(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport {\n\tpathExists,\n\tpathExistsSync,\n} from 'path-exists';\n","export function get(belowFn) {\r\n const oldLimit = Error.stackTraceLimit;\r\n Error.stackTraceLimit = Infinity;\r\n\r\n const dummyObject = {};\r\n\r\n const v8Handler = Error.prepareStackTrace;\r\n Error.prepareStackTrace = function(dummyObject, v8StackTrace) {\r\n return v8StackTrace;\r\n };\r\n Error.captureStackTrace(dummyObject, belowFn || get);\r\n\r\n const v8StackTrace = dummyObject.stack;\r\n Error.prepareStackTrace = v8Handler;\r\n Error.stackTraceLimit = oldLimit;\r\n\r\n return v8StackTrace;\r\n}\r\n\r\nexport function parse(err) {\r\n if (!err.stack) {\r\n return [];\r\n }\r\n\r\n const lines = err.stack.split('\\n').slice(1);\r\n return lines\r\n .map(function(line) {\r\n if (line.match(/^\\s*[-]{4,}$/)) {\r\n return createParsedCallSite({\r\n fileName: line,\r\n lineNumber: null,\r\n functionName: null,\r\n typeName: null,\r\n methodName: null,\r\n columnNumber: null,\r\n 'native': null,\r\n });\r\n }\r\n\r\n const lineMatch = line.match(/at (?:(.+?)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/);\r\n if (!lineMatch) {\r\n return;\r\n }\r\n\r\n let object = null;\r\n let method = null;\r\n let functionName = null;\r\n let typeName = null;\r\n let methodName = null;\r\n let isNative = (lineMatch[5] === 'native');\r\n\r\n if (lineMatch[1]) {\r\n functionName = lineMatch[1];\r\n let methodStart = functionName.lastIndexOf('.');\r\n if (functionName[methodStart-1] == '.')\r\n methodStart--;\r\n if (methodStart > 0) {\r\n object = functionName.substr(0, methodStart);\r\n method = functionName.substr(methodStart + 1);\r\n const objectEnd = object.indexOf('.Module');\r\n if (objectEnd > 0) {\r\n functionName = functionName.substr(objectEnd + 1);\r\n object = object.substr(0, objectEnd);\r\n }\r\n }\r\n }\r\n\r\n if (method) {\r\n typeName = object;\r\n methodName = method;\r\n }\r\n\r\n if (method === '<anonymous>') {\r\n methodName = null;\r\n functionName = null;\r\n }\r\n\r\n const properties = {\r\n fileName: lineMatch[2] || null,\r\n lineNumber: parseInt(lineMatch[3], 10) || null,\r\n functionName: functionName,\r\n typeName: typeName,\r\n methodName: methodName,\r\n columnNumber: parseInt(lineMatch[4], 10) || null,\r\n 'native': isNative,\r\n };\r\n\r\n return createParsedCallSite(properties);\r\n })\r\n .filter(function(callSite) {\r\n return !!callSite;\r\n });\r\n}\r\n\r\nfunction CallSite(properties) {\r\n for (const property in properties) {\r\n this[property] = properties[property];\r\n }\r\n}\r\n\r\nconst strProperties = [\r\n 'this',\r\n 'typeName',\r\n 'functionName',\r\n 'methodName',\r\n 'fileName',\r\n 'lineNumber',\r\n 'columnNumber',\r\n 'function',\r\n 'evalOrigin'\r\n];\r\n\r\nconst boolProperties = [\r\n 'topLevel',\r\n 'eval',\r\n 'native',\r\n 'constructor'\r\n];\r\n\r\nstrProperties.forEach(function (property) {\r\n CallSite.prototype[property] = null;\r\n CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () {\r\n return this[property];\r\n }\r\n});\r\n\r\nboolProperties.forEach(function (property) {\r\n CallSite.prototype[property] = false;\r\n CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () {\r\n return this[property];\r\n }\r\n});\r\n\r\nfunction createParsedCallSite(properties) {\r\n return new CallSite(properties);\r\n}\r\n","import {\n Measurement,\n optimizeFunction,\n setupCore,\n teardownCore,\n} from \"@codspeed/core\";\nimport { findUpSync, Options } from \"find-up\";\nimport path, { dirname } from \"path\";\nimport { get as getStackTrace } from \"stack-trace\";\nimport { Bench, Task } from \"tinybench\";\nimport { fileURLToPath } from \"url\";\n\ndeclare const __VERSION__: string;\n\ntype CodSpeedBenchOptions = Task[\"opts\"] & {\n uri: string;\n};\n\nfunction isCodSpeedBenchOptions(\n options: Task[\"opts\"]\n): options is CodSpeedBenchOptions {\n return \"uri\" in options;\n}\n\nexport function withCodSpeed(bench: Bench): Bench {\n if (!Measurement.isInstrumented()) {\n const rawRun = bench.run;\n bench.run = async () => {\n console.warn(\n `[CodSpeed] ${bench.tasks.length} benches detected but no instrumentation found, falling back to tinybench`\n );\n return await rawRun.bind(bench)();\n };\n return bench;\n }\n\n const rawAdd = bench.add;\n bench.add = (name, fn, opts: CodSpeedBenchOptions) => {\n const callingFile = getCallingFile();\n const uri = `${callingFile}::${name}`;\n const options = Object.assign({}, opts ?? {}, { uri });\n return rawAdd.bind(bench)(name, fn, options);\n };\n const rootCallingFile = getCallingFile();\n\n bench.run = async () => {\n setupCore();\n console.log(`[CodSpeed] running with @codspeed/tinybench v${__VERSION__}`);\n for (const task of bench.tasks) {\n // run before hooks\n if (task.opts.beforeAll != null) {\n await task.opts.beforeAll.call(task);\n }\n if (task.opts.beforeEach != null) {\n await task.opts.beforeEach.call(task);\n }\n\n // run the actual benchmark, with instrumentation\n const uri = isCodSpeedBenchOptions(task.opts)\n ? task.opts.uri\n : `${rootCallingFile}::${task.name}`;\n await optimizeFunction(task.fn);\n await (async function __codspeed_root_frame__() {\n Measurement.startInstrumentation();\n await task.fn();\n Measurement.stopInstrumentation(uri);\n })();\n\n // run after hooks\n if (task.opts.afterEach != null) {\n await task.opts.afterEach.call(task);\n }\n if (task.opts.afterAll != null) {\n await task.opts.afterAll.call(task);\n }\n\n // print results\n console.log(` ✔ Measured ${uri}`);\n }\n console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);\n return bench.tasks;\n };\n teardownCore();\n return bench;\n}\n\nfunction getCallingFile(): string {\n const stack = getStackTrace();\n let callingFile = stack[2].getFileName(); // [here, withCodSpeed, actual caller]\n const gitDir = getGitDir(callingFile);\n if (gitDir === undefined) {\n throw new Error(\"Could not find a git repository\");\n }\n if (callingFile.startsWith(\"file://\")) {\n callingFile = fileURLToPath(callingFile);\n }\n return path.relative(gitDir, callingFile);\n}\n\nfunction getGitDir(path: string): string | undefined {\n const dotGitPath = findUpSync(\".git\", {\n cwd: path,\n type: \"directory\",\n } as Options);\n return dotGitPath ? dirname(dotGitPath) : undefined;\n}\n"],"names":["toPath","getStackTrace","fileURLToPath","path"],"mappings":"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","x_google_ignoreList":[0,1,2]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codspeed/tinybench-plugin",
3
- "version": "1.1.0",
3
+ "version": "2.1.0",
4
4
  "description": "tinybench compatibility layer for CodSpeed",
5
5
  "keywords": [
6
6
  "codspeed",
@@ -25,9 +25,9 @@
25
25
  "tinybench": "^2.4.0"
26
26
  },
27
27
  "dependencies": {
28
- "@codspeed/core": "^1.1.0",
28
+ "@codspeed/core": "^2.1.0",
29
29
  "find-up": "^6.3.0",
30
- "stack-trace": "1.0.0-pre1"
30
+ "stack-trace": "1.0.0-pre2"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "tinybench": "^2.3.0"