ecmaFeatures:
  experimentalObjectRestSpread: true

plugins:
  - meteor

parser: babel-eslint

rules:
  strict: 0
  no-undef: 2
  accessor-pairs: 2
  comma-dangle: [2, 'always-multiline']
  consistent-return: 2
  dot-notation: 2
  eqeqeq: 2
  indent: [2, 2]
  no-cond-assign: 2
  no-constant-condition: 2
  no-eval: 2
  no-inner-declarations: [0]
  no-unneeded-ternary: 2
  radix: 2
  semi: [2, always]

  # Stylistic Issues
  camelcase: 2
  comma-spacing: 2
  comma-style: 2
  linebreak-style: [2, unix]
  new-parens: 2
  no-lonely-if: 2
  no-multiple-empty-lines: 2
  no-nested-ternary: 2
  no-spaced-func: 2
  operator-linebreak: 2
  quotes: [2, single]
  semi-spacing: 2
  space-unary-ops: 2
  spaced-comment: [2, always, markers: ['/']]

  # ECMAScript 6
  arrow-parens: 2
  arrow-spacing: 2
  no-class-assign: 2
  no-dupe-class-members: 2
  no-var: 2
  object-shorthand: 2
  prefer-const: 2
  prefer-spread: 2
  prefer-template: 2

  # eslint-plugin-meteor
  ## Meteor API
  meteor/globals: 2
  meteor/core: 2
  meteor/pubsub: 2
  meteor/methods: 2
  meteor/check: 2
  meteor/connections: 2
  meteor/collections: 2
  meteor/session: [2, 'no-equal']

  ## Best practices
  meteor/no-session: 0
  meteor/no-zero-timeout: 2
  meteor/no-blaze-lifecycle-assignment: 2

settings:
  meteor:

    # Our collections
    collections:
      - AccountsTemplates
      - Activities
      - Attachments
      - Boards
      - CardComments
      - Cards
      - Lists
      - UnsavedEditCollection
      - Users

globals:
  # Exported by packages we use
  autosize: false
  Avatar: true
  Avatars: true
  BlazeComponent: false
  BlazeLayout: false
  DocHead: false
  ESSearchResults: false
  FastRender: false
  FlowRouter: false
  FS: false
  getSlug: false
  Migrations: false
  moment: false
  Mousetrap: false
  Picker: false
  Presence: true
  presences: true
  Ps: true
  ReactiveTabs: false
  Restivus: false
  SimpleSchema: false
  SubsManager: false
  T9n: false
  TAPi18n: false

  # Our objects
  CSSEvents: true
  EscapeActions: true
  Filter: true
  Filter: true
  Mixins: true
  Modal: true
  MultiSelection: true
  Popup: true
  Sidebar: true
  Utils: true
  InlinedForm: true
  UnsavedEdits: true

  # XXX Temp, we should remove these
  allowIsBoardAdmin: true
  allowIsBoardMember: true
  Emoji: true

env:
  es6: true
  node: true
  browser: true

extends: 'eslint:recommended'
