inferred-types 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/.eslintrc +36 -20
  2. package/.github/workflows/main.yml +34 -0
  3. package/.github/workflows/other.yml +15 -0
  4. package/.vscode/settings.json +10 -2
  5. package/dist/index.d.ts +398 -8541
  6. package/dist/index.js +17 -60
  7. package/dist/index.mjs +8 -48
  8. package/package.json +32 -24
  9. package/src/shared/valueTypes.ts +1 -1
  10. package/src/types/ExpandRecursively.ts +10 -1
  11. package/src/types/SimplifyObject.ts +12 -0
  12. package/src/types/Transformer.ts +1 -1
  13. package/src/types/alphabetic/CamelCase.ts +1 -1
  14. package/src/types/alphabetic/CapFirstAlpha.ts +7 -3
  15. package/src/types/alphabetic/Dasherize.ts +8 -5
  16. package/src/types/alphabetic/KebabCase.ts +1 -1
  17. package/src/types/alphabetic/PascalCase.ts +3 -1
  18. package/src/types/alphabetic/SnakeCase.ts +8 -3
  19. package/src/types/dictionary/DictPartialApplication.ts +30 -0
  20. package/src/types/dictionary/DictPrependWithFn.ts +23 -0
  21. package/src/types/dictionary/DictReturnValues.ts +27 -0
  22. package/src/types/dictionary/RequireProps.ts +15 -0
  23. package/src/types/{type-conversion → dictionary}/SameKeys.ts +0 -0
  24. package/src/types/dictionary/index.ts +8 -3
  25. package/src/types/{props.ts → dictionary/props.ts} +1 -1
  26. package/src/types/functions/FinalReturn.ts +12 -0
  27. package/{on-hold/types → src/types/functions}/index.ts +4 -3
  28. package/src/types/index.ts +4 -3
  29. package/src/types/ruleset-types.ts +3 -3
  30. package/src/types/runtime.ts +18 -18
  31. package/src/types/string-literals/LeftWhitespace.ts +5 -2
  32. package/src/types/string-literals/RightWhitespace.ts +5 -2
  33. package/src/types/tuples/FirstKey.ts +3 -3
  34. package/src/types/tuples/FromDictArray.ts +5 -4
  35. package/src/types/type-conversion/index.ts +2 -5
  36. package/src/utility/api/api.ts +8 -7
  37. package/src/utility/dictionary/dictionaryTransform.ts +5 -4
  38. package/src/utility/dictionary/entries.ts +9 -5
  39. package/src/utility/dictionary/index.ts +2 -3
  40. package/src/utility/dictionary/kv/dictToKv.ts +5 -3
  41. package/src/utility/dictionary/kv/filterDictArray.ts +5 -7
  42. package/src/utility/dictionary/kv/kv.ts +8 -3
  43. package/src/utility/dictionary/kv/kvToDict.ts +3 -2
  44. package/src/utility/dictionary/mapValues.ts +8 -5
  45. package/src/utility/dictionary/strArrayToDict.ts +1 -2
  46. package/src/utility/keys.ts +8 -4
  47. package/src/utility/lists/groupBy.ts +2 -9
  48. package/src/utility/literals/arrayToObject.ts +29 -29
  49. package/src/utility/literals/defineType.ts +6 -6
  50. package/src/utility/literals/identity.ts +5 -2
  51. package/src/utility/literals/literal.ts +3 -3
  52. package/src/utility/ruleset.ts +11 -9
  53. package/src/utility/runtime/condition.ts +1 -1
  54. package/src/utility/runtime/conditions/isFalse.ts +2 -2
  55. package/src/utility/runtime/conditions/isFunction.ts +2 -2
  56. package/src/utility/runtime/conditions/isObject.ts +4 -1
  57. package/src/utility/runtime/conditions/isTrue.ts +1 -1
  58. package/src/utility/runtime/ifTypeOf.ts +1 -1
  59. package/src/utility/runtime/type.ts +3 -1
  60. package/src/utility/runtime/withValue.ts +5 -3
  61. package/src/utility/state/Configurator.ts +2 -2
  62. package/src/utility/state/FluentConfigurator.ts +2 -2
  63. package/src/utility/state/index.ts +2 -3
  64. package/tests/CamelCase-spec.ts +2 -0
  65. package/tests/ExplicitFunction-spec.ts +3 -2
  66. package/tests/IncludeAndRetain-spec.ts +7 -12
  67. package/tests/Includes-spec.ts +2 -0
  68. package/tests/KebabCase-spec.ts +2 -0
  69. package/tests/MutationIdentity-spec.ts +2 -1
  70. package/tests/PascalCase-spec.ts +2 -0
  71. package/tests/Pluralize-spec.ts +2 -0
  72. package/tests/SnakeCase-spec.ts +2 -0
  73. package/tests/Where.spec.ts +9 -10
  74. package/tests/arrayToKeyLookup-spec.ts +5 -5
  75. package/tests/arrayToObject-spec.ts +12 -8
  76. package/tests/constructor.spec.ts +2 -0
  77. package/tests/createFnWithProps.spec.ts +2 -2
  78. package/tests/defineType-spec.ts +17 -11
  79. package/tests/dictionary/DictPartialApplication.test.ts +43 -0
  80. package/tests/dictionary/DictReturnValues.test.ts +32 -0
  81. package/tests/dictionary/Get.spec.ts +5 -3
  82. package/tests/dictionary/PrependValuesWithFunction.ts +34 -0
  83. package/tests/dictionary/RequireProps.test.ts +21 -0
  84. package/tests/dictionaryTransform-spec.ts +3 -3
  85. package/tests/ifTypeOf-spec.ts +31 -20
  86. package/tests/kv/KeyValue-spec.ts +4 -4
  87. package/tests/kv/SameKeys-spec.ts +6 -9
  88. package/tests/kv/dict-to-kv-and-back.spec.ts +5 -4
  89. package/tests/kv/entries-spec.ts +8 -9
  90. package/tests/kv/keys.spec.ts +9 -19
  91. package/tests/kv/kv-spec.ts +4 -4
  92. package/tests/lists/UniqueForProp.spec.ts +3 -1
  93. package/tests/literal-spec.ts +5 -3
  94. package/tests/mapValues-spec.ts +5 -3
  95. package/tests/props-spec.ts +3 -2
  96. package/tests/runtime/condition.spec.ts +2 -1
  97. package/tests/runtime/type.spec.ts +4 -3
  98. package/tests/strArrayToDict-spec.ts +6 -6
  99. package/tests/string-literals/AllCaps.spec.ts +6 -15
  100. package/tests/string-literals/CamelCase.spec.ts +13 -32
  101. package/tests/string-literals/Dasherize.spec.ts +13 -31
  102. package/tests/string-literals/HasUppercase.spec.ts +6 -15
  103. package/tests/string-literals/PascalCase.spec.ts +13 -32
  104. package/tests/string-literals/SnakeCase.spec.ts +13 -32
  105. package/tests/string-literals/whitespace-capture.spec.ts +10 -28
  106. package/tests/tuples/TupleToUnion.spec.ts +3 -1
  107. package/tests/withValue.spec.ts +4 -3
  108. package/tsconfig.json +8 -19
  109. package/vitest.config.ts +13 -0
  110. package/jest.config.ts +0 -20
  111. package/on-hold/Builder/Builder.ts +0 -66
  112. package/on-hold/Builder/BuilderApi.ts +0 -21
  113. package/on-hold/Builder/IdentityToMutationApi.ts +0 -44
  114. package/on-hold/Builder/MutationToFluentApi.ts +0 -60
  115. package/on-hold/Builder/index.ts +0 -35
  116. package/on-hold/tests/Builder-spec.ts +0 -310
  117. package/on-hold/tests/RuleSet-spec.ts +0 -59
  118. package/on-hold/tests/ToFluent-spec.ts +0 -60
  119. package/on-hold/tests/api-spec.ts +0 -73
  120. package/on-hold/tests/data/builder-data.ts +0 -53
  121. package/on-hold/tests/filterDictArray-spec.ts +0 -50
  122. package/on-hold/tests/run-time-spec.ts +0 -44
  123. package/on-hold/type.ts +0 -20
  124. package/on-hold/types/object.ts +0 -19
  125. package/on-hold/types/prop.ts +0 -28
  126. package/on-hold/types/scalar.ts +0 -37
  127. package/src/types/dictionary/NotEmptyObject.ts +0 -9
  128. package/src/types/type-conversion/UnwrapValue.ts +0 -13
  129. package/src/types/type-conversion/WrapValue.ts +0 -15
  130. package/src/utility/dictionary/valuesOfProp.ts +0 -13
  131. package/src/utility/state/KeyStorage.ts +0 -23
package/.eslintrc CHANGED
@@ -1,6 +1,13 @@
1
1
  {
2
- "extends": ["plugin:import/warnings", "plugin:import/typescript", "plugin:unicorn/recommended"],
3
- "plugins": ["@typescript-eslint", "import", "promise", "unicorn"],
2
+ "extends": [
3
+ "plugin:import/warnings",
4
+ "plugin:import/typescript"
5
+ ],
6
+ "plugins": [
7
+ "@typescript-eslint",
8
+ "import",
9
+ "promise"
10
+ ],
4
11
  "parser": "@typescript-eslint/parser",
5
12
  "parserOptions": {
6
13
  "parser": "@typescript-eslint/parser",
@@ -9,29 +16,38 @@
9
16
  },
10
17
  "rules": {
11
18
  "prefer-const": "error",
12
- "semi": ["error", "always"],
13
- "quotes": ["warn", "double", { "avoidEscape": true, "allowTemplateLiterals": true }],
19
+ "semi": [
20
+ "error",
21
+ "always"
22
+ ],
23
+ "quotes": [
24
+ "warn",
25
+ "double",
26
+ {
27
+ "avoidEscape": true,
28
+ "allowTemplateLiterals": true
29
+ }
30
+ ],
14
31
  "no-unused-vars": "off",
15
32
  "curly": "error",
16
- "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
17
- // our use of `-spec` files for testing prevents us using this
18
- "unicorn/filename-case": "off",
19
- // reduce has been getting a bad rap lately; its true that often
20
- // a filter or map would be clearer and equally as effective but
21
- // there are still some legit cases to use reduce
22
- "unicorn/no-array-reduce": "off",
23
- "unicorn/prevent-abbreviations": "off",
24
- "unicorn/no-null": "off",
33
+ "brace-style": [
34
+ "error",
35
+ "1tbs",
36
+ {
37
+ "allowSingleLine": true
38
+ }
39
+ ],
25
40
  "no-nested-ternary": "off",
26
- // doesn't play well with prettier
27
- "unicorn/no-nested-ternary": "off",
28
- "unicorn/no-process-exit": "off",
29
-
30
41
  // we need exceptions to be only "warn" because
31
42
  // there are valid use cases for generic variables being
32
43
  // used before being defined
33
- "no-use-before-define": ["warn"],
34
- "@typescript-eslint/semi": ["error", "always"],
44
+ "no-use-before-define": [
45
+ "warn"
46
+ ],
47
+ "@typescript-eslint/semi": [
48
+ "error",
49
+ "always"
50
+ ],
35
51
  "@typescript-eslint/no-unsafe-member-access": "off",
36
52
  "@typescript-eslint/no-unsafe-call": "off",
37
53
  "@typescript-eslint/no-unsafe-assignment": "off",
@@ -58,4 +74,4 @@
58
74
  }
59
75
  ]
60
76
  }
61
- }
77
+ }
@@ -0,0 +1,34 @@
1
+ name: Continuous Integration
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - master
8
+
9
+ jobs:
10
+ testing:
11
+ name: testing
12
+ uses: yankeeinlondon/gha/.github/workflows/test.yml@main
13
+
14
+ publish:
15
+ name: npm
16
+ if: ( contains(github.event.head_commit.message, 'release v') )
17
+ needs:
18
+ - testing
19
+ uses: yankeeinlondon/gha/.github/workflows/npm.yml@main
20
+ with:
21
+ nodeVersion: 16
22
+ secrets:
23
+ npm_token: ${{secrets.NPM_TOKEN}}
24
+
25
+ do_not_publish:
26
+ name: npm / no publication
27
+ if: ( !contains(github.event.head_commit.message, 'release v') )
28
+ runs-on: ubuntu-latest
29
+ needs:
30
+ - testing
31
+ steps:
32
+ - name: Done
33
+ run: |
34
+ echo "::notice ::No need to publish to NPM"
@@ -0,0 +1,15 @@
1
+ name: CI (features & PRs)
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - feature/*
7
+
8
+ pull_request:
9
+ branches:
10
+ - main
11
+ - master
12
+
13
+ jobs:
14
+ testing:
15
+ uses: yankeeinlondon/gha/.github/workflows/test.yml@main
@@ -1,4 +1,12 @@
1
1
  {
2
2
  "git.ignoreLimitWarning": true,
3
- "editor.formatOnSave": true
4
- }
3
+ "editor.formatOnSave": true,
4
+ "cSpell.words": [
5
+ "Aint",
6
+ "Dasherize",
7
+ "dasherized",
8
+ "ruleset",
9
+ "tokei",
10
+ "Uncapitalize"
11
+ ]
12
+ }