@sgohlke/stryker-log-ignorer 2.0.6 → 2.1.1

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/README.md CHANGED
@@ -18,11 +18,11 @@ In the optional **logignore** option you can define the object names (i.e. the n
18
18
 
19
19
  ```json
20
20
  {
21
- "ignorers": ["log-ignore"],
22
- "plugins": ["@stryker-mutator/*", "@sgohlke/stryker-log-ignorer"],
23
- "logignore": {
24
- "objectNames": ["console", "logger"]
25
- }
21
+ "ignorers": ["log-ignore"],
22
+ "plugins": ["@stryker-mutator/*", "@sgohlke/stryker-log-ignorer"],
23
+ "logignore": {
24
+ "objectNames": ["console", "logger"]
25
+ }
26
26
  }
27
27
  ```
28
28
 
@@ -35,10 +35,10 @@ Example code:
35
35
  ```typescript
36
36
  import { MyFavoriteLogger } from 'some-logger-module'
37
37
  export function doSomething(): void {
38
- const logger = new MyFavoriteLogger('loggername')
39
- console.log('We do something here!')
40
- // Some imaginary code here!
41
- logger.info('We finished doing something!')
38
+ const logger = new MyFavoriteLogger('loggername')
39
+ console.log('We do something here!')
40
+ // Some imaginary code here!
41
+ logger.info('We finished doing something!')
42
42
  }
43
43
  ```
44
44
 
package/build/index.cjs CHANGED
@@ -1,50 +1,62 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;// src/index.ts
2
-
3
-
4
-
5
-
6
-
7
- var _plugin = require('@stryker-mutator/api/plugin');
8
- var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);
9
- var LogIgnorer = (_class = class {
10
- static __initStatic() {this.inject = [_plugin.commonTokens.options]}
11
-
12
- constructor(options) {
13
- this.options = _optionalChain([options, 'optionalAccess', _ => _.logignore]);
14
- }
15
- shouldIgnore(path) {
16
- const loggerObjectNames = _nullishCoalesce(_optionalChain([this, 'access', _2 => _2.options, 'optionalAccess', _3 => _3.objectNames]), () => ( ["console"]));
17
- if (path.isExpressionStatement() && path.node.expression.type === "CallExpression" && path.node.expression.callee.type === "MemberExpression" && path.node.expression.callee.object.type === "Identifier" && loggerObjectNames.includes(path.node.expression.callee.object.name)) {
18
- return `We are not interested in testing ${loggerObjectNames} statements.`;
19
- }
20
- }
21
- }, _class.__initStatic(), _class);
22
- logIgnorerFactory.inject = _plugin.tokens.call(void 0, _plugin.commonTokens.injector);
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ //#region \0rolldown/runtime.js
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
+ key = keys[i];
13
+ if (!__hasOwnProp.call(to, key) && key !== except) {
14
+ __defProp(to, key, {
15
+ get: ((k) => from[k]).bind(null, key),
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ }
20
+ }
21
+ return to;
22
+ };
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
27
+
28
+ //#endregion
29
+ let _stryker_mutator_api_plugin = require("@stryker-mutator/api/plugin");
30
+ let node_fs = require("node:fs");
31
+ node_fs = __toESM(node_fs, 1);
32
+
33
+ //#region src/index.ts
34
+ var LogIgnorer = class {
35
+ static inject = [_stryker_mutator_api_plugin.commonTokens.options];
36
+ options;
37
+ constructor(options) {
38
+ this.options = options?.logignore;
39
+ }
40
+ shouldIgnore(path) {
41
+ const loggerObjectNames = this.options?.objectNames ?? ["console"];
42
+ const { node } = path;
43
+ if (node.type === "ExpressionStatement" && node.expression.type === "CallExpression" && node.expression.callee.type === "MemberExpression" && node.expression.callee.object.type === "Identifier" && loggerObjectNames.includes(node.expression.callee.object.name)) return `We are not interested in testing ${loggerObjectNames} statements.`;
44
+ }
45
+ };
46
+ logIgnorerFactory.inject = (0, _stryker_mutator_api_plugin.tokens)(_stryker_mutator_api_plugin.commonTokens.injector);
23
47
  function logIgnorerFactory(injector) {
24
- return injector.injectClass(LogIgnorer);
48
+ return injector.injectClass(LogIgnorer);
25
49
  }
26
50
  function createLogIgnorerFactory() {
27
- return logIgnorerFactory;
51
+ return logIgnorerFactory;
28
52
  }
29
- var strykerPlugins = [
30
- _plugin.declareFactoryPlugin.call(void 0,
31
- _plugin.PluginKind.Ignore,
32
- "log-ignore",
33
- createLogIgnorerFactory()
34
- )
35
- ];
36
- var strykerValidationSchema = JSON.parse(
37
- // eslint-disable-next-line security/detect-non-literal-fs-filename
38
- _fs2.default.readFileSync(
39
- new URL("../schema/log-ignorer-options.json", import.meta.url),
40
- "utf8"
41
- )
42
- );
43
-
44
-
45
-
46
-
47
-
48
-
49
- exports.LogIgnorer = LogIgnorer; exports.createLogIgnorerFactory = createLogIgnorerFactory; exports.logIgnorerFactory = logIgnorerFactory; exports.strykerPlugins = strykerPlugins; exports.strykerValidationSchema = strykerValidationSchema;
53
+ const strykerPlugins = [(0, _stryker_mutator_api_plugin.declareFactoryPlugin)(_stryker_mutator_api_plugin.PluginKind.Ignore, "log-ignore", createLogIgnorerFactory())];
54
+ const strykerValidationSchema = JSON.parse(node_fs.default.readFileSync(new URL("../schema/log-ignorer-options.json", require("url").pathToFileURL(__filename).href), "utf8"));
55
+
56
+ //#endregion
57
+ exports.LogIgnorer = LogIgnorer;
58
+ exports.createLogIgnorerFactory = createLogIgnorerFactory;
59
+ exports.logIgnorerFactory = logIgnorerFactory;
60
+ exports.strykerPlugins = strykerPlugins;
61
+ exports.strykerValidationSchema = strykerValidationSchema;
50
62
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/stryker-log-ignorer/stryker-log-ignorer/build/index.cjs","../src/index.ts"],"names":[],"mappings":"AAAA;ACGA;AACI;AACA;AACA;AACA;AAAA,qDACG;AAEP,gEAAe;AAmBf,IAAM,WAAA,YAAN,MAAoC;AAAA,EAChC,4BAAc,OAAA,EAAS,CAAC,oBAAA,CAAa,OAAO,EAAA;AAAA,EACzB;AAAA,EAEnB,WAAA,CAAY,OAAA,EAAsC;AAC9C,IAAA,IAAA,CAAK,QAAA,kBAAU,OAAA,2BAAS,WAAA;AAAA,EAC5B;AAAA,EAEA,YAAA,CAAa,IAAA,EAAoC;AAC7C,IAAA,MAAM,kBAAA,mCAAoB,IAAA,qBAAK,OAAA,6BAAS,aAAA,UAAe,CAAC,SAAS,GAAA;AACjE,IAAA,GAAA,CACI,IAAA,CAAK,qBAAA,CAAsB,EAAA,GAC3B,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,KAAA,IAAS,iBAAA,GAC9B,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,MAAA,CAAO,KAAA,IAAS,mBAAA,GACrC,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,MAAA,CAAO,MAAA,CAAO,KAAA,IAAS,aAAA,GAC5C,iBAAA,CAAkB,QAAA,CAAS,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA,EACpE;AACE,MAAA,OAAO,CAAA,iCAAA,EAAoC,iBAAiB,CAAA,YAAA,CAAA;AAAA,IAChE;AAAA,EACJ;AACJ,iCAAA;AAEA,iBAAA,CAAkB,OAAA,EAAS,4BAAA,oBAAO,CAAa,QAAQ,CAAA;AAEvD,SAAS,iBAAA,CAAkB,QAAA,EAA+C;AACtE,EAAA,OAAO,QAAA,CAAS,WAAA,CAAY,UAAU,CAAA;AAC1C;AAEA,SAAS,uBAAA,CAAA,EAGP;AACE,EAAA,OAAO,iBAAA;AACX;AAEA,IAAM,eAAA,EAAiB;AAAA,EACnB,0CAAA;AAAA,IACI,kBAAA,CAAW,MAAA;AAAA,IACX,YAAA;AAAA,IACA,uBAAA,CAAwB;AAAA,EAC5B;AACJ,CAAA;AAGA,IAAM,wBAAA,EACF,IAAA,CAAK,KAAA;AAAA;AAAA,EAED,YAAA,CAAG,YAAA;AAAA,IACC,IAAI,GAAA,CAAI,oCAAA,EAAsC,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AAAA,IAC7D;AAAA,EACJ;AACJ,CAAA;ADtCJ;AACE;AACA;AACA;AACA;AACA;AACF,8OAAC","file":"/home/runner/work/stryker-log-ignorer/stryker-log-ignorer/build/index.cjs","sourcesContent":[null,"import type { StrykerOptions } from '@stryker-mutator/api/core'\nimport type { Ignorer, NodePath } from '@stryker-mutator/api/ignore'\nimport type { Injector, PluginContext } from '@stryker-mutator/api/plugin'\nimport {\n PluginKind,\n commonTokens,\n declareFactoryPlugin,\n tokens,\n} from '@stryker-mutator/api/plugin' // eslint-disable-line @typescript-eslint/no-duplicate-imports\n\nimport fs from 'node:fs'\n\n/**\n * Configuration for @sgohlke/stryker-log-ignorer\n */\ninterface IgnorerOptions {\n /**\n * Specify the object names of the logger objects to be ignored. Defaults to [\"console\"]\n */\n objectNames?: string[]\n}\n\ninterface LogIgnorerOptions extends StrykerOptions {\n logignore?: IgnorerOptions\n}\n\n/*\n * LogIgnorer provides functionality to ignore log calls for provided logger object names.\n */\nclass LogIgnorer implements Ignorer {\n public static inject = [commonTokens.options] as const\n protected readonly options?: IgnorerOptions\n\n constructor(options?: Partial<LogIgnorerOptions>) {\n this.options = options?.logignore\n }\n\n shouldIgnore(path: NodePath): string | undefined {\n const loggerObjectNames = this.options?.objectNames ?? ['console']\n if (\n path.isExpressionStatement() &&\n path.node.expression.type === 'CallExpression' &&\n path.node.expression.callee.type === 'MemberExpression' &&\n path.node.expression.callee.object.type === 'Identifier' &&\n loggerObjectNames.includes(path.node.expression.callee.object.name)\n ) {\n return `We are not interested in testing ${loggerObjectNames} statements.`\n }\n }\n}\n\nlogIgnorerFactory.inject = tokens(commonTokens.injector)\n\nfunction logIgnorerFactory(injector: Injector<PluginContext>): LogIgnorer {\n return injector.injectClass(LogIgnorer)\n}\n\nfunction createLogIgnorerFactory(): {\n (injector: Injector<PluginContext>): LogIgnorer\n inject: ['$injector']\n} {\n return logIgnorerFactory\n}\n\nconst strykerPlugins = [\n declareFactoryPlugin(\n PluginKind.Ignore,\n 'log-ignore',\n createLogIgnorerFactory(),\n ),\n]\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nconst strykerValidationSchema: typeof import('../schema/log-ignorer-options.json') =\n JSON.parse(\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n fs.readFileSync(\n new URL('../schema/log-ignorer-options.json', import.meta.url),\n 'utf8',\n ),\n )\n\nexport {\n LogIgnorer,\n createLogIgnorerFactory,\n logIgnorerFactory,\n strykerPlugins,\n strykerValidationSchema,\n}\nexport type { IgnorerOptions, LogIgnorerOptions }\n"]}
1
+ {"version":3,"file":"index.cjs","names":["commonTokens","PluginKind","fs"],"sources":["../src/index.ts"],"sourcesContent":["import type { StrykerOptions } from '@stryker-mutator/api/core'\nimport type { Ignorer, NodePath } from '@stryker-mutator/api/ignore'\nimport type { Injector, PluginContext } from '@stryker-mutator/api/plugin'\nimport { PluginKind, commonTokens, declareFactoryPlugin, tokens } from '@stryker-mutator/api/plugin' // eslint-disable-line @typescript-eslint/no-duplicate-imports\n\nimport fs from 'node:fs'\n\n/**\n * Configuration for @sgohlke/stryker-log-ignorer\n */\ninterface IgnorerOptions {\n /**\n * Specify the object names of the logger objects to be ignored. Defaults to [\"console\"]\n */\n objectNames?: string[]\n}\n\ninterface LogIgnorerOptions extends StrykerOptions {\n logignore?: IgnorerOptions\n}\n\n/*\n * LogIgnorer provides functionality to ignore log calls for provided logger object names.\n */\nclass LogIgnorer implements Ignorer {\n public static inject = [commonTokens.options] as const\n protected readonly options?: IgnorerOptions\n\n constructor(options?: Partial<LogIgnorerOptions>) {\n this.options = options?.logignore\n }\n\n shouldIgnore(path: NodePath): string | undefined {\n const loggerObjectNames = this.options?.objectNames ?? ['console']\n const { node } = path\n if (\n node.type === 'ExpressionStatement' &&\n node.expression.type === 'CallExpression' &&\n node.expression.callee.type === 'MemberExpression' &&\n node.expression.callee.object.type === 'Identifier' &&\n loggerObjectNames.includes(node.expression.callee.object.name)\n ) {\n return `We are not interested in testing ${loggerObjectNames} statements.`\n }\n }\n}\n\nlogIgnorerFactory.inject = tokens(commonTokens.injector)\n\nfunction logIgnorerFactory(injector: Injector<PluginContext>): LogIgnorer {\n return injector.injectClass(LogIgnorer)\n}\n\nfunction createLogIgnorerFactory(): {\n (injector: Injector<PluginContext>): LogIgnorer\n inject: ['$injector']\n} {\n return logIgnorerFactory\n}\n\nconst strykerPlugins = [\n declareFactoryPlugin(PluginKind.Ignore, 'log-ignore', createLogIgnorerFactory()),\n]\n\nconst strykerValidationSchema: Record<string, unknown> = JSON.parse(\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n fs.readFileSync(new URL('../schema/log-ignorer-options.json', import.meta.url), 'utf8'),\n)\n\nexport {\n LogIgnorer,\n createLogIgnorerFactory,\n logIgnorerFactory,\n strykerPlugins,\n strykerValidationSchema,\n}\nexport type { IgnorerOptions, LogIgnorerOptions }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAM,aAAN,MAAoC;CAClC,OAAc,SAAS,CAACA,yCAAa,OAAO;CAC5C,AAAmB;CAEnB,YAAY,SAAsC;EAChD,KAAK,UAAU,SAAS;CAC1B;CAEA,aAAa,MAAoC;EAC/C,MAAM,oBAAoB,KAAK,SAAS,eAAe,CAAC,SAAS;EACjE,MAAM,EAAE,SAAS;EACjB,IACE,KAAK,SAAS,yBACd,KAAK,WAAW,SAAS,oBACzB,KAAK,WAAW,OAAO,SAAS,sBAChC,KAAK,WAAW,OAAO,OAAO,SAAS,gBACvC,kBAAkB,SAAS,KAAK,WAAW,OAAO,OAAO,IAAI,GAE7D,OAAO,oCAAoC,kBAAkB;CAEjE;AACF;AAEA,kBAAkB,iDAAgBA,yCAAa,QAAQ;AAEvD,SAAS,kBAAkB,UAA+C;CACxE,OAAO,SAAS,YAAY,UAAU;AACxC;AAEA,SAAS,0BAGP;CACA,OAAO;AACT;AAEA,MAAM,iBAAiB,uDACAC,uCAAW,QAAQ,cAAc,wBAAwB,CAAC,CACjF;AAEA,MAAM,0BAAmD,KAAK,MAE5DC,gBAAG,aAAa,IAAI,IAAI,mFAAqD,GAAG,MAAM,CACxF"}
package/build/index.d.cts CHANGED
@@ -1,78 +1,35 @@
1
- import * as _stryker_mutator_api_plugin from '@stryker-mutator/api/plugin';
2
- import { Injector, PluginContext, PluginKind } from '@stryker-mutator/api/plugin';
3
- import { StrykerOptions } from '@stryker-mutator/api/core';
4
- import { Ignorer, NodePath } from '@stryker-mutator/api/ignore';
5
-
6
- var $schema = "http://json-schema.org/draft-07/schema";
7
- var type = "object";
8
- var title = "LogIgnorerOptions";
9
- var additionalProperties = false;
10
- var properties = {
11
- logignore: {
12
- description: "Configuration for @sgohlke/stryker-log-ignorer",
13
- title: "IgnorerOptions",
14
- additionalProperties: false,
15
- type: "object",
16
- "default": {
17
- },
18
- properties: {
19
- objectNames: {
20
- description: "Specify the object names of the logger objects to be ignored. Defaults to [\"console\"]",
21
- type: "array",
22
- items: {
23
- type: "string"
24
- },
25
- "default": [
26
- "console"
27
- ]
28
- }
29
- }
30
- }
31
- };
32
- var logIgnorerOptions = {
33
- $schema: $schema,
34
- type: type,
35
- title: title,
36
- additionalProperties: additionalProperties,
37
- properties: properties
38
- };
39
-
40
- declare const ___schema_log_ignorer_options_json_$schema: typeof $schema;
41
- declare const ___schema_log_ignorer_options_json_additionalProperties: typeof additionalProperties;
42
- declare const ___schema_log_ignorer_options_json_properties: typeof properties;
43
- declare const ___schema_log_ignorer_options_json_title: typeof title;
44
- declare const ___schema_log_ignorer_options_json_type: typeof type;
45
- declare namespace ___schema_log_ignorer_options_json {
46
- export { ___schema_log_ignorer_options_json_$schema as $schema, ___schema_log_ignorer_options_json_additionalProperties as additionalProperties, logIgnorerOptions as default, ___schema_log_ignorer_options_json_properties as properties, ___schema_log_ignorer_options_json_title as title, ___schema_log_ignorer_options_json_type as type };
47
- }
48
-
1
+ import { StrykerOptions } from "@stryker-mutator/api/core";
2
+ import { Ignorer, NodePath } from "@stryker-mutator/api/ignore";
3
+ import { Injector, PluginContext, PluginKind } from "@stryker-mutator/api/plugin";
4
+ //#region src/index.d.ts
49
5
  /**
50
6
  * Configuration for @sgohlke/stryker-log-ignorer
51
7
  */
52
8
  interface IgnorerOptions {
53
- /**
54
- * Specify the object names of the logger objects to be ignored. Defaults to ["console"]
55
- */
56
- objectNames?: string[];
9
+ /**
10
+ * Specify the object names of the logger objects to be ignored. Defaults to ["console"]
11
+ */
12
+ objectNames?: string[];
57
13
  }
58
14
  interface LogIgnorerOptions extends StrykerOptions {
59
- logignore?: IgnorerOptions;
15
+ logignore?: IgnorerOptions;
60
16
  }
61
17
  declare class LogIgnorer implements Ignorer {
62
- static inject: readonly ["options"];
63
- protected readonly options?: IgnorerOptions;
64
- constructor(options?: Partial<LogIgnorerOptions>);
65
- shouldIgnore(path: NodePath): string | undefined;
18
+ static inject: readonly ["options"];
19
+ protected readonly options?: IgnorerOptions;
20
+ constructor(options?: Partial<LogIgnorerOptions>);
21
+ shouldIgnore(path: NodePath): string | undefined;
66
22
  }
67
23
  declare function logIgnorerFactory(injector: Injector<PluginContext>): LogIgnorer;
68
24
  declare namespace logIgnorerFactory {
69
- var inject: ["$injector"];
25
+ var inject: ["$injector"];
70
26
  }
71
27
  declare function createLogIgnorerFactory(): {
72
- (injector: Injector<PluginContext>): LogIgnorer;
73
- inject: ['$injector'];
28
+ (injector: Injector<PluginContext>): LogIgnorer;
29
+ inject: ['$injector'];
74
30
  };
75
- declare const strykerPlugins: _stryker_mutator_api_plugin.FactoryPlugin<PluginKind.Ignore, ["$injector"]>[];
76
- declare const strykerValidationSchema: typeof ___schema_log_ignorer_options_json;
77
-
31
+ declare const strykerPlugins: import("@stryker-mutator/api/plugin").FactoryPlugin<PluginKind.Ignore, ["$injector"]>[];
32
+ declare const strykerValidationSchema: Record<string, unknown>;
33
+ //#endregion
78
34
  export { type IgnorerOptions, LogIgnorer, type LogIgnorerOptions, createLogIgnorerFactory, logIgnorerFactory, strykerPlugins, strykerValidationSchema };
35
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1,35 @@
1
+ import { Injector, PluginContext, PluginKind } from "@stryker-mutator/api/plugin";
2
+ import { StrykerOptions } from "@stryker-mutator/api/core";
3
+ import { Ignorer, NodePath } from "@stryker-mutator/api/ignore";
4
+ //#region src/index.d.ts
5
+ /**
6
+ * Configuration for @sgohlke/stryker-log-ignorer
7
+ */
8
+ interface IgnorerOptions {
9
+ /**
10
+ * Specify the object names of the logger objects to be ignored. Defaults to ["console"]
11
+ */
12
+ objectNames?: string[];
13
+ }
14
+ interface LogIgnorerOptions extends StrykerOptions {
15
+ logignore?: IgnorerOptions;
16
+ }
17
+ declare class LogIgnorer implements Ignorer {
18
+ static inject: readonly ["options"];
19
+ protected readonly options?: IgnorerOptions;
20
+ constructor(options?: Partial<LogIgnorerOptions>);
21
+ shouldIgnore(path: NodePath): string | undefined;
22
+ }
23
+ declare function logIgnorerFactory(injector: Injector<PluginContext>): LogIgnorer;
24
+ declare namespace logIgnorerFactory {
25
+ var inject: ["$injector"];
26
+ }
27
+ declare function createLogIgnorerFactory(): {
28
+ (injector: Injector<PluginContext>): LogIgnorer;
29
+ inject: ['$injector'];
30
+ };
31
+ declare const strykerPlugins: import("@stryker-mutator/api/plugin").FactoryPlugin<PluginKind.Ignore, ["$injector"]>[];
32
+ declare const strykerValidationSchema: Record<string, unknown>;
33
+ //#endregion
34
+ export { type IgnorerOptions, LogIgnorer, type LogIgnorerOptions, createLogIgnorerFactory, logIgnorerFactory, strykerPlugins, strykerValidationSchema };
35
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1,29 @@
1
+ import { PluginKind, commonTokens, declareFactoryPlugin, tokens } from "@stryker-mutator/api/plugin";
2
+ import fs from "node:fs";
3
+
4
+ //#region src/index.ts
5
+ var LogIgnorer = class {
6
+ static inject = [commonTokens.options];
7
+ options;
8
+ constructor(options) {
9
+ this.options = options?.logignore;
10
+ }
11
+ shouldIgnore(path) {
12
+ const loggerObjectNames = this.options?.objectNames ?? ["console"];
13
+ const { node } = path;
14
+ if (node.type === "ExpressionStatement" && node.expression.type === "CallExpression" && node.expression.callee.type === "MemberExpression" && node.expression.callee.object.type === "Identifier" && loggerObjectNames.includes(node.expression.callee.object.name)) return `We are not interested in testing ${loggerObjectNames} statements.`;
15
+ }
16
+ };
17
+ logIgnorerFactory.inject = tokens(commonTokens.injector);
18
+ function logIgnorerFactory(injector) {
19
+ return injector.injectClass(LogIgnorer);
20
+ }
21
+ function createLogIgnorerFactory() {
22
+ return logIgnorerFactory;
23
+ }
24
+ const strykerPlugins = [declareFactoryPlugin(PluginKind.Ignore, "log-ignore", createLogIgnorerFactory())];
25
+ const strykerValidationSchema = JSON.parse(fs.readFileSync(new URL("../schema/log-ignorer-options.json", import.meta.url), "utf8"));
26
+
27
+ //#endregion
28
+ export { LogIgnorer, createLogIgnorerFactory, logIgnorerFactory, strykerPlugins, strykerValidationSchema };
29
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { StrykerOptions } from '@stryker-mutator/api/core'\nimport type { Ignorer, NodePath } from '@stryker-mutator/api/ignore'\nimport type { Injector, PluginContext } from '@stryker-mutator/api/plugin'\nimport { PluginKind, commonTokens, declareFactoryPlugin, tokens } from '@stryker-mutator/api/plugin' // eslint-disable-line @typescript-eslint/no-duplicate-imports\n\nimport fs from 'node:fs'\n\n/**\n * Configuration for @sgohlke/stryker-log-ignorer\n */\ninterface IgnorerOptions {\n /**\n * Specify the object names of the logger objects to be ignored. Defaults to [\"console\"]\n */\n objectNames?: string[]\n}\n\ninterface LogIgnorerOptions extends StrykerOptions {\n logignore?: IgnorerOptions\n}\n\n/*\n * LogIgnorer provides functionality to ignore log calls for provided logger object names.\n */\nclass LogIgnorer implements Ignorer {\n public static inject = [commonTokens.options] as const\n protected readonly options?: IgnorerOptions\n\n constructor(options?: Partial<LogIgnorerOptions>) {\n this.options = options?.logignore\n }\n\n shouldIgnore(path: NodePath): string | undefined {\n const loggerObjectNames = this.options?.objectNames ?? ['console']\n const { node } = path\n if (\n node.type === 'ExpressionStatement' &&\n node.expression.type === 'CallExpression' &&\n node.expression.callee.type === 'MemberExpression' &&\n node.expression.callee.object.type === 'Identifier' &&\n loggerObjectNames.includes(node.expression.callee.object.name)\n ) {\n return `We are not interested in testing ${loggerObjectNames} statements.`\n }\n }\n}\n\nlogIgnorerFactory.inject = tokens(commonTokens.injector)\n\nfunction logIgnorerFactory(injector: Injector<PluginContext>): LogIgnorer {\n return injector.injectClass(LogIgnorer)\n}\n\nfunction createLogIgnorerFactory(): {\n (injector: Injector<PluginContext>): LogIgnorer\n inject: ['$injector']\n} {\n return logIgnorerFactory\n}\n\nconst strykerPlugins = [\n declareFactoryPlugin(PluginKind.Ignore, 'log-ignore', createLogIgnorerFactory()),\n]\n\nconst strykerValidationSchema: Record<string, unknown> = JSON.parse(\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n fs.readFileSync(new URL('../schema/log-ignorer-options.json', import.meta.url), 'utf8'),\n)\n\nexport {\n LogIgnorer,\n createLogIgnorerFactory,\n logIgnorerFactory,\n strykerPlugins,\n strykerValidationSchema,\n}\nexport type { IgnorerOptions, LogIgnorerOptions }\n"],"mappings":";;;;AAwBA,IAAM,aAAN,MAAoC;CAClC,OAAc,SAAS,CAAC,aAAa,OAAO;CAC5C,AAAmB;CAEnB,YAAY,SAAsC;EAChD,KAAK,UAAU,SAAS;CAC1B;CAEA,aAAa,MAAoC;EAC/C,MAAM,oBAAoB,KAAK,SAAS,eAAe,CAAC,SAAS;EACjE,MAAM,EAAE,SAAS;EACjB,IACE,KAAK,SAAS,yBACd,KAAK,WAAW,SAAS,oBACzB,KAAK,WAAW,OAAO,SAAS,sBAChC,KAAK,WAAW,OAAO,OAAO,SAAS,gBACvC,kBAAkB,SAAS,KAAK,WAAW,OAAO,OAAO,IAAI,GAE7D,OAAO,oCAAoC,kBAAkB;CAEjE;AACF;AAEA,kBAAkB,SAAS,OAAO,aAAa,QAAQ;AAEvD,SAAS,kBAAkB,UAA+C;CACxE,OAAO,SAAS,YAAY,UAAU;AACxC;AAEA,SAAS,0BAGP;CACA,OAAO;AACT;AAEA,MAAM,iBAAiB,CACrB,qBAAqB,WAAW,QAAQ,cAAc,wBAAwB,CAAC,CACjF;AAEA,MAAM,0BAAmD,KAAK,MAE5D,GAAG,aAAa,IAAI,IAAI,sCAAsC,OAAO,KAAK,GAAG,GAAG,MAAM,CACxF"}
package/package.json CHANGED
@@ -1,61 +1,59 @@
1
1
  {
2
- "name": "@sgohlke/stryker-log-ignorer",
3
- "version": "2.0.6",
4
- "description": "Log Ignorer for Stryker",
5
- "scripts": {
6
- "build": "tsup-node",
7
- "check": "tsc --noEmit --pretty",
8
- "checkformat": "prettier --check .",
9
- "format": "prettier --cache --write .",
10
- "lint": "oxlint -c .oxlintrc.json",
11
- "lintfix": "oxlint -c .oxlintrc.json --fix",
12
- "prepack": "npm run build",
13
- "test": "vitest run --coverage"
2
+ "name": "@sgohlke/stryker-log-ignorer",
3
+ "version": "2.1.1",
4
+ "description": "Log Ignorer for Stryker",
5
+ "keywords": [
6
+ "Log Ignorer",
7
+ "Mutation Testing",
8
+ "Stryker"
9
+ ],
10
+ "homepage": "https://github.com/sgohlke/stryker-log-ignorer#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/sgohlke/stryker-log-ignorer/issues"
13
+ },
14
+ "license": "CC0-1.0",
15
+ "author": "Stefan Gohlke",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/sgohlke/stryker-log-ignorer.git"
19
+ },
20
+ "type": "module",
21
+ "main": "build/index.cjs",
22
+ "module": "build/index.mjs",
23
+ "types": "build/index.d.mts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./build/index.d.mts",
27
+ "import": "./build/index.mjs",
28
+ "require": "./build/index.cjs",
29
+ "default": "./build/index.mjs"
14
30
  },
15
- "type": "module",
16
- "main": "build/index.cjs",
17
- "module": "build/index.js",
18
- "types": "build/index.d.ts",
19
- "exports": {
20
- ".": {
21
- "types": "./build/index.d.ts",
22
- "import": "./build/index.js",
23
- "require": "./build/index.cjs",
24
- "default": "./build/index.js"
25
- },
26
- "./package.json": "./package.json"
27
- },
28
- "repository": {
29
- "type": "git",
30
- "url": "git+https://github.com/sgohlke/stryker-log-ignorer.git"
31
- },
32
- "keywords": [
33
- "Stryker",
34
- "Mutation Testing",
35
- "Log Ignorer"
36
- ],
37
- "author": "Stefan Gohlke",
38
- "license": "CC0-1.0",
39
- "bugs": {
40
- "url": "https://github.com/sgohlke/stryker-log-ignorer/issues"
41
- },
42
- "homepage": "https://github.com/sgohlke/stryker-log-ignorer#readme",
43
- "devDependencies": {
44
- "@babel/parser": "7.28.5",
45
- "@babel/traverse": "7.28.5",
46
- "@swc/core": "1.15.3",
47
- "@types/babel__core": "7.20.5",
48
- "@types/node": "24.10.1",
49
- "@vitest/coverage-v8": "4.0.15",
50
- "oxlint": "1.31.0",
51
- "prettier": "3.7.4",
52
- "prettier-plugin-organize-imports": "4.3.0",
53
- "tsup": "8.5.0",
54
- "typescript": "5.9.3",
55
- "vite-tsconfig-paths": "5.1.4",
56
- "vitest": "4.0.15"
57
- },
58
- "dependencies": {
59
- "@stryker-mutator/api": "9.4.0"
60
- }
31
+ "./package.json": "./package.json"
32
+ },
33
+ "scripts": {
34
+ "build": "tsdown",
35
+ "check": "tsc --noEmit --pretty",
36
+ "checkformat": "oxfmt --check",
37
+ "format": "oxfmt",
38
+ "lint": "oxlint -c .oxlintrc.json",
39
+ "lintfix": "oxlint -c .oxlintrc.json --fix",
40
+ "prepack": "npm run build",
41
+ "test": "vitest run --coverage"
42
+ },
43
+ "dependencies": {
44
+ "@stryker-mutator/api": "9.6.1"
45
+ },
46
+ "devDependencies": {
47
+ "@babel/parser": "8.0.4",
48
+ "@babel/traverse": "8.0.4",
49
+ "@babel/types": "8.0.4",
50
+ "@swc/core": "1.15.43",
51
+ "@types/node": "26.1.1",
52
+ "@vitest/coverage-v8": "4.1.10",
53
+ "oxfmt": "0.58.0",
54
+ "oxlint": "1.73.0",
55
+ "tsdown": "0.22.5",
56
+ "typescript": "7.0.2",
57
+ "vitest": "4.1.10"
58
+ }
61
59
  }
@@ -1,25 +1,25 @@
1
1
  {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "type": "object",
4
- "title": "LogIgnorerOptions",
5
- "additionalProperties": false,
6
- "properties": {
7
- "logignore": {
8
- "description": "Configuration for @sgohlke/stryker-log-ignorer",
9
- "title": "IgnorerOptions",
10
- "additionalProperties": false,
11
- "type": "object",
12
- "default": {},
13
- "properties": {
14
- "objectNames": {
15
- "description": "Specify the object names of the logger objects to be ignored. Defaults to [\"console\"]",
16
- "type": "array",
17
- "items": {
18
- "type": "string"
19
- },
20
- "default": ["console"]
21
- }
22
- }
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "type": "object",
4
+ "title": "LogIgnorerOptions",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "logignore": {
8
+ "description": "Configuration for @sgohlke/stryker-log-ignorer",
9
+ "title": "IgnorerOptions",
10
+ "additionalProperties": false,
11
+ "type": "object",
12
+ "default": {},
13
+ "properties": {
14
+ "objectNames": {
15
+ "description": "Specify the object names of the logger objects to be ignored. Defaults to [\"console\"]",
16
+ "type": "array",
17
+ "items": {
18
+ "type": "string"
19
+ },
20
+ "default": ["console"]
23
21
  }
22
+ }
24
23
  }
24
+ }
25
25
  }
package/build/index.d.ts DELETED
@@ -1,78 +0,0 @@
1
- import * as _stryker_mutator_api_plugin from '@stryker-mutator/api/plugin';
2
- import { Injector, PluginContext, PluginKind } from '@stryker-mutator/api/plugin';
3
- import { StrykerOptions } from '@stryker-mutator/api/core';
4
- import { Ignorer, NodePath } from '@stryker-mutator/api/ignore';
5
-
6
- var $schema = "http://json-schema.org/draft-07/schema";
7
- var type = "object";
8
- var title = "LogIgnorerOptions";
9
- var additionalProperties = false;
10
- var properties = {
11
- logignore: {
12
- description: "Configuration for @sgohlke/stryker-log-ignorer",
13
- title: "IgnorerOptions",
14
- additionalProperties: false,
15
- type: "object",
16
- "default": {
17
- },
18
- properties: {
19
- objectNames: {
20
- description: "Specify the object names of the logger objects to be ignored. Defaults to [\"console\"]",
21
- type: "array",
22
- items: {
23
- type: "string"
24
- },
25
- "default": [
26
- "console"
27
- ]
28
- }
29
- }
30
- }
31
- };
32
- var logIgnorerOptions = {
33
- $schema: $schema,
34
- type: type,
35
- title: title,
36
- additionalProperties: additionalProperties,
37
- properties: properties
38
- };
39
-
40
- declare const ___schema_log_ignorer_options_json_$schema: typeof $schema;
41
- declare const ___schema_log_ignorer_options_json_additionalProperties: typeof additionalProperties;
42
- declare const ___schema_log_ignorer_options_json_properties: typeof properties;
43
- declare const ___schema_log_ignorer_options_json_title: typeof title;
44
- declare const ___schema_log_ignorer_options_json_type: typeof type;
45
- declare namespace ___schema_log_ignorer_options_json {
46
- export { ___schema_log_ignorer_options_json_$schema as $schema, ___schema_log_ignorer_options_json_additionalProperties as additionalProperties, logIgnorerOptions as default, ___schema_log_ignorer_options_json_properties as properties, ___schema_log_ignorer_options_json_title as title, ___schema_log_ignorer_options_json_type as type };
47
- }
48
-
49
- /**
50
- * Configuration for @sgohlke/stryker-log-ignorer
51
- */
52
- interface IgnorerOptions {
53
- /**
54
- * Specify the object names of the logger objects to be ignored. Defaults to ["console"]
55
- */
56
- objectNames?: string[];
57
- }
58
- interface LogIgnorerOptions extends StrykerOptions {
59
- logignore?: IgnorerOptions;
60
- }
61
- declare class LogIgnorer implements Ignorer {
62
- static inject: readonly ["options"];
63
- protected readonly options?: IgnorerOptions;
64
- constructor(options?: Partial<LogIgnorerOptions>);
65
- shouldIgnore(path: NodePath): string | undefined;
66
- }
67
- declare function logIgnorerFactory(injector: Injector<PluginContext>): LogIgnorer;
68
- declare namespace logIgnorerFactory {
69
- var inject: ["$injector"];
70
- }
71
- declare function createLogIgnorerFactory(): {
72
- (injector: Injector<PluginContext>): LogIgnorer;
73
- inject: ['$injector'];
74
- };
75
- declare const strykerPlugins: _stryker_mutator_api_plugin.FactoryPlugin<PluginKind.Ignore, ["$injector"]>[];
76
- declare const strykerValidationSchema: typeof ___schema_log_ignorer_options_json;
77
-
78
- export { type IgnorerOptions, LogIgnorer, type LogIgnorerOptions, createLogIgnorerFactory, logIgnorerFactory, strykerPlugins, strykerValidationSchema };
package/build/index.js DELETED
@@ -1,50 +0,0 @@
1
- // src/index.ts
2
- import {
3
- PluginKind,
4
- commonTokens,
5
- declareFactoryPlugin,
6
- tokens
7
- } from "@stryker-mutator/api/plugin";
8
- import fs from "fs";
9
- var LogIgnorer = class {
10
- static inject = [commonTokens.options];
11
- options;
12
- constructor(options) {
13
- this.options = options?.logignore;
14
- }
15
- shouldIgnore(path) {
16
- const loggerObjectNames = this.options?.objectNames ?? ["console"];
17
- if (path.isExpressionStatement() && path.node.expression.type === "CallExpression" && path.node.expression.callee.type === "MemberExpression" && path.node.expression.callee.object.type === "Identifier" && loggerObjectNames.includes(path.node.expression.callee.object.name)) {
18
- return `We are not interested in testing ${loggerObjectNames} statements.`;
19
- }
20
- }
21
- };
22
- logIgnorerFactory.inject = tokens(commonTokens.injector);
23
- function logIgnorerFactory(injector) {
24
- return injector.injectClass(LogIgnorer);
25
- }
26
- function createLogIgnorerFactory() {
27
- return logIgnorerFactory;
28
- }
29
- var strykerPlugins = [
30
- declareFactoryPlugin(
31
- PluginKind.Ignore,
32
- "log-ignore",
33
- createLogIgnorerFactory()
34
- )
35
- ];
36
- var strykerValidationSchema = JSON.parse(
37
- // eslint-disable-next-line security/detect-non-literal-fs-filename
38
- fs.readFileSync(
39
- new URL("../schema/log-ignorer-options.json", import.meta.url),
40
- "utf8"
41
- )
42
- );
43
- export {
44
- LogIgnorer,
45
- createLogIgnorerFactory,
46
- logIgnorerFactory,
47
- strykerPlugins,
48
- strykerValidationSchema
49
- };
50
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { StrykerOptions } from '@stryker-mutator/api/core'\nimport type { Ignorer, NodePath } from '@stryker-mutator/api/ignore'\nimport type { Injector, PluginContext } from '@stryker-mutator/api/plugin'\nimport {\n PluginKind,\n commonTokens,\n declareFactoryPlugin,\n tokens,\n} from '@stryker-mutator/api/plugin' // eslint-disable-line @typescript-eslint/no-duplicate-imports\n\nimport fs from 'node:fs'\n\n/**\n * Configuration for @sgohlke/stryker-log-ignorer\n */\ninterface IgnorerOptions {\n /**\n * Specify the object names of the logger objects to be ignored. Defaults to [\"console\"]\n */\n objectNames?: string[]\n}\n\ninterface LogIgnorerOptions extends StrykerOptions {\n logignore?: IgnorerOptions\n}\n\n/*\n * LogIgnorer provides functionality to ignore log calls for provided logger object names.\n */\nclass LogIgnorer implements Ignorer {\n public static inject = [commonTokens.options] as const\n protected readonly options?: IgnorerOptions\n\n constructor(options?: Partial<LogIgnorerOptions>) {\n this.options = options?.logignore\n }\n\n shouldIgnore(path: NodePath): string | undefined {\n const loggerObjectNames = this.options?.objectNames ?? ['console']\n if (\n path.isExpressionStatement() &&\n path.node.expression.type === 'CallExpression' &&\n path.node.expression.callee.type === 'MemberExpression' &&\n path.node.expression.callee.object.type === 'Identifier' &&\n loggerObjectNames.includes(path.node.expression.callee.object.name)\n ) {\n return `We are not interested in testing ${loggerObjectNames} statements.`\n }\n }\n}\n\nlogIgnorerFactory.inject = tokens(commonTokens.injector)\n\nfunction logIgnorerFactory(injector: Injector<PluginContext>): LogIgnorer {\n return injector.injectClass(LogIgnorer)\n}\n\nfunction createLogIgnorerFactory(): {\n (injector: Injector<PluginContext>): LogIgnorer\n inject: ['$injector']\n} {\n return logIgnorerFactory\n}\n\nconst strykerPlugins = [\n declareFactoryPlugin(\n PluginKind.Ignore,\n 'log-ignore',\n createLogIgnorerFactory(),\n ),\n]\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nconst strykerValidationSchema: typeof import('../schema/log-ignorer-options.json') =\n JSON.parse(\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n fs.readFileSync(\n new URL('../schema/log-ignorer-options.json', import.meta.url),\n 'utf8',\n ),\n )\n\nexport {\n LogIgnorer,\n createLogIgnorerFactory,\n logIgnorerFactory,\n strykerPlugins,\n strykerValidationSchema,\n}\nexport type { IgnorerOptions, LogIgnorerOptions }\n"],"mappings":";AAGA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,OAAO,QAAQ;AAmBf,IAAM,aAAN,MAAoC;AAAA,EAChC,OAAc,SAAS,CAAC,aAAa,OAAO;AAAA,EACzB;AAAA,EAEnB,YAAY,SAAsC;AAC9C,SAAK,UAAU,SAAS;AAAA,EAC5B;AAAA,EAEA,aAAa,MAAoC;AAC7C,UAAM,oBAAoB,KAAK,SAAS,eAAe,CAAC,SAAS;AACjE,QACI,KAAK,sBAAsB,KAC3B,KAAK,KAAK,WAAW,SAAS,oBAC9B,KAAK,KAAK,WAAW,OAAO,SAAS,sBACrC,KAAK,KAAK,WAAW,OAAO,OAAO,SAAS,gBAC5C,kBAAkB,SAAS,KAAK,KAAK,WAAW,OAAO,OAAO,IAAI,GACpE;AACE,aAAO,oCAAoC,iBAAiB;AAAA,IAChE;AAAA,EACJ;AACJ;AAEA,kBAAkB,SAAS,OAAO,aAAa,QAAQ;AAEvD,SAAS,kBAAkB,UAA+C;AACtE,SAAO,SAAS,YAAY,UAAU;AAC1C;AAEA,SAAS,0BAGP;AACE,SAAO;AACX;AAEA,IAAM,iBAAiB;AAAA,EACnB;AAAA,IACI,WAAW;AAAA,IACX;AAAA,IACA,wBAAwB;AAAA,EAC5B;AACJ;AAGA,IAAM,0BACF,KAAK;AAAA;AAAA,EAED,GAAG;AAAA,IACC,IAAI,IAAI,sCAAsC,YAAY,GAAG;AAAA,IAC7D;AAAA,EACJ;AACJ;","names":[]}