asgardeo / asgardeo/javascript

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

Open
#142 17 comments 0 reactions 0 assignees View on GitHub
@asgardeo/browser @asgardeo/javascript @asgardeo/nextjs @asgardeo/node @asgardeo/react Complexity/Medium Type/Improvement typings
Dominant language
TypeScript
Stars
18
Forks
67
Avg merge
4h 6m
Merged PRs (30d)
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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.