├── .travis.yml ├── LICENSE ├── .gitignore ├── package.json ├── README.md ├── .eslintrc └── tslint.json /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | cache: npm 4 | node_js: 5 | - "8.3" 6 | notifications: 7 | email: false 8 | jobs: 9 | include: 10 | - stage: release 11 | node_js: lts/* 12 | script: 13 | - npm run semantic-release 14 | branches: 15 | except: 16 | - /^v\d+\.\d+\.\d+$/ 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 kibibit 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@kibibit/configurations", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "semantic-release": "semantic-release", 8 | "contributors:add": "all-contributors add", 9 | "contributors:generate": "all-contributors generate", 10 | "test": "echo \"Error: no test specified\" && exit 1" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/Kibibit/configurations.git" 15 | }, 16 | "author": "neilkalman@gmail.com", 17 | "license": "MIT", 18 | "bugs": { 19 | "url": "https://github.com/Kibibit/configurations/issues" 20 | }, 21 | "homepage": "https://github.com/Kibibit/configurations#readme", 22 | "release": { 23 | "branches": [ 24 | "+([1-9])?(.{+([1-9]),x}).x", 25 | "master", 26 | { 27 | "name": "beta", 28 | "prerelease": true 29 | }, 30 | { 31 | "name": "next", 32 | "prerelease": true 33 | } 34 | ], 35 | "plugins": [ 36 | "@semantic-release/release-notes-generator", 37 | "@semantic-release/github", 38 | "@semantic-release/npm", 39 | [ 40 | "@semantic-release/git", 41 | { 42 | "assets": [ 43 | "package.json" 44 | ], 45 | "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" 46 | } 47 | ] 48 | ] 49 | }, 50 | "devDependencies": { 51 | "@semantic-release/commit-analyzer": "^6.1.0", 52 | "@semantic-release/git": "^7.1.0-beta.3", 53 | "@semantic-release/github": "^5.2.10", 54 | "@semantic-release/npm": "^5.1.4", 55 | "@semantic-release/release-notes-generator": "^7.1.4", 56 | "all-contributors-cli": "^6.1.2", 57 | "semantic-release": "^16.0.0-beta.18", 58 | "semantic-release-cli": "^4.1.0" 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # configurations 2 | 3 | 4 |

5 | kibibit Logo 6 | 7 |

@kibibit/configurations

8 |

9 |

10 | Global configurations for kibibit projects 11 |

12 |
13 | 14 | ## How to use 15 | 16 | You can copy the files directly to a project based on each configuration's own readme. 17 | 18 | The BETTER way to do this is to use **git submodules**. This will allow you to keep configurations up-to-date as they change in this repository. 19 | 20 | ## git submodule 21 | 22 | initialize by going into your project and running 23 | ```bash 24 | # add submodule and define the master branch as the one you want to track 25 | cd 26 | git submodule add -b master https://github.com/Kibibit/configurations.git 27 | git submodule init 28 | ``` 29 | 30 | to update to the latest files, run this: 31 | ```bash 32 | # update your submodule --remote fetches new commits in the submodules 33 | # and updates the working tree to the commit described by the branch 34 | git submodule update --remote --init 35 | ``` 36 | 37 | ### Initial cloning 38 | to clone a project including all the submodules, run this command 39 | 40 | ```bash 41 | git clone --recursive 42 | ``` 43 | 44 | ## npm dependency 45 | run `npm install --save-dev @kibibit/configurations` to install this as an npm dependency 46 | 47 | point all your tools to `/node_modules/@kibibit/configurations/` to use these configurations. 48 | 49 | in order to update the configurations to the latest version, just update the dependency's version. 50 | 51 | ## Dependencies: 52 | 53 | - `.eslintrc`: [`eslint`](https://www.npmjs.com/package/eslint), [`ESLint-Plugin-Lodash`](https://www.npmjs.com/package/eslint-plugin-lodash) 54 | - `.tslint`: [`tslint`](https://www.npmjs.com/package/tslint) 55 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "lodash" 4 | ], 5 | "rules": { 6 | "lodash/prefer-is-nil": 2, 7 | "lodash/prefer-lodash-typecheck": 2, 8 | "lodash/prefer-startswith": 2, 9 | "lodash/prefer-includes": 2, 10 | "lodash/prefer-noop": 2, 11 | "accessor-pairs": "error", 12 | "no-unused-vars": "error", 13 | "default-case": "error", 14 | "eqeqeq": "error", 15 | "no-extend-native": "error", 16 | "curly": [ 17 | 2, 18 | "all" 19 | ], 20 | "operator-linebreak": [ 21 | 2, 22 | "after" 23 | ], 24 | "camelcase": [ 25 | 2, 26 | { 27 | "properties": "always" 28 | } 29 | ], 30 | "max-len": [ 31 | 2, 32 | 80 33 | ], 34 | "indent": [ 35 | 2, 36 | 2, 37 | { 38 | "SwitchCase": 1 39 | } 40 | ], 41 | "quotes": [ 42 | 2, 43 | "single" 44 | ], 45 | "no-multi-str": 2, 46 | "no-mixed-spaces-and-tabs": 2, 47 | "no-trailing-spaces": 2, 48 | "space-unary-ops": [ 49 | 2, 50 | { 51 | "nonwords": false, 52 | "overrides": {} 53 | } 54 | ], 55 | "one-var": [ 56 | 2, 57 | { 58 | "uninitialized": "always", 59 | "initialized": "never" 60 | } 61 | ], 62 | "brace-style": [ 63 | 2, 64 | "1tbs", 65 | { 66 | "allowSingleLine": true 67 | } 68 | ], 69 | "keyword-spacing": [ 70 | 2, 71 | {} 72 | ], 73 | "space-infix-ops": 2, 74 | "space-before-blocks": [ 75 | 2, 76 | "always" 77 | ], 78 | "eol-last": 2, 79 | "space-before-function-paren": [ 80 | 2, 81 | { 82 | "anonymous": "ignore", 83 | "named": "never" 84 | } 85 | ], 86 | "array-bracket-spacing": [ 87 | 2, 88 | "never", 89 | { 90 | "singleValue": true 91 | } 92 | ], 93 | "space-in-parens": [ 94 | 2, 95 | "never" 96 | ], 97 | "no-multiple-empty-lines": 2, 98 | "no-with": 2, 99 | "no-spaced-func": 2, 100 | "key-spacing": [ 101 | 2, 102 | { 103 | "beforeColon": false, 104 | "afterColon": true 105 | } 106 | ], 107 | "dot-notation": 2, 108 | "semi": [ 109 | 2, 110 | "always" 111 | ], 112 | "valid-jsdoc": 2 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "jsRules": {}, 7 | "rules": { 8 | "arrow-return-shorthand": true, 9 | "callable-types": true, 10 | "class-name": true, 11 | "comment-format": [ 12 | true, 13 | "check-space" 14 | ], 15 | "curly": true, 16 | "deprecation": { 17 | "severity": "warn" 18 | }, 19 | "eofline": true, 20 | "forin": true, 21 | "import-blacklist": [ 22 | true, 23 | "rxjs/Rx" 24 | ], 25 | "import-spacing": true, 26 | "indent": [ 27 | true, 28 | "spaces" 29 | ], 30 | "interface-over-type-literal": true, 31 | "label-position": true, 32 | "max-line-length": [ 33 | true, 34 | 140 35 | ], 36 | "member-access": false, 37 | "member-ordering": [ 38 | true, 39 | { 40 | "order": [ 41 | "static-field", 42 | "instance-field", 43 | "static-method", 44 | "instance-method" 45 | ] 46 | } 47 | ], 48 | "no-arg": true, 49 | "no-bitwise": true, 50 | "no-console": [ 51 | true, 52 | "debug", 53 | "info", 54 | "time", 55 | "timeEnd", 56 | "trace" 57 | ], 58 | "no-construct": true, 59 | "no-debugger": true, 60 | "no-duplicate-super": true, 61 | "no-empty": false, 62 | "no-empty-interface": true, 63 | "no-eval": true, 64 | "no-inferrable-types": [ 65 | true, 66 | "ignore-params" 67 | ], 68 | "no-misused-new": true, 69 | "no-non-null-assertion": true, 70 | "no-redundant-jsdoc": true, 71 | "no-shadowed-variable": true, 72 | "no-string-literal": false, 73 | "no-string-throw": true, 74 | "no-switch-case-fall-through": true, 75 | "no-trailing-whitespace": true, 76 | "no-unnecessary-initializer": true, 77 | "no-unused-expression": true, 78 | "no-use-before-declare": true, 79 | "no-var-keyword": true, 80 | "object-literal-sort-keys": false, 81 | "one-line": [ 82 | true, 83 | "check-open-brace", 84 | "check-catch", 85 | "check-else", 86 | "check-whitespace" 87 | ], 88 | "prefer-const": true, 89 | "quotemark": [ 90 | true, 91 | "single" 92 | ], 93 | "radix": true, 94 | "semicolon": [ 95 | true, 96 | "always" 97 | ], 98 | "triple-equals": [ 99 | true, 100 | "allow-null-check" 101 | ], 102 | "typedef-whitespace": [ 103 | true, 104 | { 105 | "call-signature": "nospace", 106 | "index-signature": "nospace", 107 | "parameter": "nospace", 108 | "property-declaration": "nospace", 109 | "variable-declaration": "nospace" 110 | } 111 | ], 112 | "unified-signatures": true, 113 | "variable-name": false, 114 | "whitespace": [ 115 | true, 116 | "check-branch", 117 | "check-decl", 118 | "check-operator", 119 | "check-separator", 120 | "check-type" 121 | ], 122 | "trailing-comma": [true, { 123 | "multiline": "never", 124 | "singleline": "never" 125 | }] 126 | }, 127 | "rulesDirectory": [] 128 | } 129 | --------------------------------------------------------------------------------