Skip to content

Commit

Permalink
Merge pull request #982 from forcedotcom/sm/dev-scripts
Browse files Browse the repository at this point in the history
refactor: dev-scripts
  • Loading branch information
mshanemc authored Nov 10, 2023
2 parents a702f2b + d5b345f commit a57f79f
Show file tree
Hide file tree
Showing 59 changed files with 631 additions and 665 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,11 @@ jobs:
matrix:
os: ['ubuntu-latest', 'windows-latest']
externalProjectGitUrl:
- https://github.com/salesforcecli/plugin-apex
- https://github.com/salesforcecli/plugin-auth
- https://github.com/salesforcecli/plugin-community
- https://github.com/salesforcecli/plugin-custom-metadata
- https://github.com/salesforcecli/plugin-data
- https://github.com/salesforcecli/plugin-env
- https://github.com/salesforcecli/plugin-limits
- https://github.com/salesforcecli/plugin-org
- https://github.com/salesforcecli/plugin-schema
Expand All @@ -40,7 +41,7 @@ jobs:
os: ${{ matrix.os }}
useCache: false
preSwapCommands: 'yarn upgrade jsforce@beta; npx yarn-deduplicate; yarn install'
preExternalBuildCommands: 'shx rm -rf node_modules/@salesforce/core/node_modules/jsforce shx rm -rf node_modules/@salesforce/sf-plugins-core/node_modules/@salesforce/core node_modules/@salesforce/cli-plugins-testkit/node_modules/@salesforce/core node_modules/@salesforce/source-tracking/node_modules/@salesforce/core node_modules/@salesforce/source-deploy-retrieve/node_modules/@salesforce/core'
preExternalBuildCommands: 'shx rm -rf node_modules/@salesforce/core/node_modules/jsforce shx rm -rf node_modules/@salesforce/sf-plugins-core/node_modules/@salesforce/core node_modules/@salesforce/cli-plugins-testkit/node_modules/@salesforce/core node_modules/@salesforce/source-tracking/node_modules/@salesforce/core node_modules/@salesforce/source-deploy-retrieve/node_modules/@salesforce/core node_modules/@salesforce/apex-node/node_modules/@salesforce/core'
secrets: inherit
# hidden until we fix source-testkit to better handle jwt
pdrNuts:
Expand Down
30 changes: 3 additions & 27 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,41 +59,17 @@
"ts-retry-promise": "^0.7.1"
},
"devDependencies": {
"@salesforce/dev-config": "^4.1.0",
"@salesforce/dev-scripts": "^5.11.0",
"@salesforce/prettier-config": "^0.0.3",
"@salesforce/dev-scripts": "^6.0.3",
"@salesforce/ts-sinon": "^1.4.18",
"@types/benchmark": "^2.1.3",
"@types/chai-string": "^1.4.4",
"@types/jsonwebtoken": "9.0.3",
"@types/lodash": "^4.14.200",
"@types/proper-lockfile": "^4.1.2",
"@types/shelljs": "0.8.13",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"benchmark": "^2.1.4",
"chai": "^4.3.10",
"chai-string": "^1.5.0",
"eslint": "^8.53.0",
"eslint-config-prettier": "^8.10.0",
"eslint-config-salesforce": "^2.0.2",
"eslint-config-salesforce-license": "^0.2.0",
"eslint-config-salesforce-typescript": "^1.1.2",
"eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-jsdoc": "^43.2.0",
"husky": "^7.0.4",
"lodash": "^4.17.21",
"mocha": "^9.1.3",
"nyc": "^15.1.0",
"prettier": "^2.8.7",
"pretty-quick": "^3.1.3",
"shelljs": "0.8.5",
"sinon": "^14.0.2",
"ts-node": "^10.4.0",
"ts-node": "^10.9.1",
"ttypescript": "^1.5.15",
"typescript": "^4.9.5",
"wireit": "^0.14.0"
"typescript": "^4.9.5"
},
"repository": {
"type": "git",
Expand Down
13 changes: 8 additions & 5 deletions src/config/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import { dirname as pathDirname, join as pathJoin } from 'path';
import * as fs from 'fs';
import { dirname as pathDirname, join as pathJoin } from 'node:path';
import * as fs from 'node:fs';
import { keyBy, parseJsonMap } from '@salesforce/kit';
import { Dictionary, ensure, isString, Nullable } from '@salesforce/ts-types';
import { Global } from '../global';
Expand Down Expand Up @@ -96,7 +96,7 @@ export const SF_ALLOWED_PROPERTIES = [
key: SfConfigProperties.DISABLE_TELEMETRY,
description: messages.getMessage(SfConfigProperties.DISABLE_TELEMETRY),
input: {
validator: (value: ConfigValue): boolean => value == null || ['true', 'false'].includes(value.toString()),
validator: (value: ConfigValue): boolean => value == null || isBooleanOrBooleanString(value),
failedMessage: messages.getMessage('invalidBooleanConfigValue'),
},
},
Expand Down Expand Up @@ -248,7 +248,7 @@ export const SFDX_ALLOWED_PROPERTIES = [
deprecated: true,
description: messages.getMessage(SfdxPropertyKeys.DISABLE_TELEMETRY),
input: {
validator: (value: ConfigValue): boolean => value == null || ['true', 'false'].includes(value.toString()),
validator: (value: ConfigValue): boolean => value == null || isBooleanOrBooleanString(value),
failedMessage: messages.getMessage('invalidBooleanConfigValue'),
},
},
Expand All @@ -265,7 +265,7 @@ export const SFDX_ALLOWED_PROPERTIES = [
newKey: 'org-metadata-rest-deploy',
deprecated: true,
input: {
validator: (value: ConfigValue): boolean => value != null && ['true', 'false'].includes(value.toString()),
validator: (value: ConfigValue): boolean => value != null && isBooleanOrBooleanString(value),
failedMessage: messages.getMessage('invalidBooleanConfigValue'),
},
},
Expand Down Expand Up @@ -662,3 +662,6 @@ const stateFromSfdxFileSync = (path: string, config: Config): LWWState<ConfigPro
return {};
}
};

const isBooleanOrBooleanString = (value: unknown): boolean =>
(typeof value === 'string' && ['true', 'false'].includes(value)) || typeof value === 'boolean';
8 changes: 4 additions & 4 deletions src/config/configFile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import * as fs from 'fs';
import { constants as fsConstants, Stats as fsStats } from 'fs';
import { homedir as osHomedir } from 'os';
import { join as pathJoin } from 'path';
import * as fs from 'node:fs';
import { constants as fsConstants, Stats as fsStats } from 'node:fs';
import { homedir as osHomedir } from 'node:os';
import { join as pathJoin } from 'node:path';
import { parseJsonMap } from '@salesforce/kit';
import { Global } from '../global';
import { Logger } from '../logger/logger';
Expand Down
4 changes: 2 additions & 2 deletions src/config/configStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ export abstract class BaseConfigStore<
if (!this.crypto) throw new SfError('crypto is not initialized', 'CryptoNotInitializedError');
if (!isString(value))
throw new SfError(
`can only encrypt strings but found: ${typeof value} : ${value.toString()}`,
`can only encrypt strings but found: ${typeof value} : ${JSON.stringify(value)}`,
'InvalidCryptoValueError'
);
return this.crypto.isEncrypted(value) ? value : this.crypto.encrypt(value);
Expand All @@ -367,7 +367,7 @@ export abstract class BaseConfigStore<
if (!this.crypto) throw new SfError('crypto is not initialized', 'CryptoNotInitializedError');
if (!isString(value))
throw new SfError(
`can only encrypt strings but found: ${typeof value} : ${value.toString()}`,
`can only encrypt strings but found: ${typeof value} : ${JSON.stringify(value)}`,
'InvalidCryptoValueError'
);
return this.crypto.isEncrypted(value) ? this.crypto.decrypt(value) : value;
Expand Down
2 changes: 1 addition & 1 deletion src/config/envVars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import { join as pathJoin } from 'path';
import { join as pathJoin } from 'node:path';
import { Dictionary, Nullable } from '@salesforce/ts-types';
import { camelCase, snakeCase } from 'change-case';
import { Env } from '@salesforce/kit';
Expand Down
2 changes: 1 addition & 1 deletion src/config/lwwMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export const stateFromContents = <P extends ConfigContents>(contents: P, timesta

export class LWWMap<P extends ConfigContents> {
/** map of key to LWWRegister. Used for managing conflicts */
#data = new Map<string, LWWRegister<unknown | typeof SYMBOL_FOR_DELETED>>();
#data = new Map<string, LWWRegister<unknown>>();

public constructor(state?: LWWState<P>) {
// create a new register for each key in the initial state
Expand Down
6 changes: 3 additions & 3 deletions src/crypto/crypto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
*/
/* eslint-disable @typescript-eslint/ban-types */

import * as crypto from 'crypto';
import * as os from 'os';
import { join as pathJoin } from 'path';
import * as crypto from 'node:crypto';
import * as os from 'node:os';
import { join as pathJoin } from 'node:path';
import { ensure, Nullable, Optional } from '@salesforce/ts-types';
import { AsyncOptionalCreatable, env } from '@salesforce/kit';
import { Logger } from '../logger/logger';
Expand Down
14 changes: 7 additions & 7 deletions src/crypto/keyChainImpl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import * as childProcess from 'child_process';
import * as nodeFs from 'fs';
import * as fs from 'fs';
import * as os from 'os';
import { homedir } from 'os';
import * as path from 'path';
import * as childProcess from 'node:child_process';
import * as nodeFs from 'node:fs';
import * as fs from 'node:fs';
import * as os from 'node:os';
import { homedir } from 'node:os';
import * as path from 'node:path';
import { asString, ensureString, Nullable } from '@salesforce/ts-types';
import { parseJsonMap } from '@salesforce/kit';
import { Global } from '../global';
Expand Down Expand Up @@ -46,7 +46,7 @@ const isExe = (mode: number, gid: number, uid: number): boolean => {

return Boolean(
mode & parseInt('0001', 8) ||
(mode & parseInt('0010', 8) && process.getgid && gid === process.getgid()) ||
Boolean(mode & parseInt('0010', 8) && process.getgid && gid === process.getgid()) ||
(mode & parseInt('0100', 8) && process.getuid && uid === process.getuid())
);
};
Expand Down
2 changes: 1 addition & 1 deletion src/crypto/secureBuffer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import * as crypto from 'crypto';
import * as crypto from 'node:crypto';
import { ensure, Optional } from '@salesforce/ts-types';

const cipherName = 'aes-256-cbc';
Expand Down
6 changes: 3 additions & 3 deletions src/global.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import * as fs from 'fs';
import * as os from 'os';
import * as path from 'path';
import * as fs from 'node:fs';
import * as os from 'node:os';
import * as path from 'node:path';
import { env } from '@salesforce/kit';
import { SfError } from './sfError';

Expand Down
6 changes: 3 additions & 3 deletions src/logger/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import * as os from 'os';
import * as path from 'path';
import * as os from 'node:os';
import * as path from 'node:path';

import { Logger as PinoLogger, pino } from 'pino';
import { Env } from '@salesforce/kit';
Expand Down Expand Up @@ -171,7 +171,7 @@ export class Logger {
level,
enabled,
};
if (options.useMemoryLogger || Global.getEnvironmentMode() === Mode.TEST || !enabled) {
if (Boolean(options.useMemoryLogger) || Global.getEnvironmentMode() === Mode.TEST || !enabled) {
this.memoryLogger = new MemoryLogger();
this.pinoLogger = pino(
{
Expand Down
2 changes: 1 addition & 1 deletion src/logger/memoryLogger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import { Writable } from 'stream';
import { Writable } from 'node:stream';
import { unwrapArray } from '../util/unwrapArray';
import { filterSecrets } from './filters';

Expand Down
2 changes: 1 addition & 1 deletion src/logger/transformStream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import { pipeline, Transform } from 'stream';
import { pipeline, Transform } from 'node:stream';
import { unwrapArray } from '../util/unwrapArray';
import { filterSecrets } from './filters';

Expand Down
10 changes: 5 additions & 5 deletions src/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import * as fs from 'fs';
import * as os from 'os';
import * as path from 'path';
import * as util from 'util';
import * as fs from 'node:fs';
import * as os from 'node:os';
import * as path from 'node:path';
import * as util from 'node:util';
import { AnyJson, asString, ensureJsonMap, ensureString, isJsonMap, isObject } from '@salesforce/ts-types';
import { ensureArray, NamedError, upperFirst } from '@salesforce/kit';
import { SfError } from './sfError';
Expand Down Expand Up @@ -544,7 +544,7 @@ export class Messages<T extends string> {
// 'myMessage' -> `MyMessageWarning`
// 'myMessageError' -> `MyMessageError`
// 'warning.myMessage' -> `MyMessageWarning`
const name = `${upperFirst(key.replace(searchValue, ''))}${labelRegExp.exec(key) || preserveName ? '' : label}`;
const name = `${upperFirst(key.replace(searchValue, ''))}${labelRegExp.exec(key) ?? preserveName ? '' : label}`;
const message = this.getMessage(key, tokens);
let actions;
try {
Expand Down
12 changes: 6 additions & 6 deletions src/org/authInfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
*/
/* eslint-disable class-methods-use-this */

import { randomBytes } from 'crypto';
import { resolve as pathResolve } from 'path';
import * as os from 'os';
import * as fs from 'fs';
import { randomBytes } from 'node:crypto';
import { resolve as pathResolve } from 'node:path';
import * as os from 'node:os';
import * as fs from 'node:fs';
import { Record as RecordType } from 'jsforce';
import { AsyncOptionalCreatable, cloneJson, env, isEmpty, parseJson, parseJsonMap } from '@salesforce/kit';
import {
Expand Down Expand Up @@ -394,7 +394,7 @@ export class AuthInfo extends AsyncOptionalCreatable<AuthInfo.Options> {
const logger = await Logger.child('Common', { tag: 'identifyPossibleScratchOrgs' });

// return if we already know the hub org, we know it is a devhub or prod-like, or no orgId present
if (fields.isDevHub || fields.devHubUsername || !fields.orgId) return;
if (Boolean(fields.isDevHub) || Boolean(fields.devHubUsername) || !fields.orgId) return;

logger.debug('getting devHubs and prod orgs to identify scratch orgs and sandboxes');

Expand Down Expand Up @@ -715,7 +715,7 @@ export class AuthInfo extends AsyncOptionalCreatable<AuthInfo.Options> {
*/
public async handleAliasAndDefaultSettings(sideEffects: AuthSideEffects): Promise<void> {
if (
sideEffects.alias ||
Boolean(sideEffects.alias) ||
sideEffects.setDefault ||
sideEffects.setDefaultDevHub ||
typeof sideEffects.setTracksSource === 'boolean'
Expand Down
2 changes: 1 addition & 1 deletion src/org/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

/* eslint-disable @typescript-eslint/ban-ts-comment */

import { URL } from 'url';
import { URL } from 'node:url';
import { AsyncResult, DeployOptions, DeployResultLocator } from 'jsforce/api/metadata';
import { Duration, env, maxBy } from '@salesforce/kit';
import { asString, ensure, isString, JsonMap, Optional } from '@salesforce/ts-types';
Expand Down
4 changes: 2 additions & 2 deletions src/org/org.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
*/
/* eslint-disable class-methods-use-this */

import { join as pathJoin } from 'path';
import * as fs from 'fs';
import { join as pathJoin } from 'node:path';
import * as fs from 'node:fs';
import { AsyncOptionalCreatable, Duration } from '@salesforce/kit';
import {
AnyFunction,
Expand Down
2 changes: 1 addition & 1 deletion src/org/orgConfigProperties.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import { join as pathJoin } from 'path';
import { join as pathJoin } from 'node:path';
import { isString } from '@salesforce/ts-types';
import { ConfigValue } from '../config/configStackTypes';
import { Messages } from '../messages';
Expand Down
2 changes: 1 addition & 1 deletion src/org/permissionSetAssignment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import { EOL } from 'os';
import { EOL } from 'node:os';
import { mapKeys, upperFirst } from '@salesforce/kit';
import type { Optional } from '@salesforce/ts-types';
import type { QueryResult, Record } from 'jsforce';
Expand Down
2 changes: 1 addition & 1 deletion src/org/scratchOrgInfoGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import { promises as fs } from 'fs';
import { promises as fs } from 'node:fs';
import { parseJson } from '@salesforce/kit';
import { ensureString } from '@salesforce/ts-types';
import { SfProjectJson } from '../sfProject';
Expand Down
4 changes: 2 additions & 2 deletions src/org/scratchOrgSettingsGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import * as path from 'path';
import * as path from 'node:path';
import { isEmpty, env, upperFirst, Duration } from '@salesforce/kit';
import { ensureObject, JsonMap } from '@salesforce/ts-types';
import * as js2xmlparser from 'js2xmlparser';
Expand Down Expand Up @@ -291,7 +291,7 @@ export default class SettingsGenerator {
fullName: string;
problem: string;
};
if (status !== RequestStatus.Succeeded) {
if (status !== RequestStatus.Succeeded.toString()) {
const componentFailures = ensureObject<{
componentFailures: FailureMessage | FailureMessage[];
}>(result.details).componentFailures;
Expand Down
2 changes: 1 addition & 1 deletion src/org/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

import { EOL } from 'os';
import { EOL } from 'node:os';
import { AsyncCreatable, lowerFirst, mapKeys, omit, parseJsonMap, upperFirst } from '@salesforce/kit';
import { asJsonArray, asNumber, ensureJsonMap, ensureString, isJsonMap, Many } from '@salesforce/ts-types';
import type { HttpRequest, HttpResponse, QueryResult, Schema, SObjectUpdateRecord } from 'jsforce';
Expand Down
Loading

4 comments on commit a57f79f

@svc-cli-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logger Benchmarks - ubuntu-latest

Benchmark suite Current: a57f79f Previous: d5b345f Ratio
Child logger creation 481339 ops/sec (±2.90%) 295862 ops/sec (±2.84%) 0.61
Logging a string on root logger 837909 ops/sec (±5.75%) 498229 ops/sec (±8.91%) 0.59
Logging an object on root logger 534496 ops/sec (±9.40%) 341194 ops/sec (±8.77%) 0.64
Logging an object with a message on root logger 8802 ops/sec (±201.94%) 276297 ops/sec (±13.41%) 31.39
Logging an object with a redacted prop on root logger 381027 ops/sec (±12.02%) 271319 ops/sec (±13.22%) 0.71
Logging a nested 3-level object on root logger 299466 ops/sec (±7.37%) 1488 ops/sec (±234.43%) 0.004968844543287051

This comment was automatically generated by workflow using github-action-benchmark.

@svc-cli-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Logger Benchmarks - ubuntu-latest'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: a57f79f Previous: d5b345f Ratio
Logging an object with a message on root logger 8802 ops/sec (±201.94%) 276297 ops/sec (±13.41%) 31.39

This comment was automatically generated by workflow using github-action-benchmark.

@svc-cli-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logger Benchmarks - windows-latest

Benchmark suite Current: a57f79f Previous: d5b345f Ratio
Child logger creation 170635 ops/sec (±1.63%) 319236 ops/sec (±0.76%) 1.87
Logging a string on root logger 394456 ops/sec (±19.31%) 812081 ops/sec (±5.57%) 2.06
Logging an object on root logger 305057 ops/sec (±18.81%) 602785 ops/sec (±4.91%) 1.98
Logging an object with a message on root logger 161573 ops/sec (±19.58%) 5769 ops/sec (±207.36%) 0.035705223026124416
Logging an object with a redacted prop on root logger 186822 ops/sec (±21.99%) 455806 ops/sec (±12.88%) 2.44
Logging a nested 3-level object on root logger 134173 ops/sec (±22.19%) 334782 ops/sec (±5.46%) 2.50

This comment was automatically generated by workflow using github-action-benchmark.

@svc-cli-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Logger Benchmarks - windows-latest'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: a57f79f Previous: d5b345f Ratio
Logging a string on root logger 394456 ops/sec (±19.31%) 812081 ops/sec (±5.57%) 2.06
Logging an object with a redacted prop on root logger 186822 ops/sec (±21.99%) 455806 ops/sec (±12.88%) 2.44
Logging a nested 3-level object on root logger 134173 ops/sec (±22.19%) 334782 ops/sec (±5.46%) 2.50

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.