• Stars
    star
    103
  • Rank 333,046 (Top 7 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Make sure the filenames stay the same, control them! πŸ‘



farch


Make sure the file-names stay the same, control them! πŸ‘

Travis CI Build Status npm version Code Coverage

Motivation

More and more frameworks that have been created recently gave the possibility to the user to write content in markdown, like Gatsby or Docusaurus, but sometimes if you collaborate with multiples people on these markdown files, keeping a clean file-name is more important than ever. That's why I created this tiny linter to force people to respect a file-name architecture in order the keep everything clean and understandable.
Of course, many other usages can be considered.

Install

yarn add --dev linter-farch

Usage

Once installed, a small and quick configuration is needed in the package.json file.
The package.json file is used here, to avoid creating another file with a purpose of configuration.

Configuration:

For the configuration, two possibles way can be taken, the first is the package.json file like below (essentially for the JS project and if you don't want to create another config file):

In the package.json file:

{
  "farch": {
    "src": "([a-z]*-[0-9]{4})[.]*[a-z]*",
    "src/utilities": "[a-z]*",
    "src/utilities/*.js": "[a-z]"
  }
}

You can use glob as key/path to provide more flexibility to capture the wanted files.

  • Creating regex can be hard or simply boring, that's why you can simply put template placeholder like this:
{
  "farch": {
    "src": "([a-z]*-[0-9]{4})[.]*[a-z]*",
    "src/utilities": ["LOWER_CAMEL_CASE_JS", "[a-z]*"],
    "src/utilities/*.js": "[a-z]"
  }
}

You can find any template placeholder already created here, feel free to contribute by adding more template/placeholder regex. The keys have to be of the following form: "XXXXXX_XXX_YY", where _XXX is the name and YY the extension of the file that we want to test.


But, there is still the possibility to create a farch.json config file at the root of the project, essentially for the non-js project or if you don't want to put the configuration in your package.json.

{
  "farch": {
    "src": "([a-z]*-[0-9]{4})[.]*[a-z]*",
    "src/utilities": "[a-z]*"
  }
}

farch.json file have the priority over the package.json file.

Inside the farch property, insert the directory that you want to test:
Pass as key, the path from the root directory to the target directory, then in value pass regex to match.

Then, you are all set!

Execution

To avoid creating tons of rules if you have a lot of directory nested and they apply to the same assertion you can pass -R, hence it will recursively check all the directory.

At the root of your project:

npx farch

or

Insert it in your package.json file:

{
  "scripts": {
    "test": "farch ((-R))"
  }
}

And run CI on it !

Output

output-farch

License

MIT Paul Rosset

More Repositories

1

previs

🎯 Testing your project locally in a clean environment.
Go
325
star
2

rehover

πŸ‘ React hovering on two elements made simpler!
JavaScript
76
star
3

go-hacknews

πŸ“Ÿ Tiny utility Go client for HackerNews API.
Go
17
star
4

subtitles-anywhere-web

Add your own SRT, VTT, SAMI, or TTML subtitles to your preferred service streaming web platform.
TypeScript
10
star
5

awesome-list-pretty

πŸ’…πŸ» πŸ•Ά Awesome List Prettied
Python
9
star
6

formidable-upload-koa

Koa middleware based on formidable uploader
JavaScript
7
star
7

git-aware

Fast Rust CLI that detects Git dirty working tree status on a system
Rust
4
star
8

reclick

Clicking Menu in React made simpler! πŸ‘†
JavaScript
4
star
9

var-env

🌿 Create persistent env variables easily and quickly for testing locally.
Go
4
star
10

EasyIP

β˜„οΈ CLI tool to get your Public/Internal Address IP easily and quickly with few features in more.
JavaScript
3
star
11

lightning-design

Some React component designed
JavaScript
2
star
12

refined-gitlab-canal

Refined Gitlab By Canal+
JavaScript
2
star
13

blog-kent

πŸ“– Blog Kent University / Epitech (Epikent) - Student - 2017/2018 - Paul Rosset
TypeScript
2
star
14

react-redux-boilerplate

⚑️ Simple React-Redux boilerplate with webpack devServer
JavaScript
1
star
15

messenger-bot-2

πŸ€–πŸ€– An advanced Messenger bot with natural language processing and strategies pattern.
JavaScript
1
star
16

opencloud-kent-front

OpenCloudPlatform, Kent university, UI, 2017/2018
JavaScript
1
star
17

promisified-aws-dyn

Abstract class promisified for AWS dynamodb SDK
JavaScript
1
star
18

messenger-bot

πŸ€– A nodejs Messenger Bot in 10 minutes
JavaScript
1
star
19

atom-easyip

πŸ’₯ Plugin based on easy-ip package and Atom editor to get your public/private IP address with few features in more.
JavaScript
1
star
20

morning-Knowing

Small web application to quickly check time and weather.
JavaScript
1
star
21

mediahelper

The Cyber Swiss Media Knife
TypeScript
1
star
22

ngshowon

A simple angular directive to show/hide element according to the size of the window.
JavaScript
1
star
23

j2c

πŸ›  CLI that transform a JSON to CSV with Key,Value format.
JavaScript
1
star