@sgohlke/stryker-log-ignorer
Version:
Log Ignorer for Stryker
1 lines • 4.33 kB
Source Map (JSON)
{"version":3,"sources":["/home/runner/work/stryker-log-ignorer/stryker-log-ignorer/build/index.cjs","../src/index.ts"],"names":[],"mappings":"AAAA;ACEA;AACI;AACA;AACA;AACA;AAAA,qDACG;AAIP,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;ADvCJ;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 {\n PluginKind,\n commonTokens,\n declareFactoryPlugin,\n tokens,\n} from '@stryker-mutator/api/plugin'\n// eslint-disable-next-line @typescript-eslint/no-duplicate-imports\nimport type { Injector, PluginContext } from '@stryker-mutator/api/plugin'\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"]}