npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ember-template-lint/todo-utils

v11.0.0

Published

![CI Build](https://github.com/ember-template-lint/ember-template-lint-todo-utils/workflows/CI%20Build/badge.svg) [![npm version](https://badge.fury.io/js/%40ember-template-lint%2Ftodo-utils.svg)](https://badge.fury.io/js/%40ember-template-lint%2Ftodo-uti

Downloads

68,490

Readme

@ember-template-lint/todo-utils

CI Build npm version License Dependabot Volta Managed TypeScript Code Style: prettier

A collection of utilities to generate and store lint item metadata.

Those utilities are:

Functions

buildTodoDatum(lintResult, lintMessage, todoConfig) ⇒

Adapts a LintResult to a TodoData. FilePaths are absolute when received from a lint result, so they're converted to relative paths for stability in serializing the contents to disc.

Kind: global function
Returns: - A TodoData object.

| Param | Description | | --- | --- | | lintResult | The lint result object. | | lintMessage | A lint message object representing a specific violation for a file. | | todoConfig | An object containing the warn or error days, in integers. |

todoStorageFileExists(baseDir) ⇒

Determines if the .lint-todo storage file exists.

Kind: global function
Returns: - true if the todo storage file exists, otherwise false.

| Param | Description | | --- | --- | | baseDir | The base directory that contains the .lint-todo storage file. |

ensureTodoStorageFile(baseDir) ⇒

Creates, or ensures the creation of, the .lint-todo file.

Kind: global function
Returns: - The todo storage file path.

| Param | Description | | --- | --- | | baseDir | The base directory that contains the .lint-todo storage file. |

getTodoStorageFilePath(baseDir) ⇒

Kind: global function
Returns: - The todo storage file path.

| Param | Description | | --- | --- | | baseDir | The base directory that contains the .lint-todo storage file. |

hasConflicts(todoContents) ⇒

Determines if the .lint-todo storage file has conflicts.

Kind: global function
Returns: true if the file has conflicts, otherwise false.

| Param | Description | | --- | --- | | todoContents | The unparsed contents of the .lint-todo file. |

resolveConflicts(operations) ⇒

Resolves git conflicts in todo operations by removing any lines that match conflict markers.

Kind: global function
Returns: An array of string operations excluding any operations that were identified as git conflict lines.

| Param | Description | | --- | --- | | operations | An array of string operations that are used to recreate todos. |

readTodoStorageFile(todoStorageFilePath) ⇒

Reads the .lint-todo storage file.

Kind: global function
Returns: A array of todo operations.

| Param | Description | | --- | --- | | todoStorageFilePath | The .lint-todo storage file path. |

writeTodoStorageFile(todoStorageFilePath, operations)

Writes the operations to the .lint-todo storage file to the path provided by todoStorageFilePath.

Kind: global function

| Param | Description | | --- | --- | | todoStorageFilePath | The .lint-todo storage file path. | | operations | An array of string operations that are used to recreate todos. |

writeTodos(baseDir, maybeTodos, options) ⇒

Writes files for todo lint violations. One file is generated for each violation, using a generated hash to identify each.

Given a list of todo lint violations, this function will also delete existing files that no longer have a todo lint violation.

Kind: global function
Returns: - The counts of added and removed todos.

| Param | Description | | --- | --- | | baseDir | The base directory that contains the .lint-todo storage directory. | | maybeTodos | The linting data, converted to TodoData format. | | options | An object containing write options. |

readTodos(baseDir, shouldLock) ⇒

Reads all todo files in the .lint-todo directory.

Kind: global function
Returns: - A Map of FilePath/TodoMatcher.

| Param | Default | Description | | --- | --- | --- | | baseDir | | The base directory that contains the .lint-todo storage directory. | | shouldLock | true | True if the .lint-todo storage file should be locked, otherwise false. Default: true. |

readTodosForFilePath(todoStorageDir, filePath, shouldLock) ⇒

Reads todo files in the .lint-todo directory for a specific filePath.

Kind: global function
Returns: - A Map of FilePath/TodoMatcher.

| Param | Description | | --- | --- | | todoStorageDir | The .lint-todo storage directory. | | filePath | The relative file path of the file to return todo items for. | | shouldLock | True if the .lint-todo storage file should be locked, otherwise false. Default: true. |

readTodoData(baseDir) ⇒

Reads todo files in the .lint-todo directory and returns Todo data in an array.

Kind: global function
Returns: An array of TodoData

| Param | Description | | --- | --- | | baseDir | The base directory that contains the .lint-todo storage directory. |

getTodoBatches(maybeTodos, existing, options) ⇒

Gets 4 maps containing todo items to add, remove, those that are expired, or those that are stable (not to be modified).

Kind: global function
Returns: - An object of TodoBatches.

| Param | Description | | --- | --- | | maybeTodos | The linting data for violations. | | existing | Existing todo lint data. | | options | An object containing write options. |

applyTodoChanges(baseDir, add, remove, shouldLock)

Applies todo changes, either adding or removing, based on batches from getTodoBatches.

Kind: global function

| Param | Default | Description | | --- | --- | --- | | baseDir | | The base directory that contains the .lint-todo storage directory. | | add | | Batch of todos to add. | | remove | | Batch of todos to remove. | | shouldLock | true | True if the .lint-todo storage file should be locked, otherwise false. Default: true. |

ADD_OPERATIONS_ONLY(operation) ⇒

Compact strategy to leave only add operations in the todo storage file.

Kind: global function
Returns: True if the line matches an add operation, otherwise false.

| Param | Description | | --- | --- | | operation | The single line operation read from the todo storage file. |

EXCLUDE_EXPIRED(operation) ⇒

Compact strategy to remove all expired operations from the todo storage file.

Kind: global function
Returns: True if the operation is not expired, otherwise false.

| Param | Description | | --- | --- | | operation | The single line operation read from the todo storage file. |

compactTodoStorageFile(baseDir, compactStrategy) ⇒

Compacts the .lint-todo storage file based on the compact strategy.

Kind: global function
Returns: The count of compacted todos.

| Param | Description | | --- | --- | | baseDir | The base directory that contains the .lint-todo storage directory. | | compactStrategy | The strategy to use when compacting the storage file. Default: ADD_OPERATIONS_ONLY |

getTodoConfig(baseDir, engine, customDaysToDecay) ⇒

Gets the todo configuration. Config values can be present in

The package.json

Kind: global function
Returns: - The todo config object.

| Param | Description | | --- | --- | | baseDir | The base directory that contains the project's package.json. | | engine | The engine for this configuration, eg. eslint | | customDaysToDecay | The optional custom days to decay configuration. |

Example

{
  "lintTodo": {
    "some-engine": {
      "daysToDecay": {
        "warn": 5,
        "error": 10
      },
      "daysToDecayByRule": {
        "no-bare-strings": { "warn": 10, "error": 20 }
      }
    }
  }
}

A .lint-todorc.js file Example

module.exports = {
  "some-engine": {
    "daysToDecay": {
      "warn": 5,
      "error": 10
    },
    "daysToDecayByRule": {
      "no-bare-strings": { "warn": 10, "error": 20 }
    }
  }
}

Environment variables (TODO_DAYS_TO_WARN or TODO_DAYS_TO_ERROR) - Env vars override package.json config

Passed in directly, such as from command line options. - Passed in options override both env vars and package.json config

validateConfig(baseDir) ⇒

Validates whether we have a unique config in a single location.

Kind: global function
Returns: A ConfigValidationResult that indicates whether a config is unique

| Param | Description | | --- | --- | | baseDir | The base directory that contains the project's package.json. |

getSeverity(todo, today) ⇒

Returns the correct severity level based on the todo data's decay dates.

Kind: global function
Returns: Severity - the lint severity based on the evaluation of the decay dates.

| Param | Description | | --- | --- | | todo | The todo data. | | today | A number representing a date (UNIX Epoch - milliseconds) |

isExpired(date, today) ⇒

Evaluates whether a date is expired (earlier than today)

Kind: global function
Returns: true if the date is earlier than today, otherwise false

| Param | Description | | --- | --- | | date | The date to evaluate | | today | A number representing a date (UNIX Epoch - milliseconds) |

getDatePart(date) ⇒

Converts a date to include year, month, and day values only (time is zeroed out).

Kind: global function
Returns: Date - A date with the time zeroed out eg. '2021-01-01T08:00:00.000Z'

| Param | Description | | --- | --- | | date | The date to convert |

differenceInDays(startDate, endDate) ⇒

Returns the difference in days between two dates.

Kind: global function
Returns: a number representing the days between the dates

| Param | Description | | --- | --- | | startDate | The start date | | endDate | The end date |

format(date) ⇒

Formats the date in short form, eg. 2021-01-01

Kind: global function
Returns: A string representing the formatted date

| Param | Description | | --- | --- | | date | The date to format |