From fb7260f39d51e8069f08104d1ad551d330e70777 Mon Sep 17 00:00:00 2001 From: Luke Tomlinson Date: Thu, 1 Jul 2021 16:16:38 -0400 Subject: [PATCH] Make label comparison case insensitive --- dist/index.js | 114 ++++++++++++++++++++++++++------ src/classes/issues-processor.ts | 4 +- src/functions/is-labeled.ts | 2 +- 3 files changed, 96 insertions(+), 24 deletions(-) diff --git a/dist/index.js b/dist/index.js index 664684926..c681a7808 100644 --- a/dist/index.js +++ b/dist/index.js @@ -555,7 +555,7 @@ class IssuesProcessor { }); const events = yield this.client.paginate(options); const reversedEvents = events.reverse(); - const staleLabeledEvent = reversedEvents.find(event => event.event === 'labeled' && event.label.name === label); + const staleLabeledEvent = reversedEvents.find(event => event.event === 'labeled' && is_labeled_1.cleanLabel(event.label.name) === is_labeled_1.cleanLabel(label)); if (!staleLabeledEvent) { // Must be old rather than labeled return undefined; @@ -1839,7 +1839,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isLabeled = void 0; +exports.cleanLabel = exports.isLabeled = void 0; const lodash_deburr_1 = __importDefault(__nccwpck_require__(1601)); /** * @description @@ -1859,6 +1859,7 @@ exports.isLabeled = isLabeled; function cleanLabel(label) { return lodash_deburr_1.default(label.toLowerCase()); } +exports.cleanLabel = cleanLabel; /***/ }), @@ -5792,14 +5793,17 @@ ansiEscapes.iTerm = { /***/ }), /***/ 2068: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => { "use strict"; -/* module decorator */ module = __nccwpck_require__.nmd(module); - - +__nccwpck_require__.r(__webpack_exports__); +/* harmony export */ __nccwpck_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => __WEBPACK_DEFAULT_EXPORT__ +/* harmony export */ }); const ANSI_BACKGROUND_OFFSET = 10; +const wrapAnsi16 = (offset = 0) => code => `\u001B[${code + offset}m`; + const wrapAnsi256 = (offset = 0) => code => `\u001B[${38 + offset};5;${code}m`; const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\u001B[${38 + offset};2;${red};${green};${blue}m`; @@ -5893,8 +5897,10 @@ function assembleStyles() { styles.color.close = '\u001B[39m'; styles.bgColor.close = '\u001B[49m'; + styles.color.ansi = wrapAnsi16(); styles.color.ansi256 = wrapAnsi256(); styles.color.ansi16m = wrapAnsi16m(); + styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET); styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET); styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET); @@ -5949,17 +5955,67 @@ function assembleStyles() { hexToAnsi256: { value: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)), enumerable: false + }, + ansi256ToAnsi: { + value: code => { + if (code < 8) { + return 30 + code; + } + + if (code < 16) { + return 90 + (code - 8); + } + + let red; + let green; + let blue; + + if (code >= 232) { + red = (((code - 232) * 10) + 8) / 255; + green = red; + blue = red; + } else { + code -= 16; + + const remainder = code % 36; + + red = Math.floor(code / 36) / 5; + green = Math.floor(remainder / 6) / 5; + blue = (remainder % 6) / 5; + } + + const value = Math.max(red, green, blue) * 2; + + if (value === 0) { + return 30; + } + + let result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red)); + + if (value === 2) { + result += 60; + } + + return result; + }, + enumerable: false + }, + rgbToAnsi: { + value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)), + enumerable: false + }, + hexToAnsi: { + value: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), + enumerable: false } }); return styles; } -// Make the export immutable -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); +const ansiStyles = assembleStyles(); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ansiStyles); /***/ }), @@ -8950,8 +9006,8 @@ module.exports = require("zlib");; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ loaded: false, +/******/ // no module.id needed +/******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ @@ -8964,20 +9020,36 @@ module.exports = require("zlib");; /******/ if(threw) delete __webpack_module_cache__[moduleId]; /******/ } /******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ -/******/ /* webpack/runtime/node module decorator */ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __nccwpck_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__nccwpck_require__.o(definition, key) && !__nccwpck_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __nccwpck_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ /******/ (() => { -/******/ __nccwpck_require__.nmd = (module) => { -/******/ module.paths = []; -/******/ if (!module.children) module.children = []; -/******/ return module; +/******/ // define __esModule on exports +/******/ __nccwpck_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ diff --git a/src/classes/issues-processor.ts b/src/classes/issues-processor.ts index 6acc00db1..73701ab9f 100644 --- a/src/classes/issues-processor.ts +++ b/src/classes/issues-processor.ts @@ -7,7 +7,7 @@ import {getHumanizedDate} from '../functions/dates/get-humanized-date'; import {isDateMoreRecentThan} from '../functions/dates/is-date-more-recent-than'; import {isValidDate} from '../functions/dates/is-valid-date'; import {isBoolean} from '../functions/is-boolean'; -import {isLabeled} from '../functions/is-labeled'; +import {cleanLabel, isLabeled} from '../functions/is-labeled'; import {shouldMarkWhenStale} from '../functions/should-mark-when-stale'; import {wordsToList} from '../functions/words-to-list'; import {IComment} from '../interfaces/comment'; @@ -553,7 +553,7 @@ export class IssuesProcessor { const reversedEvents = events.reverse(); const staleLabeledEvent = reversedEvents.find( - event => event.event === 'labeled' && event.label.name === label + event => event.event === 'labeled' && cleanLabel(event.label.name) === cleanLabel(label) ); if (!staleLabeledEvent) { diff --git a/src/functions/is-labeled.ts b/src/functions/is-labeled.ts index 890de3ade..267162769 100644 --- a/src/functions/is-labeled.ts +++ b/src/functions/is-labeled.ts @@ -21,6 +21,6 @@ export function isLabeled( }); } -function cleanLabel(label: Readonly): CleanLabel { +export function cleanLabel(label: Readonly): CleanLabel { return deburr(label.toLowerCase()); }