Fix typing errors from the refactoring

This commit is contained in:
Matthew Raymer
2023-09-07 18:07:53 +08:00
parent 2fba7f2a55
commit 5b5c631001
3 changed files with 186 additions and 64 deletions

View File

@@ -6,65 +6,172 @@ All browser targets in the browserslist configuration have supported ES module.
Therefore we don't build two separate bundles for differential loading. Therefore we don't build two separate bundles for differential loading.
ERROR Failed to compile with 6 errors8:44:37 PM WARNING Compiled with 5 warnings6:06:43 PM
error in ./src/views/AccountViewView.vue?vue&type=script&lang=ts [eslint]
/home/matthew/projects/kick-starter-for-time-pwa/src/components/World/components/objects/landmarks.js
98:11 warning Unexpected console statement no-console
133:7 warning Unexpected console statement no-console
144:5 warning Unexpected console statement no-console
Module not found: Error: Package path ./index is not exported from package /home/matthew/projects/kick-starter-for-time-pwa/node_modules/axios (see exports field in /home/matthew/projects/kick-starter-for-time-pwa/node_modules/axios/package.json) /home/matthew/projects/kick-starter-for-time-pwa/src/router/index.ts
210:3 warning Unexpected console statement no-console
error in src/libs/endorserServer.ts:226:53 /home/matthew/projects/kick-starter-for-time-pwa/src/views/AccountViewView.vue
362:7 warning Unexpected console statement no-console
375:7 warning Unexpected console statement no-console
404:7 warning Unexpected console statement no-console
516:7 warning Unexpected console statement no-console
536:7 warning Unexpected console statement no-console
630:5 warning Unexpected console statement no-console
682:7 warning Unexpected console statement no-console
TS18047: 'error' is possibly 'null'. /home/matthew/projects/kick-starter-for-time-pwa/src/views/ContactAmountsView.vue
224 | error instanceof Error 206:9 warning Unexpected console statement no-console
225 | ? error.message 233:9 warning Unexpected console statement no-console
> 226 | : typeof error === "object" && "message" in error
| ^^^^^
227 | ? (error as { message: string }).message
228 | : "Unknown error";
229 |
error in src/views/AccountViewView.vue:474:29 /home/matthew/projects/kick-starter-for-time-pwa/src/views/ContactGiftingView.vue
244:9 warning Unexpected console statement no-console
267:7 warning Unexpected console statement no-console
TS2304: Cannot find name 'IdentityType'. /home/matthew/projects/kick-starter-for-time-pwa/src/views/ContactsView.vue
472 | * @param {IdentityType} identity - Object containing identity information. 340:9 warning Unexpected console statement no-console
473 | */ 577:9 warning Unexpected console statement no-console
> 474 | processIdentity(identity: IdentityType) {
| ^^^^^^^^^^^^
475 | this.publicHex = identity.keys[0].publicKeyHex;
476 | this.publicBase64 = Buffer.from(this.publicHex, "hex").toString("base64");
477 | this.derivationPath = identity.keys[0].meta.derivationPath;
error in src/views/AccountViewView.vue:491:7 /home/matthew/projects/kick-starter-for-time-pwa/src/views/DiscoverView.vue
315:9 warning Unexpected console statement no-console
343:7 warning Unexpected console statement no-console
390:9 warning Unexpected console statement no-console
423:7 warning Unexpected console statement no-console
532:9 warning Unexpected console statement no-console
575:7 warning Unexpected console statement no-console
TS18046: 'err' is of type 'unknown'. /home/matthew/projects/kick-starter-for-time-pwa/src/views/HomeView.vue
489 | handleError(err: unknown) { 349:9 warning Unexpected console statement no-console
490 | if ( 498:9 warning Unexpected console statement no-console
> 491 | err.message === 521:7 warning Unexpected console statement no-console
| ^^^
492 | "Attempted to load account records with no identity available."
493 | ) {
494 | this.limitsMessage = "No identity.";
error in src/views/AccountViewView.vue:645:34 /home/matthew/projects/kick-starter-for-time-pwa/src/views/IdentitySwitcherView.vue
142:7 warning Unexpected console statement no-console
TS2345: Argument of type 'unknown' is not assignable to parameter of type 'Error | AxiosError<unknown, any>'. /home/matthew/projects/kick-starter-for-time-pwa/src/views/ImportAccountView.vue
643 | } 123:9 warning Unexpected console statement no-console
644 | } catch (error) {
> 645 | this.handleRateLimitsError(error);
| ^^^^^
646 | }
647 |
648 | this.loadingLimits = false;
error in src/views/AccountViewView.vue:726:40 /home/matthew/projects/kick-starter-for-time-pwa/src/views/ImportDerivedAccountView.vue
159:7 warning Unexpected console statement no-console
TS2345: Argument of type 'Account' is not assignable to parameter of type 'IAccount'. /home/matthew/projects/kick-starter-for-time-pwa/src/views/NewEditProjectView.vue
Property 'privateHex' is missing in type 'Account' but required in type 'IAccount'. 183:9 warning Unexpected console statement no-console
724 | await db.settings.update(MASTER_SETTINGS_KEY, { activeDid: account.did }); 215:7 warning Unexpected console statement no-console
725 | 297:13 warning Unexpected console statement no-console
> 726 | this.updateActiveAccountProperties(account); 320:11 warning Unexpected console statement no-console
| ^^^^^^^ 345:7 warning Unexpected console statement no-console
727 | }
728 |
729 | /**
/home/matthew/projects/kick-starter-for-time-pwa/src/views/ProjectViewView.vue
387:9 warning Unexpected console statement no-console
421:7 warning Unexpected console statement no-console
457:7 warning Unexpected console statement no-console
552:9 warning Unexpected console statement no-console
554:11 warning Unexpected console statement no-console
/home/matthew/projects/kick-starter-for-time-pwa/src/views/ProjectsView.vue
131:9 warning Unexpected console statement no-console
144:7 warning Unexpected console statement no-console
221:9 warning Unexpected console statement no-console
237:7 warning Unexpected console statement no-console
/home/matthew/projects/kick-starter-for-time-pwa/src/views/SeedBackupView.vue
94:7 warning Unexpected console statement no-console
✖ 44 problems (0 errors, 44 warnings)
You may use special comments to disable some warnings.
Use // eslint-disable-next-line to ignore the next line.
Use /* eslint-disable */ to ignore all warnings in a file.
warning
/models/lupine_plant/textures/lambert2SG_baseColor.png is 3.75 MB, and won't be precached. Configure maximumFileSizeToCacheInBytes to change this limit.
warning
/models/lupine_plant/textures/lambert2SG_normal.png is 4.91 MB, and won't be precached. Configure maximumFileSizeToCacheInBytes to change this limit.
warning
asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets:
js/project.44f30c9f.js (318 KiB)
js/statistics.8a97010a.js (586 KiB)
js/chunk-vendors.a4845bfb.js (411 KiB)
js/705.f6a6ce2a.js (252 KiB)
img/textures/leafy-autumn-forest-floor.jpg (705 KiB)
models/lupine_plant/textures/lambert2SG_baseColor.png (3.58 MiB)
models/lupine_plant/textures/lambert2SG_normal.png (4.69 MiB)
warning
entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
app (447 KiB)
js/chunk-vendors.a4845bfb.js
css/app.8f21529c.css
js/app.8833cebc.js
File Size Gzipped
dist/js/statistics.8a97010a.js 585.72 KiB 148.80 KiB
dist/js/chunk-vendors.a4845bfb.js 411.44 KiB 137.82 KiB
dist/js/project.44f30c9f.js 317.61 KiB 78.67 KiB
dist/js/705.f6a6ce2a.js 251.66 KiB 87.12 KiB
dist/js/891.33615e4f.js 147.32 KiB 42.09 KiB
dist/js/153.e2c8e249.js 146.26 KiB 42.21 KiB
dist/js/820.13565d16.js 66.10 KiB 18.33 KiB
dist/js/contact-qr.e170ec33.js 54.85 KiB 15.63 KiB
dist/js/772.7b4c53a7.js 30.29 KiB 7.21 KiB
dist/js/361.898a4525.js 27.40 KiB 8.19 KiB
dist/js/account.77d86130.js 17.51 KiB 5.93 KiB
dist/js/app.8833cebc.js 17.31 KiB 5.84 KiB
dist/js/contacts.3fc90ff8.js 16.94 KiB 5.52 KiB
dist/js/discover.24106939.js 15.30 KiB 5.22 KiB
dist/js/536.3bb13201.js 15.23 KiB 4.84 KiB
dist/workbox-5b385ed2.js 14.11 KiB 4.93 KiB
dist/js/home.218b99dd.js 13.89 KiB 4.97 KiB
dist/js/help.50d3117b.js 12.49 KiB 4.38 KiB
dist/js/projects.417a6cb7.js 8.71 KiB 3.00 KiB
dist/js/contact-amounts.a32b0ccd.js 8.44 KiB 3.25 KiB
dist/js/229.120e09bf.js 7.99 KiB 2.72 KiB
dist/js/identity-switcher.c7937333.js 7.44 KiB 2.52 KiB
dist/js/new-edit-project.0552181b.js 7.36 KiB 3.11 KiB
dist/js/300.dcaeb2a3.js 6.56 KiB 3.24 KiB
dist/js/seed-backup.76a0f7b3.js 3.99 KiB 1.97 KiB
dist/js/import-derive.c688d4b8.js 3.81 KiB 1.82 KiB
dist/js/import-account.c3fa35fd.js 3.54 KiB 1.66 KiB
dist/js/new-edit-account.bb763be2.js 3.39 KiB 1.51 KiB
dist/js/431.5a6d64e0.js 3.38 KiB 2.56 KiB
dist/service-worker.js 3.37 KiB 1.38 KiB
dist/js/scan-contact.46be989a.js 2.79 KiB 1.18 KiB
dist/js/start.091a7740.js 2.70 KiB 1.30 KiB
dist/js/new-identifier.bb379420.js 2.12 KiB 1.18 KiB
dist/js/93.b873dbbf.js 2.08 KiB 1.61 KiB
dist/js/new-edit-commitment.9248d367.j 1.96 KiB 1.05 KiB
s
dist/js/confirm-contact.02004d1d.js 1.89 KiB 1.04 KiB
dist/js/858.ae4c08ec.js 0.97 KiB 0.78 KiB
dist/css/app.8f21529c.css 18.41 KiB 4.39 KiB
dist/css/discover.73ee9bd3.css 14.77 KiB 6.25 KiB
dist/css/new-edit-project.73ee9bd3.css 14.77 KiB 6.25 KiB
dist/css/contacts.abb5e493.css 0.40 KiB 0.23 KiB
dist/css/contact-amounts.5b26ccd4.css 0.31 KiB 0.20 KiB
dist/css/home.828bc66e.css 0.25 KiB 0.19 KiB
dist/css/project.828bc66e.css 0.25 KiB 0.19 KiB
dist/css/statistics.828bc66e.css 0.25 KiB 0.19 KiB
Images and other types of assets omitted.
Build at: 2023-09-07T10:06:43.972Z - Hash: 2b39fcd4d0e78263 - Time: 32016ms
DONE Build complete. The dist directory is ready to be deployed.
INFO Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html

View File

@@ -221,9 +221,11 @@ export async function createAndSubmitGive(
return { type: "success", response }; return { type: "success", response };
} catch (error: unknown) { } catch (error: unknown) {
const errorMessage: string = const errorMessage: string =
error instanceof Error error === null
? "Null error"
: error instanceof Error
? error.message ? error.message
: typeof error === "object" && "message" in error : typeof error === "object" && error !== null && "message" in error
? (error as { message: string }).message ? (error as { message: string }).message
: "Unknown error"; : "Unknown error";

View File

@@ -287,7 +287,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { AxiosError } from "axios/index"; import { AxiosError } from "axios";
import "dexie-export-import"; import "dexie-export-import";
import { Component, Vue } from "vue-facing-decorator"; import { Component, Vue } from "vue-facing-decorator";
import { useClipboard } from "@vueuse/core"; import { useClipboard } from "@vueuse/core";
@@ -313,7 +313,7 @@ interface Notification {
interface IAccount { interface IAccount {
did: string; did: string;
publicKeyHex: string; publicKeyHex: string;
privateHex: string; privateHex?: string;
derivationPath: string; derivationPath: string;
} }
@@ -471,15 +471,24 @@ export default class AccountViewView extends Vue {
* Processes the identity and updates the component's state. * Processes the identity and updates the component's state.
* @param {IdentityType} identity - Object containing identity information. * @param {IdentityType} identity - Object containing identity information.
*/ */
processIdentity(identity: IdentityType) { processIdentity(identity: IIdentifier) {
this.publicHex = identity.keys[0].publicKeyHex; if (
this.publicBase64 = Buffer.from(this.publicHex, "hex").toString("base64"); identity &&
this.derivationPath = identity.keys[0].meta.derivationPath; identity.keys &&
identity.keys.length > 0 &&
identity.keys[0].meta
) {
this.publicHex = identity.keys[0].publicKeyHex;
this.publicBase64 = Buffer.from(this.publicHex, "hex").toString("base64");
this.derivationPath = identity.keys[0].meta.derivationPath;
db.settings.update(MASTER_SETTINGS_KEY, { db.settings.update(MASTER_SETTINGS_KEY, {
activeDid: identity.did, activeDid: identity.did,
}); });
this.checkLimitsFor(identity); this.checkLimitsFor(identity);
} else {
// Handle the case where any of these are null or undefined
}
} }
/** /**
@@ -488,8 +497,9 @@ export default class AccountViewView extends Vue {
*/ */
handleError(err: unknown) { handleError(err: unknown) {
if ( if (
err instanceof Error &&
err.message === err.message ===
"Attempted to load account records with no identity available." "Attempted to load account records with no identity available."
) { ) {
this.limitsMessage = "No identity."; this.limitsMessage = "No identity.";
this.loadingLimits = false; this.loadingLimits = false;
@@ -665,16 +675,19 @@ export default class AccountViewView extends Vue {
* *
* @param {AxiosError | Error} error - The error object. * @param {AxiosError | Error} error - The error object.
*/ */
private handleRateLimitsError(error: AxiosError | Error) { private handleRateLimitsError(error: unknown) {
if (error instanceof AxiosError) { if (error instanceof AxiosError) {
const data = error.response?.data as ErrorResponse; const data = error.response?.data as ErrorResponse;
this.limitsMessage = data?.error?.message || "Bad server response."; this.limitsMessage = data?.error?.message || "Bad server response.";
console.error("Bad response retrieving limits:", error); console.error("Bad response retrieving limits:", error);
} else if ( } else if (
error instanceof Error &&
error.message === error.message ===
"Attempted to load Give records with no identity available." "Attempted to load Give records with no identity available."
) { ) {
this.limitsMessage = "No identity."; this.limitsMessage = "No identity.";
} else {
// Handle other unknown errors
} }
} }