├── .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 |
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 |
--------------------------------------------------------------------------------