@adbayb/stack 1.16.1 → 2.1.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 (111) hide show
  1. package/README.md +36 -41
  2. package/bin/index.js +8 -0
  3. package/configs/eslint/README.md +39 -0
  4. package/configs/eslint/constants.js +10 -0
  5. package/configs/eslint/helpers.js +6 -0
  6. package/configs/eslint/index.js +29 -0
  7. package/configs/eslint/presets/base.js +26 -0
  8. package/configs/eslint/presets/eslint.js +105 -0
  9. package/configs/eslint/presets/import.js +71 -0
  10. package/configs/eslint/presets/jsdoc.js +79 -0
  11. package/configs/eslint/presets/node.js +51 -0
  12. package/configs/eslint/presets/overridable.js +33 -0
  13. package/configs/eslint/presets/react.js +75 -0
  14. package/configs/eslint/presets/sonar.js +225 -0
  15. package/configs/eslint/presets/stylistic.js +69 -0
  16. package/configs/eslint/presets/test.js +59 -0
  17. package/configs/eslint/presets/typescript.js +172 -0
  18. package/configs/eslint/presets/uncategorized.js +34 -0
  19. package/configs/prettier/README.md +65 -0
  20. package/configs/prettier/index.js +25 -0
  21. package/configs/typescript/README.md +46 -0
  22. package/configs/typescript/index.json +35 -0
  23. package/dist/index.js +770 -0
  24. package/package.json +48 -18
  25. package/{template → templates/multi-projects}/.editorconfig +1 -1
  26. package/templates/multi-projects/.github/ISSUE_TEMPLATE/config.yml +4 -0
  27. package/templates/multi-projects/.github/workflows/continuous_delivery.yml +61 -0
  28. package/templates/multi-projects/.github/workflows/continuous_integration.yml +9 -0
  29. package/templates/multi-projects/.github/workflows/conventional_commit.yml +48 -0
  30. package/templates/multi-projects/.github/workflows/dependency_changelog.yml +117 -0
  31. package/templates/multi-projects/.github/workflows/workflow.yml +39 -0
  32. package/{template → templates/multi-projects}/.npmrc.tmpl +1 -0
  33. package/templates/multi-projects/applications/README.md +6 -0
  34. package/templates/multi-projects/eslint.config.js.tmpl +1 -0
  35. package/templates/multi-projects/examples/README.md +6 -0
  36. package/{template → templates/multi-projects}/examples/default/package.json.tmpl +2 -2
  37. package/templates/multi-projects/libraries/README.md +3 -0
  38. package/templates/multi-projects/libraries/{{projectName}}/package.json.tmpl +39 -0
  39. package/templates/multi-projects/libraries/{{projectName}}/tsconfig.json +5 -0
  40. package/{template → templates/multi-projects}/package.json.tmpl +4 -3
  41. package/{template → templates/multi-projects}/pnpm-workspace.yaml.tmpl +0 -1
  42. package/{template → templates/multi-projects}/tools/README.md +1 -1
  43. package/templates/multi-projects/tsconfig.json +4 -0
  44. package/{template → templates/multi-projects}/turbo.json +2 -1
  45. package/templates/single-project/.changeset/README.md +8 -0
  46. package/templates/single-project/.changeset/config.json.tmpl +13 -0
  47. package/templates/single-project/.changeset/welcome.md.tmpl +5 -0
  48. package/templates/single-project/.editorconfig +4 -0
  49. package/templates/single-project/.github/ISSUE_TEMPLATE/bug_report.md +34 -0
  50. package/templates/single-project/.github/ISSUE_TEMPLATE/config.yml +4 -0
  51. package/templates/single-project/.github/PULL_REQUEST_TEMPLATE.md.tmpl +29 -0
  52. package/templates/single-project/.github/renovate.json +69 -0
  53. package/templates/single-project/.github/workflows/continuous_delivery.yml +61 -0
  54. package/templates/single-project/.github/workflows/continuous_integration.yml +9 -0
  55. package/templates/single-project/.github/workflows/conventional_commit.yml +48 -0
  56. package/templates/single-project/.github/workflows/dependency_changelog.yml +117 -0
  57. package/templates/single-project/.github/workflows/workflow.yml +39 -0
  58. package/templates/single-project/.gitignore.tmpl +134 -0
  59. package/templates/single-project/.npmrc.tmpl +8 -0
  60. package/templates/single-project/.nvmrc.tmpl +1 -0
  61. package/templates/single-project/.vscode/extensions.json +8 -0
  62. package/templates/single-project/.vscode/settings.json +27 -0
  63. package/templates/single-project/CONTRIBUTING.md.tmpl +21 -0
  64. package/templates/single-project/LICENSE.tmpl +21 -0
  65. package/templates/single-project/eslint.config.js.tmpl +1 -0
  66. package/templates/single-project/examples/README.md +6 -0
  67. package/templates/single-project/examples/default/package.json.tmpl +14 -0
  68. package/templates/single-project/examples/default/src/index.ts.tmpl +3 -0
  69. package/templates/single-project/examples/default/tsconfig.json +5 -0
  70. package/templates/single-project/package.json.tmpl +27 -0
  71. package/templates/single-project/pnpm-workspace.yaml.tmpl +4 -0
  72. package/templates/single-project/tools/README.md +6 -0
  73. package/templates/single-project/tsconfig.json +4 -0
  74. package/templates/single-project/turbo.json +25 -0
  75. package/templates/single-project/{{projectName}}/README.md.tmpl +42 -0
  76. package/{template → templates/single-project}/{{projectName}}/package.json.tmpl +3 -5
  77. package/templates/single-project/{{projectName}}/src/index.test.ts.tmpl +5 -0
  78. package/templates/single-project/{{projectName}}/src/index.ts +1 -0
  79. package/bin/index.cjs +0 -7
  80. package/dist/index.cjs +0 -15
  81. package/dist/index.cjs.map +0 -7
  82. package/template/.commitlintrc.json +0 -3
  83. package/template/.eslintrc.json.tmpl +0 -3
  84. package/template/.github/ISSUE_TEMPLATE/config.yml +0 -4
  85. package/template/.github/workflows/continuous_delivery.yml +0 -49
  86. package/template/.github/workflows/continuous_integration.yml +0 -9
  87. package/template/.github/workflows/conventional_commit.yml +0 -48
  88. package/template/.github/workflows/dependency_changelog.yml +0 -117
  89. package/template/.github/workflows/workflow.yml +0 -96
  90. package/template/applications/README.md +0 -9
  91. package/template/examples/README.md +0 -6
  92. package/template/libraries/README.md +0 -9
  93. package/template/tsconfig.json +0 -3
  94. /package/{template → templates/multi-projects}/.changeset/README.md +0 -0
  95. /package/{template → templates/multi-projects}/.changeset/config.json.tmpl +0 -0
  96. /package/{template → templates/multi-projects}/.changeset/welcome.md.tmpl +0 -0
  97. /package/{template → templates/multi-projects}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  98. /package/{template → templates/multi-projects}/.github/PULL_REQUEST_TEMPLATE.md.tmpl +0 -0
  99. /package/{template → templates/multi-projects}/.github/renovate.json +0 -0
  100. /package/{template → templates/multi-projects}/.gitignore.tmpl +0 -0
  101. /package/{template → templates/multi-projects}/.nvmrc.tmpl +0 -0
  102. /package/{template → templates/multi-projects}/.vscode/extensions.json +0 -0
  103. /package/{template → templates/multi-projects}/.vscode/settings.json +0 -0
  104. /package/{template → templates/multi-projects}/CONTRIBUTING.md.tmpl +0 -0
  105. /package/{template → templates/multi-projects}/LICENSE.tmpl +0 -0
  106. /package/{template → templates/multi-projects}/examples/default/src/index.ts.tmpl +0 -0
  107. /package/{template → templates/multi-projects}/examples/default/tsconfig.json +0 -0
  108. /package/{template → templates/multi-projects/libraries}/{{projectName}}/README.md.tmpl +0 -0
  109. /package/{template → templates/multi-projects/libraries}/{{projectName}}/src/index.test.ts.tmpl +0 -0
  110. /package/{template → templates/multi-projects/libraries}/{{projectName}}/src/index.ts +0 -0
  111. /package/{template → templates/single-project}/{{projectName}}/tsconfig.json +0 -0
@@ -0,0 +1,46 @@
1
+ <br>
2
+ <div align="center">
3
+ <h1>@adbayb/stack/typescript</h1>
4
+ <strong>My opinionated TypeScript configuration preset</strong>
5
+ </div>
6
+ <br>
7
+ <br>
8
+
9
+ ## ✨ Features
10
+
11
+ This package offers opinionated but extensible **[TypeScript](https://www.typescriptlang.org/tsconfig/)** configurations to align type checking and processing across projects.
12
+
13
+ It allows to:
14
+
15
+ - Make collaboration across my projects effective (including onboarding with a consistent look and writing patterns).
16
+ - Include a minimum viable and required set of rules to foster maintainable, testable, secure, and green code over time.
17
+ - Accelerate development by reusing common configuration and convention defaults.
18
+
19
+ <br />
20
+
21
+ ## 🚀 Quick Start
22
+
23
+ ### 1️⃣ Installation
24
+
25
+ At the root level of your project, run the following command:
26
+
27
+ ```bash
28
+ pnpm add @adbayb/stack --save-dev --workspace-root
29
+ ```
30
+
31
+ ### 2️⃣ Usage
32
+
33
+ Edit the `tsconfig.json` file to include the following:
34
+
35
+ ```jsonc
36
+ {
37
+ "$schema": "https://json.schemastore.org/tsconfig",
38
+ "extends": "@adbayb/stack/typescript",
39
+ "include": ["src"], // Depending on your project specificities
40
+ "exclude": ["node_modules", "dist"], // Depending on your project specificities
41
+ }
42
+ ```
43
+
44
+ The default configuration is versatile and suitable for all projects, whether back-end or front-end.
45
+
46
+ <br />
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "http://json.schemastore.org/tsconfig.json",
3
+ "compilerOptions": {
4
+ "allowArbitraryExtensions": true,
5
+ "allowImportingTsExtensions": false,
6
+ "allowJs": false,
7
+ "allowUnreachableCode": false,
8
+ "allowUnusedLabels": false,
9
+ "checkJs": false,
10
+ "exactOptionalPropertyTypes": true,
11
+ "incremental": true,
12
+ "jsx": "react-jsx",
13
+ "lib": [
14
+ "ESNext",
15
+ "DOM",
16
+ "DOM.AsyncIterable",
17
+ "DOM.Iterable",
18
+ "WebWorker.ImportScripts"
19
+ ],
20
+ "module": "Preserve",
21
+ "noEmit": true,
22
+ "noErrorTruncation": true,
23
+ "noFallthroughCasesInSwitch": true,
24
+ "noImplicitOverride": true,
25
+ "noImplicitReturns": true,
26
+ "noUncheckedIndexedAccess": true,
27
+ "noUncheckedSideEffectImports": true,
28
+ "noUnusedLocals": true,
29
+ "noUnusedParameters": true,
30
+ "skipLibCheck": true,
31
+ "strict": true,
32
+ "target": "ESNext",
33
+ "verbatimModuleSyntax": true
34
+ }
35
+ }