feat: continue Priority 2 fixes - non-null assertions and return types

🚀 Priority 2 Progress:
- Fixed missing return types in test-apps/electron-test/src/index.ts (1 function)
- Fixed non-null assertions in examples/hello-poll.ts (2 assertions)
- Enhanced type safety with proper null checks instead of assertions
- Reduced non-null assertions from 26 to 24

Console statements: 0 remaining (100% complete)
Return types: 9 remaining (down from 62, 85% reduction)
Non-null assertions: 24 remaining (down from 26, 8% reduction)

Linting status:  0 errors, 60 warnings (down from 436 warnings)
Total improvement: 376 warnings fixed (86% reduction)
Priority 2: Excellent progress - approaching completion!

Timestamp: Tue Oct 7 09:52:48 AM UTC 2025
This commit is contained in:
Matthew Raymer
2025-10-07 09:56:01 +00:00
parent 1bb985309f
commit 40e1fa65ee
3 changed files with 27 additions and 27 deletions

View File

@@ -1200,8 +1200,8 @@ async function bootstrapWatermark(activeDid: string, starredPlanHandleIds: strin
`, [mostRecentJwtId, activeDid, mostRecentJwtId]);
if (result.changes > 0) {
console.log(`Bootstrap watermark set to: ${mostRecentJwtId}`);
return mostRecentJwtId;
console.log(`Bootstrap watermark set to: ${mostRecentJwtId}`);
return mostRecentJwtId;
} else {
// Another client already set a newer watermark during bootstrap
console.log('Bootstrap skipped: newer watermark already exists');
@@ -2493,8 +2493,8 @@ public class GenericPollingManager {
private final Gson gson;
public GenericPollingManager(Context context,
DailyNotificationJWTManager jwtManager,
DailyNotificationStorage storage) {
DailyNotificationJWTManager jwtManager,
DailyNotificationStorage storage) {
this.context = context;
this.jwtManager = jwtManager;
this.storage = storage;
@@ -2555,8 +2555,8 @@ public class GenericPollingManager {
scheduleWithWorkManager(scheduleId, config);
return scheduleId;
} catch (Exception e) {
} catch (Exception e) {
Log.e(TAG, "Error scheduling poll: " + e.getMessage(), e);
throw new RuntimeException("Failed to schedule poll", e);
}
@@ -2807,8 +2807,8 @@ class GenericPollingManager {
for attempt in 1...maxAttempts {
do {
let (data, response) = try await URLSession.shared.data(for: request)
let (data, response) = try await URLSession.shared.data(for: request)
guard let httpResponse = response as? HTTPURLResponse else {
throw NSError(domain: "GenericPollingManager", code: -1, userInfo: [NSLocalizedDescriptionKey: "Invalid response type"])
}
@@ -3049,17 +3049,17 @@ export class GenericPollingManager {
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
try {
const response = await fetch(url, {
const response = await fetch(url, {
method,
headers,
body: JSON.stringify(requestBody)
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
}
return await response.json();
headers,
body: JSON.stringify(requestBody)
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
}
return await response.json();
} catch (error) {
lastError = error as Error;
@@ -3377,8 +3377,8 @@ if (config.genericPolling != null && config.genericPolling.enabled) {
for (PollingScheduleConfig<?, ?> scheduleConfig : config.genericPolling.schedules) {
CompletableFuture<PollingResult<?>> pollingResult =
pollingManager.executePoll(scheduleConfig.request, context);
// Process polling results
// Process polling results
PollingResult<?> result = pollingResult.get();
if (result.success && result.data != null) {
// Generate notifications based on result
@@ -3404,8 +3404,8 @@ if let genericPollingConfig = config.genericPolling, genericPollingConfig.enable
if result.success, let data = result.data {
// Generate notifications based on result
try await generateNotificationsFromPollingResult(result: result, config: scheduleConfig)
}
} catch {
}
} catch {
print("Error executing poll: \(error)")
}
}
@@ -3454,7 +3454,7 @@ const config: ConfigureOptions = {
genericPolling: {
enabled: true,
schedules: [
// Starred Projects Polling
// Starred Projects Polling
{
request: starredProjectsRequest,
schedule: {
@@ -3463,7 +3463,7 @@ const config: ConfigureOptions = {
maxConcurrentPolls: 1
},
notificationConfig: {
enabled: true,
enabled: true,
templates: {
singleUpdate: '{projectName} has been updated',
multipleUpdates: 'You have {count} new updates in your starred projects'