/maram

Codemods for your project config files

Primary LanguageJavaScriptMIT LicenseMIT

Maram

P.S. Readme is a WIP

Maram (മരം) is a fork of the excellent library mrm with an aim of more active development and adding features. See mrm project status

Command line tool to help you keep configuration (package.json, .gitignore, .eslintrc, etc.) of your open source projects in sync.

Goals

  1. Always be feature and api compatible with mrm or keep one api that is compatible with it
  2. Stay lean. The project should only have absolutely necessary dependencies

Features

  • Doesn’t overwrite your data unless you want to
  • Minimal changes: keeps the original file formatting or read the style from EditorConfig
  • Minimal configuration: tries to infer configuration from the project itself or from the environment
  • Customizable tasks for popular tools like ESLint, Prettier, lint-staged, etc. included
  • Custom tasks and tools to work with JSON, YAML, INI, Markdown and new line separated text files
  • Sharing tasks via npm and grouping them into presets

Motivation

Most of the available tools are template based. Template approach works moderately well for new project generation but doesn’t work well for updating. Mrm’s approach is closer to codemods than templates.

Read more in my article, Automating open source project configuration with Mrm, or watch my talk on Mrm.

Documentation

Tasks

These tasks are included by default:

Changelog

The changelog can be found on the Releases page.

Sponsoring

This software has been developed with lots of coffee, buy me one more cup to keep it going.

Buy Me A Coffee

Contributing

Bug fixes are welcome, but not new features. Please take a moment to review the contributing guidelines.

Authors and license

Artem Sapegin, Allen Francis and contributors.

MIT License, see the included License.md file.