glimmerjs / glimmer-vm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TypeScript errors

jelhan opened this issue Β· comments

We are running into type errors with packages from this repository in ember-math-helpers:

../node_modules/.pnpm/@glimmer+manager@0.84.2/node_modules/@glimmer/manager/dist/types/lib/public/modifier.d.ts:45:5 - error TS2416: Property 'getTag' in type 'CustomModifierManager<O, ModifierInstance>' is not assignable to the same property in base type 'InternalModifierManager<CustomModifierState<ModifierInstance>, object>'.
  Type '({ tag }: CustomModifierState<ModifierInstance>) => UpdatableTag' is not assignable to type '(modifier: CustomModifierState<ModifierInstance>) => UpdatableTag | null'.
    Type 'MonomorphicTagBase<MonomorphicTagTypes.Updatable>' is missing the following properties from type 'MonomorphicTagBase<MonomorphicTagTypes.Updatable>': [TYPE], [COMPUTE]

45     getTag({ tag }: CustomModifierState<ModifierInstance>): UpdatableTag;
       ~~~~~~
../node_modules/.pnpm/@glimmer+validator@0.44.0/node_modules/@glimmer/validator/dist/types/lib/validators.d.ts:78:45 - error TS2422: A class can only implement an object type or intersection of object types with statically known members.

78 declare class MonomorphicTagImpl implements MonomorphicTag {
                                               ~~~~~~~~~~~~~~

See RobbieTheWagner/ember-math-helpers#1423 and the failing CI pipeline for reproduction.

Relevant dependencies:

  • typescript: 5.4.3
  • @glimmer/manager: 0.84.2
  • @glimmer/validator: 0.84.2

Looks like you have @glimmer/validator 0.44.0 in your deps, which isn't supported πŸ˜…

you can use pnpm.overrides to set a min version of @glimmer/validator.

can you provide the pnpm why @glimmer/validator output?
we should fix whatever is specifying that ancient of a dep

I don't see @glimmer/validator with 0.44.0 in the dependency tree:

$ pnpm why @glimmer/validator
Legend: production dependency, optional only, dev only

ember-math-helpers@4.0.0 /home/main/Code/open-source/ember-math-helpers/ember-math-helpers

dependencies:
ember-source 5.2.0
β”œβ”€β”¬ @glimmer/manager 0.84.2
β”‚ β”œβ”€β”¬ @glimmer/reference 0.84.2
β”‚ β”‚ └── @glimmer/validator 0.84.2
β”‚ └── @glimmer/validator 0.84.2
β”œβ”€β”¬ @glimmer/node 0.84.2
β”‚ └─┬ @glimmer/runtime 0.84.2
β”‚   β”œβ”€β”¬ @glimmer/program 0.84.2
β”‚   β”‚ β”œβ”€β”¬ @glimmer/manager 0.84.2
β”‚   β”‚ β”‚ β”œβ”€β”¬ @glimmer/reference 0.84.2
β”‚   β”‚ β”‚ β”‚ └── @glimmer/validator 0.84.2
β”‚   β”‚ β”‚ └── @glimmer/validator 0.84.2
β”‚   β”‚ └─┬ @glimmer/opcode-compiler 0.84.2
β”‚   β”‚   └─┬ @glimmer/reference 0.84.2
β”‚   β”‚     └── @glimmer/validator 0.84.2
β”‚   β”œβ”€β”¬ @glimmer/reference 0.84.2
β”‚   β”‚ └── @glimmer/validator 0.84.2
β”‚   └── @glimmer/validator 0.84.2
β”œβ”€β”¬ @glimmer/opcode-compiler 0.84.2
β”‚ └─┬ @glimmer/reference 0.84.2
β”‚   └── @glimmer/validator 0.84.2
└─┬ @glimmer/program 0.84.2
  └─┬ @glimmer/manager 0.84.2
    β”œβ”€β”¬ @glimmer/reference 0.84.2
    β”‚ └── @glimmer/validator 0.84.2
    └── @glimmer/validator 0.84.2

since you have a monorepo, what's the output of pnpm why @glimmer/validator -r?

since you have a monorepo, what's the output of pnpm why @glimmer/validator -r?

Thanks a lot for that hint. The test app has pulled in @glimmer/validator with 0.44.0 as transitive dependency of @glimmer/tracking with version 1.1.2.

@glimmer/tracking 1.1.2
└── @glimmer/validator 0.44.0

Enforcing @glimmer/tracking to be ^0.84.3 with PNPM overrides fixed that issue.

I opened an issue here: glimmerjs/glimmer.js#413