asgardeo / asgardeo/javascript
chore: add TypeScript `Strict Mode` Support for the packages
- Langage dominant
- TypeScript
- Étoiles
- 18
- Forks
- 67
- Merge moyen
- 4 h 6 min
- PR mergées (30 j)
- 13
Description
### Current Limitation
Currently, TypeScript strict mode is not consistently enabled across all packages in the monorepo. This leads to:
- Potential runtime errors that could be caught at compile time
- Implicit `any` types that reduce type safety
- Missing null/undefined checks that could cause runtime issues
- Inconsistent type checking standards across different packages
- Reduced developer experience due to less precise type inference
Without strict mode enabled, the codebase may contain:
- Functions with implicit return type `any`
- Variables that could be `null` or `undefined` without proper checks
- Less strict function parameter checking
- Weaker type checking for object property access
### Suggested Improvement
Enable TypeScript strict mode across all packages and fix related type issues:
## Implementation Plan
> [!NOTE]
> Start with the following order:
> 1. @asgardeo/javascript
> 2. @asgardeo/browser
> 3. @asgardeo/react
> 4. @asgardeo/node
> 5. @asgardeo/nextjs
1. **Enable strict mode in tsconfig.json files**
- Add `"strict": true` to all package-level `tsconfig.json` files
- Ensure consistent strict mode configuration across the monorepo
2. **Fix type errors systematically**
- Address implicit `any` types by adding proper type annotations
- Add null/undefined checks where needed using optional chaining and nullish coalescing
- Fix function return type annotations
- Resolve strict property initialization issues
3. **Update build process**
- Ensure CI/CD pipeline fails on strict mode violations
- Update lint rules to complement strict mode checks
4. **Documentation updates**
- Update contributing guidelines to mention strict mode requirements
- Add examples of proper typing patterns
## Files to be updated
- `packages/*/tsconfig.json` - Enable strict mode
- Various `*.ts` and `*.tsx` files - Fix type issues
- CI configuration - Ensure strict checking in build pipeline]
### Please select the package issue is related to
@asgardeo/express, @asgardeo/browser, @asgardeo/javascript, @asgardeo/nextjs, @asgardeo/node, @asgardeo/nuxt, @asgardeo/react, @asgardeo/react-router, @asgardeo/vue
### Version
current
### Reporter Checklist
- [x] I have searched the existing issues and this is not a duplicate.
- [x] I have provided all the necessary information.
- [x] I have verified the improvement is not available in the latest version of the package.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par le tsconfig.json au niveau du package pour @asgardeo/javascript, puis suivez l’ordre des packages indiqué et examinez les fichiers *.ts et *.tsx concernés. Activez le mode strict, corrigez les problèmes de typage qui en résultent, mettez à jour la documentation relative à la CI et à la contribution, et vérifiez que tous les packages passent la vérification strict.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- build-system, ci-cd, developer-experience, tooling
- Type d'issue
- Refactorisation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100