nextcloud / nextcloud/office

Add a tsc/vue-tsc typecheck gate (8 pre-existing type errors in OfficeOverview.vue)

Open
#49 0 comments 0 reactions 1 assignee View on GitHub

@moodyjmz is already working on this.

Since Jul 3, 2026.

enhancement
Dominant language
JavaScript
Stars
6
Forks
1
Avg merge
1d 3h
Merged PRs (30d)
10

Description

Discovered while setting up the Vitest harness (#47): there is no tsc/vue-tsc script anywhere in package.jsonlint only runs eslint src. As a result, 8 pre-existing type errors in src/views/OfficeOverview.vue have never been caught by CI or local tooling.

Confirmed pre-existing and unrelated to the test-infra work: same errors, same count, with or without the OfficeOverview.vue/src/utils/ refactor from #47 (verified via git stash).

Running npx vue-tsc --noEmit on main currently reports:

  • Node[] vs the object-literal shape returned by getAllOfficeFiles/resultToNode (TS2345, missing internal Node properties like _attributes/_data)
  • INode not assignable to Node in several places (same root cause, template-side)
  • a computed property name error (TS2464)
  • Date | undefined not assignable to number | Date (NcDateTime's timestamp prop, x2)

Scope for this issue:

  • Fix the 8 existing errors (likely centers on reconciling @nextcloud/files' Node vs INode types, and handling mtime: Date | undefined).
  • Add a typecheck (or similar) script running vue-tsc --noEmit.
  • Wire it into CI (new workflow or extend an existing one), separate from eslint.

Not bundling this into #47 — that issue is scoped to runtime test coverage (Vitest), not static type-checking, and this is an unrelated pre-existing gap.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.