0.1.0 • Published 5 years ago

wiw v0.1.0

Weekly downloads
3
License
GPL-3.0-or-later
Repository
github
Last release
5 years ago

Wiw

Wiw (What I Want) is a style guide based on StandardJS, but modified to my liking.

Installation and usage

To install Wiw, simply run:

npm install wiw --save-dev

Then you can check your syntax with:

wiw

For a list of options, run:

wiw --help

This tool should be 100% compatible with the one that comes with StandardJS, and therefore, you can just drop it in as a replacement and it should work fine.

Rules

  • Use double quotes.

    • This also applies when single quotes could be used to escape a double quote inside a string.
    • Template literals are allowed when you need to insert variables into a string.
    // Bad
    'Hello, world!'
    
    // Bad, you're not inserting any variables. Use double quotes instead.
    `Hello, world!`
    
    // Good
    "Hello, world!"
    
    // Good
    `Hello, ${world}!`
  • Use semicolons.

    // Bad
    hello("world")
    
    // Bad, and not where the semicolon is supposed to be used.
    if (happy) {;
    		  hello("world");
    };
    
    // Good
    hello("world");
  • Use tabs.

    // One tab is shown as "----", and one space is shown as "*".
    
    // Bad
    if (happy) {
    **hello("world");
    }
    
    // Bad
    if (happy) {
    ****hello("world");
    }
    
    // Good
    if (happy) {
    ----hello("world");
    }
  • When passing a function, use an arrow function whenever possible.

    • When your function is not bound, use an arrow function.

      function someFunc(func) {
      		  func();
      }
      
      // Bad
      someFunc(function() {
      		  console.log("Hello, world!");
      });
      
      // Good
      someFunc(() => {
      		  console.log("Hello, world!");
      });
    • When your function is bound, use a regular function.

      function someFunc(func) {
      			    func.bind({ a: "Hello, world!" })();
      }
      
      // Good
      someFunc(function() {
      			    console.log(this.a);
      });
  • Always enclose arrow function parameters in parentheses.

    // Bad
    let foo = a => {
    		  return a * 2;
    };
    
    // Good
    let foo = (a) => {
    		  return a * 2;
    };
  • Always enclose arrow function bodies in braces.

    // Bad
    let foo = (a, b) => a * b;
    
    // Good
    let foo = (a, b) => {
    		  return a * b;
    };
  • Anything else described in the StandardJS rules.