Code Monkey home page Code Monkey logo

stylelint-processor-glamorous's Introduction

stylelint-processor-glamorous

Lint glamorous and related css-in-js with stylelint

Build Status

Installation

$ yarn add stylelint stylelint-config-standard stylelint-processor-glamorous --dev

You can use styleiint-config-recomended or your own custom config. Certain rules that enforce formatting rules will be ignored.

Add .stylelintrc to the root of your project:

{
  "processors": ["stylelint-processor-glamorous"],
  "extends": "stylelint-config-standard"
}

That's it. You can now run stylelint from the command line.

$ yarn stylelint 'src/**/*.js'

What gets linted

  • Glamorous component factories

      import glamorous from 'glamorous'; // choose any name for the defaut export
    
      const Component = glamorous.div({ ... });
      const OtherComponent = glamorous('div')({ ... })
  • CSS attributes

      <Div css={{ ... }}/>
  • Annotated object literals.

    export const styles = 
      // @css
      {
        ...
      }

    The @css comment tells the processor that its a style object. Make sure you put it right before the opening brace.


Integrating with other css-in-js libraries

You can use @css to lint any object. Hoverver, if you stick to the styled pattern, you won't need to add annotations to your code.

  import styled from 'my-fav-cssinjs-lib';

  const Component = styled.div({ ... })
  const OtherComponent = styled('div')({ ... })  

Contributing

Contributions of any kind are always welcome.


LICENSE: MIT

stylelint-processor-glamorous's People

Contributors

zabute avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

stylelint-processor-glamorous's Issues

Suppress JavaScript syntax error

Problem

'use strict';

const {lint} = require('stylelint'); // v9.1.3

lint({
  code: ']',
  codeFilename: 'exmaple.jsx',
  config: {
    processors: 'stylelint-processor-glamorous', // v0.2.0
    rules: {}
  }
}).catch(err => console.error(err.stack));

The source ] is an invalid JavaScript code.

When I run the script above, lint() will be rejected with the following error:

SyntaxError: Unexpected token (1:0)
    at Parser.pp$5.raise (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:4454:13)
    at Parser.pp.unexpected (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:1761:8)
    at Parser.pp$3.parseExprAtom (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:3750:12)
    at Parser.parseExprAtom (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:7238:22)
    at Parser.pp$3.parseExprSubscripts (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:3494:19)
    at Parser.pp$3.parseMaybeUnary (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:3474:19)
    at Parser.pp$3.parseExprOps (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:3404:19)
    at Parser.pp$3.parseMaybeConditional (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:3381:19)
    at Parser.pp$3.parseMaybeAssign (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:3344:19)
    at Parser.parseMaybeAssign (/Users/shinnn/github/glamorous-bug/node_modules/babylon/lib/index.js:6474:20)

This is unexpected for users as this processor changes the original behavior of stylelint.lint() towards syntax errors:

stylelint.lint() does not reject the Promise when your CSS contains syntax errors. It resolves with an object (see The returned promise) that contains information about the syntax error.

Expected result

I expect stylelint-processor-glamorous to catch all JavaScript syntax errors.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.