trackler 2.2.1.135 → 2.2.1.136

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/pov/canonical-data.json +33 -1
  4. data/tracks/c/exercises/acronym/test/test_acronym.c +25 -17
  5. data/tracks/csharp/exercises/binary-search-tree/BinarySearchTreeTest.cs +37 -28
  6. data/tracks/csharp/generators/Exercises/BinarySearchTree.cs +69 -0
  7. data/tracks/haskell/config.json +1 -0
  8. data/tracks/haskell/exercises/accumulate/package.yaml +1 -1
  9. data/tracks/haskell/exercises/acronym/package.yaml +1 -1
  10. data/tracks/haskell/exercises/all-your-base/package.yaml +1 -1
  11. data/tracks/haskell/exercises/allergies/package.yaml +1 -1
  12. data/tracks/haskell/exercises/alphametics/package.yaml +1 -1
  13. data/tracks/haskell/exercises/anagram/package.yaml +1 -1
  14. data/tracks/haskell/exercises/atbash-cipher/package.yaml +1 -1
  15. data/tracks/haskell/exercises/bank-account/package.yaml +1 -1
  16. data/tracks/haskell/exercises/beer-song/package.yaml +1 -1
  17. data/tracks/haskell/exercises/binary-search-tree/package.yaml +1 -1
  18. data/tracks/haskell/exercises/binary/package.yaml +1 -1
  19. data/tracks/haskell/exercises/bob/package.yaml +1 -1
  20. data/tracks/haskell/exercises/bowling/package.yaml +1 -1
  21. data/tracks/haskell/exercises/bracket-push/package.yaml +1 -1
  22. data/tracks/haskell/exercises/change/package.yaml +1 -1
  23. data/tracks/haskell/exercises/clock/package.yaml +1 -1
  24. data/tracks/haskell/exercises/collatz-conjecture/package.yaml +1 -1
  25. data/tracks/haskell/exercises/complex-numbers/package.yaml +1 -1
  26. data/tracks/haskell/exercises/connect/package.yaml +1 -1
  27. data/tracks/haskell/exercises/crypto-square/package.yaml +1 -1
  28. data/tracks/haskell/exercises/custom-set/package.yaml +1 -1
  29. data/tracks/haskell/exercises/diamond/package.yaml +1 -1
  30. data/tracks/haskell/exercises/difference-of-squares/package.yaml +1 -1
  31. data/tracks/haskell/exercises/dominoes/package.yaml +1 -1
  32. data/tracks/haskell/exercises/etl/package.yaml +1 -1
  33. data/tracks/haskell/exercises/food-chain/package.yaml +1 -1
  34. data/tracks/haskell/exercises/forth/package.yaml +1 -1
  35. data/tracks/haskell/exercises/gigasecond/package.yaml +1 -1
  36. data/tracks/haskell/exercises/go-counting/package.yaml +1 -1
  37. data/tracks/haskell/exercises/grade-school/package.yaml +1 -1
  38. data/tracks/haskell/exercises/grains/package.yaml +1 -1
  39. data/tracks/haskell/exercises/hamming/package.yaml +1 -1
  40. data/tracks/haskell/exercises/hello-world/package.yaml +1 -1
  41. data/tracks/haskell/exercises/hexadecimal/package.yaml +1 -1
  42. data/tracks/haskell/exercises/house/package.yaml +1 -1
  43. data/tracks/haskell/exercises/isbn-verifier/package.yaml +1 -1
  44. data/tracks/haskell/exercises/isogram/package.yaml +1 -1
  45. data/tracks/haskell/exercises/kindergarten-garden/examples/success-standard/src/Garden.hs +1 -10
  46. data/tracks/haskell/exercises/kindergarten-garden/package.yaml +2 -3
  47. data/tracks/haskell/exercises/kindergarten-garden/src/Garden.hs +3 -7
  48. data/tracks/haskell/exercises/kindergarten-garden/test/Tests.hs +10 -16
  49. data/tracks/haskell/exercises/largest-series-product/package.yaml +1 -1
  50. data/tracks/haskell/exercises/leap/package.yaml +1 -1
  51. data/tracks/haskell/exercises/lens-person/examples/success-standard/package.yaml +0 -1
  52. data/tracks/haskell/exercises/lens-person/package.yaml +1 -1
  53. data/tracks/haskell/exercises/linked-list/package.yaml +1 -1
  54. data/tracks/haskell/exercises/list-ops/package.yaml +1 -1
  55. data/tracks/haskell/exercises/luhn/package.yaml +1 -1
  56. data/tracks/haskell/exercises/matrix/package.yaml +1 -1
  57. data/tracks/haskell/exercises/meetup/package.yaml +1 -1
  58. data/tracks/haskell/exercises/minesweeper/package.yaml +1 -1
  59. data/tracks/haskell/exercises/nth-prime/package.yaml +1 -1
  60. data/tracks/haskell/exercises/nucleotide-count/package.yaml +1 -1
  61. data/tracks/haskell/exercises/ocr-numbers/package.yaml +1 -1
  62. data/tracks/haskell/exercises/octal/package.yaml +1 -1
  63. data/tracks/haskell/exercises/palindrome-products/package.yaml +1 -1
  64. data/tracks/haskell/exercises/pangram/package.yaml +1 -1
  65. data/tracks/haskell/exercises/parallel-letter-frequency/package.yaml +1 -1
  66. data/tracks/haskell/exercises/pascals-triangle/package.yaml +1 -1
  67. data/tracks/haskell/exercises/perfect-numbers/package.yaml +1 -1
  68. data/tracks/haskell/exercises/phone-number/package.yaml +1 -1
  69. data/tracks/haskell/exercises/pig-latin/package.yaml +1 -1
  70. data/tracks/haskell/exercises/poker/package.yaml +1 -1
  71. data/tracks/haskell/exercises/pov/package.yaml +2 -2
  72. data/tracks/haskell/exercises/pov/test/Tests.hs +15 -0
  73. data/tracks/haskell/exercises/prime-factors/package.yaml +1 -1
  74. data/tracks/haskell/exercises/protein-translation/package.yaml +1 -1
  75. data/tracks/haskell/exercises/pythagorean-triplet/package.yaml +1 -1
  76. data/tracks/haskell/exercises/queen-attack/package.yaml +1 -1
  77. data/tracks/haskell/exercises/rail-fence-cipher/package.yaml +1 -1
  78. data/tracks/haskell/exercises/raindrops/package.yaml +1 -1
  79. data/tracks/haskell/exercises/rna-transcription/package.yaml +1 -1
  80. data/tracks/haskell/exercises/robot-name/package.yaml +1 -1
  81. data/tracks/haskell/exercises/robot-simulator/package.yaml +1 -1
  82. data/tracks/haskell/exercises/roman-numerals/package.yaml +1 -1
  83. data/tracks/haskell/exercises/rotational-cipher/package.yaml +1 -1
  84. data/tracks/haskell/exercises/run-length-encoding/package.yaml +1 -1
  85. data/tracks/haskell/exercises/saddle-points/package.yaml +1 -1
  86. data/tracks/haskell/exercises/say/package.yaml +1 -1
  87. data/tracks/haskell/exercises/scrabble-score/package.yaml +1 -1
  88. data/tracks/haskell/exercises/secret-handshake/package.yaml +1 -1
  89. data/tracks/haskell/exercises/series/package.yaml +1 -1
  90. data/tracks/haskell/exercises/sgf-parsing/package.yaml +1 -1
  91. data/tracks/haskell/exercises/sieve/package.yaml +1 -1
  92. data/tracks/haskell/exercises/simple-cipher/package.yaml +1 -1
  93. data/tracks/haskell/exercises/simple-linked-list/package.yaml +1 -1
  94. data/tracks/haskell/exercises/space-age/package.yaml +1 -1
  95. data/tracks/haskell/exercises/spiral-matrix/package.yaml +1 -1
  96. data/tracks/haskell/exercises/strain/package.yaml +1 -1
  97. data/tracks/haskell/exercises/sublist/package.yaml +1 -1
  98. data/tracks/haskell/exercises/sum-of-multiples/package.yaml +1 -1
  99. data/tracks/haskell/exercises/transpose/package.yaml +1 -1
  100. data/tracks/haskell/exercises/triangle/package.yaml +1 -1
  101. data/tracks/haskell/exercises/trinary/package.yaml +1 -1
  102. data/tracks/haskell/exercises/twelve-days/package.yaml +1 -1
  103. data/tracks/haskell/exercises/word-count/package.yaml +1 -1
  104. data/tracks/haskell/exercises/wordy/package.yaml +1 -1
  105. data/tracks/haskell/exercises/zebra-puzzle/package.yaml +1 -1
  106. data/tracks/haskell/exercises/zipper/package.yaml +1 -1
  107. data/tracks/java/CONTRIBUTING.md +39 -3
  108. data/tracks/java/POLICIES.md +68 -3
  109. data/tracks/java/exercises/crypto-square/README.md +4 -5
  110. data/tracks/java/exercises/error-handling/README.md +38 -0
  111. data/tracks/java/exercises/series/README.md +6 -6
  112. data/tracks/java/exercises/sieve/README.md +5 -3
  113. data/tracks/java/scripts/canonical_data_check.sh +1 -1
  114. data/tracks/python/exercises/react/example.py +54 -63
  115. data/tracks/python/exercises/react/react.py +10 -10
  116. data/tracks/python/exercises/react/react_test.py +197 -131
  117. data/tracks/python/exercises/sieve/README.md +5 -3
  118. data/tracks/rust/exercises/react/example.rs +103 -64
  119. data/tracks/rust/exercises/react/src/lib.rs +31 -17
  120. data/tracks/rust/exercises/react/tests/react.rs +52 -61
  121. data/tracks/swift/config.json +11 -0
  122. data/tracks/swift/exercises/circular-buffer/Sources/CircularBufferExample.swift +12 -12
  123. data/tracks/swift/exercises/circular-buffer/Tests/CircularBufferTests/CircularBufferTests.swift +1 -1
  124. data/tracks/swift/exercises/proverb/Package.swift +5 -0
  125. data/tracks/swift/exercises/proverb/README.md +25 -0
  126. data/tracks/swift/exercises/proverb/Sources/Proverb.swift +1 -0
  127. data/tracks/swift/exercises/proverb/Sources/ProverbExample.swift +28 -0
  128. data/tracks/swift/exercises/proverb/Tests/LinuxMain.swift +6 -0
  129. data/tracks/swift/exercises/proverb/Tests/ProverbTests/ProverbTests.swift +61 -0
  130. data/tracks/typescript/config.json +14 -0
  131. data/tracks/typescript/exercises/palindrome-products/README.md +65 -0
  132. data/tracks/typescript/exercises/palindrome-products/package.json +36 -0
  133. data/tracks/typescript/exercises/palindrome-products/palindrome-products.example.ts +38 -0
  134. data/tracks/typescript/exercises/palindrome-products/palindrome-products.test.ts +69 -0
  135. data/tracks/typescript/exercises/palindrome-products/palindrome-products.ts +0 -0
  136. data/tracks/typescript/exercises/palindrome-products/tsconfig.json +22 -0
  137. data/tracks/typescript/exercises/palindrome-products/tslint.json +127 -0
  138. data/tracks/typescript/exercises/palindrome-products/yarn.lock +2624 -0
  139. metadata +17 -2
@@ -0,0 +1,25 @@
1
+ # Proverb
2
+
3
+ For want of a horseshoe nail, a kingdom was lost, or so the saying goes.
4
+
5
+ Given a list of inputs, generate the relevant proverb. For example, given the list ["nail", "shoe", "horse", "rider", "message", "battle", "kingdom"], you will output the full text of this proverbial rhyme:
6
+
7
+ For want of a nail the shoe was lost.
8
+ For want of a shoe the horse was lost.
9
+ For want of a horse the rider was lost.
10
+ For want of a rider the message was lost.
11
+ For want of a message the battle was lost.
12
+ For want of a battle the kingdom was lost.
13
+ And all for the want of a nail.
14
+
15
+ Note that the list of inputs may vary; your solution should be able to handle lists of arbitrary length and content. No line of the output text should be a static, unchanging string; all should vary according to the input given.
16
+
17
+ ## Setup
18
+
19
+ Go through the project setup instructions for Xcode using Swift:
20
+
21
+ http://exercism.io/languages/swift
22
+
23
+
24
+ ## Submitting Incomplete Solutions
25
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1 @@
1
+ //Solution goes in Sources
@@ -0,0 +1,28 @@
1
+ import Foundation
2
+
3
+ extension Array where Element == String {
4
+
5
+ func recite() -> String {
6
+
7
+ var saying = ""
8
+
9
+ if let firstPiece = self.first {
10
+
11
+ for (position, piece) in self.enumerated() {
12
+
13
+ if position != self.count - 1 {
14
+
15
+ let nextPiece = self[position + 1]
16
+ saying.append("For want of a \(piece) the \(nextPiece) was lost.\n")
17
+ } else {
18
+
19
+ saying.append("And all for the want of a \(firstPiece).")
20
+ }
21
+
22
+ }
23
+ }
24
+
25
+ return saying
26
+ }
27
+
28
+ }
@@ -0,0 +1,6 @@
1
+ import XCTest
2
+ @testable import ProverbTests
3
+
4
+ XCTMain([
5
+ testCase(ProverbTests.allTests),
6
+ ])
@@ -0,0 +1,61 @@
1
+ import XCTest
2
+ @testable import Proverb
3
+
4
+ class ProverbTests: XCTestCase {
5
+
6
+ func testZeroPiecesOfProverb() {
7
+
8
+ let expectedResult = ""
9
+ let actualResult = [String]().recite()
10
+ XCTAssertEqual(expectedResult, actualResult)
11
+ }
12
+
13
+ func testOnePieceOfProverb() {
14
+
15
+ let expectedResult = "And all for the want of a nail."
16
+ let actualResult = ["nail"].recite()
17
+ XCTAssertEqual(expectedResult, actualResult)
18
+ }
19
+
20
+ func testTwoPiecesOfProverb() {
21
+
22
+ let expectedResult = "For want of a nail the shoe was lost.\nAnd all for the want of a nail."
23
+ let actualResult = ["nail", "shoe"].recite()
24
+ XCTAssertEqual(expectedResult, actualResult)
25
+ }
26
+
27
+ func testThreePiecesOfProverb() {
28
+
29
+ let expectedResult = "For want of a nail the shoe was lost.\nFor want of a shoe the horse was lost.\nAnd all for the want of a nail."
30
+ let actualResult = ["nail", "shoe", "horse"].recite()
31
+ XCTAssertEqual(expectedResult, actualResult)
32
+
33
+ }
34
+
35
+ func testFullProverb() {
36
+
37
+ let expectedResult = "For want of a nail the shoe was lost.\nFor want of a shoe the horse was lost.\nFor want of a horse the rider was lost.\nFor want of a rider the message was lost.\nFor want of a message the battle was lost.\nFor want of a battle the kingdom was lost.\nAnd all for the want of a nail."
38
+ let actualResult = ["nail", "shoe", "horse", "rider", "message", "battle", "kingdom"].recite()
39
+ XCTAssertEqual(expectedResult, actualResult)
40
+ }
41
+
42
+ func testFourPiecesOfProverbModernized() {
43
+
44
+ let expectedResult = "For want of a pin the gun was lost.\nFor want of a gun the soldier was lost.\nFor want of a soldier the battle was lost.\nAnd all for the want of a pin."
45
+ let actualResult = ["pin", "gun", "soldier", "battle"].recite()
46
+ XCTAssertEqual(expectedResult, actualResult)
47
+ }
48
+
49
+ static var allTests: [(String, (ProverbTests) -> () throws -> Void)] {
50
+ return [
51
+ ("testZeroPiecesOfProverb", testZeroPiecesOfProverb),
52
+ ("testOnePieceOfProverb", testOnePieceOfProverb),
53
+ ("testTwoPiecesOfProverb", testTwoPiecesOfProverb),
54
+ ("testThreePiecesOfProverb", testThreePiecesOfProverb),
55
+ ("testFullProverb", testFullProverb),
56
+ ("testFourPiecesOfProverbModernized", testFourPiecesOfProverbModernized),
57
+
58
+ ]
59
+ }
60
+
61
+ }
@@ -674,6 +674,20 @@
674
674
  "unlocked_by": "grade-school",
675
675
  "uuid": "69cbdc2a-50f4-4e14-b9f4-c1ddee021018"
676
676
  },
677
+ {
678
+ "core": false,
679
+ "difficulty": 7,
680
+ "slug": "palindrome-products",
681
+ "topics": [
682
+ "algorithms",
683
+ "control_flow_conditionals",
684
+ "control_flow_loops",
685
+ "integers",
686
+ "mathematics"
687
+ ],
688
+ "unlocked_by": "prime-factors",
689
+ "uuid": "ffb0ad36-2cf5-46d4-9a5f-5bbdfb9691a7"
690
+ },
677
691
  {
678
692
  "core": false,
679
693
  "difficulty": 8,
@@ -0,0 +1,65 @@
1
+ # Palindrome Products
2
+
3
+ Detect palindrome products in a given range.
4
+
5
+ A palindromic number is a number that remains the same when its digits are
6
+ reversed. For example, `121` is a palindromic number but `112` is not.
7
+
8
+ Given a range of numbers, find the largest and smallest palindromes which
9
+ are products of numbers within that range.
10
+
11
+ Your solution should return the largest and smallest palindromes, along with the
12
+ factors of each within the range. If the largest or smallest palindrome has more
13
+ than one pair of factors within the range, then return all the pairs.
14
+
15
+ ## Example 1
16
+
17
+ Given the range `[1, 9]` (both inclusive)...
18
+
19
+ And given the list of all possible products within this range:
20
+ `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 15, 21, 24, 27, 20, 28, 32, 36, 25, 30, 35, 40, 45, 42, 48, 54, 49, 56, 63, 64, 72, 81]`
21
+
22
+ The palindrome products are all single digit numbers (in this case):
23
+ `[1, 2, 3, 4, 5, 6, 7, 8, 9]`
24
+
25
+ The smallest palindrome product is `1`. Its factors are `(1, 1)`.
26
+ The largest palindrome product is `9`. Its factors are `(1, 9)` and `(3, 3)`.
27
+
28
+ ## Example 2
29
+
30
+ Given the range `[10, 99]` (both inclusive)...
31
+
32
+ The smallest palindrome product is `121`. Its factors are `(11, 11)`.
33
+ The largest palindrome product is `9009`. Its factors are `(91, 99)`.
34
+
35
+ ## Setup
36
+
37
+ Go through the setup instructions for TypeScript to
38
+ install the necessary dependencies:
39
+
40
+ http://exercism.io/languages/typescript
41
+
42
+ ## Requirements
43
+
44
+ Install assignment dependencies:
45
+
46
+ ```bash
47
+ $ yarn install
48
+ ```
49
+
50
+ ## Making the test suite pass
51
+
52
+ Execute the tests with:
53
+
54
+ ```bash
55
+ $ yarn test
56
+ ```
57
+
58
+
59
+
60
+ ## Source
61
+
62
+ Problem 4 at Project Euler [http://projecteuler.net/problem=4](http://projecteuler.net/problem=4)
63
+
64
+ ## Submitting Incomplete Solutions
65
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "xtypescript",
3
+ "version": "1.0.0",
4
+ "description": "Exercism exercises in Typescript.",
5
+ "author": "",
6
+ "private": true,
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/exercism/xtypescript"
10
+ },
11
+ "devDependencies": {},
12
+ "scripts": {
13
+ "test": "tsc --noEmit -p . && jest --no-cache",
14
+ "lint": "tsc --noEmit -p . && tslint \"*.ts?(x)\"",
15
+ "lintci": "tslint \"*.ts?(x)\" --force"
16
+ },
17
+ "dependencies": {
18
+ "@types/jest": "^21.1.5",
19
+ "@types/node": "^8.0.47",
20
+ "jest": "^21.2.1",
21
+ "ts-jest": "^21.1.3",
22
+ "tslint": "^5.8.0",
23
+ "typescript": "^2.5.3"
24
+ },
25
+ "jest": {
26
+ "transform": {
27
+ ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
28
+ },
29
+ "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
30
+ "moduleFileExtensions": [
31
+ "ts",
32
+ "tsx",
33
+ "js"
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,38 @@
1
+ const isPalindrome = (num: number) => num.toString().split('').reverse().join('') === num.toString()
2
+
3
+ const Palindromes = (params: {maxFactor: number, minFactor?: number}) => {
4
+ let maxFactor,
5
+ minFactor,
6
+ maxProduct,
7
+ minProduct,
8
+ data
9
+ maxFactor = params.maxFactor
10
+ minFactor = params.minFactor || 1
11
+ maxProduct = 1
12
+ minProduct = Infinity
13
+ data = []
14
+
15
+ for (let ii = minFactor; ii < maxFactor; ii++) {
16
+ for (let jj = ii; jj <= maxFactor; jj++) {
17
+ const product = ii * jj
18
+ if (isPalindrome(product)) {
19
+ data[product] = [ii, jj]
20
+ maxProduct = Math.max(maxProduct, product)
21
+ minProduct = Math.min(minProduct, product)
22
+ }
23
+ }
24
+ }
25
+
26
+ return {
27
+ largest: {
28
+ value: maxProduct,
29
+ factors: data[maxProduct],
30
+ },
31
+ smallest: {
32
+ value: minProduct,
33
+ factors: data[minProduct],
34
+ },
35
+ }
36
+ }
37
+
38
+ export default Palindromes
@@ -0,0 +1,69 @@
1
+ import generate from './palindrome-products'
2
+
3
+ describe('Palindrome', () => {
4
+ it('largest palindrome from single digit factors', () => {
5
+ const palindromes = generate({ maxFactor: 9 })
6
+ const largest = palindromes.largest
7
+
8
+ expect(largest.value).toEqual(9)
9
+ const containsMatch = [[3, 3], [1, 9]].filter((el) => numericalArraysMatch(el, [3, 3])).length > 0
10
+ expect(containsMatch).toBe(true)
11
+ })
12
+
13
+ xit('largest palindrome from double digit factors', () => {
14
+ const palindromes = generate({ maxFactor: 99, minFactor: 10 })
15
+ const largest = palindromes.largest
16
+
17
+ expect(largest.value).toEqual(9009)
18
+ expect(largest.factors).toEqual([91, 99])
19
+ })
20
+
21
+ xit('smallest palindrome from double digit factors', () => {
22
+ const palindromes = generate({ maxFactor: 99, minFactor: 10 })
23
+ const smallest = palindromes.smallest
24
+
25
+ expect(smallest.value).toEqual(121)
26
+ expect(smallest.factors).toEqual([11, 11])
27
+ })
28
+
29
+ xit('largest palindrome from triple digit factors', () => {
30
+ const palindromes = generate({ maxFactor: 999, minFactor: 100 })
31
+ const largest = palindromes.largest
32
+
33
+ expect(largest.value).toEqual(906609)
34
+ expect(largest.factors).toEqual([913, 993])
35
+ })
36
+
37
+ xit('smallest palindrome from triple digit factors', () => {
38
+ const palindromes = generate({ maxFactor: 999, minFactor: 100 })
39
+ const smallest = palindromes.smallest
40
+
41
+ expect(smallest.value).toEqual(10201)
42
+ expect(smallest.factors).toEqual([101, 101])
43
+ })
44
+ })
45
+
46
+ function numericalArraysMatch(a: number[], b: number[]) {
47
+ if (a.length !== b.length) {
48
+ return false
49
+ }
50
+ const one = [...a].sort(numericalSort)
51
+ const two = [...b].sort(numericalSort)
52
+ let result = true
53
+ let index = 0
54
+ while (index < one.length) {
55
+ result = result && one[index] === two[index]
56
+ index++
57
+ }
58
+ return result
59
+ }
60
+
61
+ function numericalSort(x: number, y: number) {
62
+ if (x < y) {
63
+ return -1
64
+ }
65
+ if (x > y) {
66
+ return 1
67
+ }
68
+ return 0
69
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2017",
4
+ "module": "commonjs",
5
+ "alwaysStrict": true,
6
+ "noUnusedLocals": true,
7
+ "noUnusedParameters": true,
8
+ "noImplicitAny": true,
9
+ "strictNullChecks": true,
10
+ "preserveConstEnums": true,
11
+ "noFallthroughCasesInSwitch":true,
12
+ "noImplicitThis":true,
13
+ "noImplicitReturns":true,
14
+ "sourceMap": true,
15
+ "noEmitOnError": true,
16
+ "outDir": "./build"
17
+ },
18
+ "compileOnSave": true,
19
+ "exclude": [
20
+ "node_modules"
21
+ ]
22
+ }
@@ -0,0 +1,127 @@
1
+ {
2
+ "jsRules": {
3
+ "class-name": true,
4
+ "comment-format": [
5
+ true,
6
+ "check-space"
7
+ ],
8
+ "indent": [
9
+ true,
10
+ "spaces"
11
+ ],
12
+ "no-duplicate-variable": true,
13
+ "no-eval": true,
14
+ "no-trailing-whitespace": true,
15
+ "no-unsafe-finally": true,
16
+ "one-line": [
17
+ true,
18
+ "check-open-brace",
19
+ "check-whitespace"
20
+ ],
21
+ "quotemark": [
22
+ false,
23
+ "double"
24
+ ],
25
+ "semicolon": [
26
+ true,
27
+ "never"
28
+ ],
29
+ "triple-equals": [
30
+ true,
31
+ "allow-null-check"
32
+ ],
33
+ "variable-name": [
34
+ true,
35
+ "ban-keywords"
36
+ ],
37
+ "whitespace": [
38
+ true,
39
+ "check-branch",
40
+ "check-decl",
41
+ "check-operator",
42
+ "check-separator",
43
+ "check-type"
44
+ ]
45
+ },
46
+ "rules": {
47
+ "class-name": true,
48
+ "comment-format": [
49
+ true,
50
+ "check-space"
51
+ ],
52
+ "indent": [
53
+ true,
54
+ "spaces"
55
+ ],
56
+ "no-eval": true,
57
+ "no-internal-module": true,
58
+ "no-trailing-whitespace": true,
59
+ "no-unsafe-finally": true,
60
+ "no-var-keyword": true,
61
+ "one-line": [
62
+ true,
63
+ "check-open-brace",
64
+ "check-whitespace"
65
+ ],
66
+ "semicolon": [
67
+ true,
68
+ "never"
69
+ ],
70
+ "triple-equals": [
71
+ true,
72
+ "allow-null-check"
73
+ ],
74
+ "typedef-whitespace": [
75
+ true,
76
+ {
77
+ "call-signature": "nospace",
78
+ "index-signature": "nospace",
79
+ "parameter": "nospace",
80
+ "property-declaration": "nospace",
81
+ "variable-declaration": "nospace"
82
+ }
83
+ ],
84
+ "variable-name": [
85
+ true,
86
+ "ban-keywords"
87
+ ],
88
+ "whitespace": [
89
+ true,
90
+ "check-branch",
91
+ "check-decl",
92
+ "check-operator",
93
+ "check-separator",
94
+ "check-type"
95
+ ],
96
+ "no-namespace": true,
97
+ "prefer-for-of": true,
98
+ "only-arrow-functions": [true, "allow-declarations"],
99
+ "no-var-requires": true,
100
+ "no-any": true,
101
+ "curly": true,
102
+ "forin": true,
103
+ "no-arg": true,
104
+ "label-position": true,
105
+ "no-conditional-assignment": true,
106
+ "no-console": [true, "log", "error"],
107
+ "no-construct": true,
108
+ "no-duplicate-variable": true,
109
+ "no-empty": true,
110
+ "no-invalid-this": [true, "check-function-in-method"],
111
+ "no-misused-new": true,
112
+ "no-null-keyword": true,
113
+ "no-string-literal": true,
114
+ "radix": true,
115
+ "typeof-compare": true,
116
+ "use-isnan": true,
117
+ "prefer-const": true,
118
+ "array-type": [true, "array-simple"],
119
+ "arrow-parens": true,
120
+ "new-parens": true,
121
+ "no-consecutive-blank-lines": [true,1],
122
+ "no-parameter-properties": true,
123
+ "no-unnecessary-initializer": true,
124
+ "object-literal-shorthand": true,
125
+ "object-literal-key-quotes": [true, "as-needed"]
126
+ }
127
+ }