asgardeo / asgardeo/javascript

chore: add TypeScript `Strict Mode` Support for the packages

Ouverte
#142 17 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
@asgardeo/browser @asgardeo/javascript @asgardeo/nextjs @asgardeo/node @asgardeo/react Complexity/Medium Type/Improvement typings
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.