ember-did-resize-modifier icon indicating copy to clipboard operation
ember-did-resize-modifier copied to clipboard

Ember 4.x incompatibility [due to deprecated manager-capabilities.modifiers-3-13]

Open jacobq opened this issue 3 years ago • 5 comments

DEPRECATION: Versions of modifier manager capabilities prior to 3.22 have been deprecated. You must update to the 3.22 capabilities. [deprecation id: manager-capabilities.modifiers-3-13] See https://deprecations.emberjs.com/v3.x#toc_manager-capabilities-modifiers-3-13 for more details.

becomes and error in Ember 4.x: Invalid modifier manager compatibility specified

Repro here: https://github.com/jacobq/repro-ember-did-resize-incompat-with-4x

  1. ember new proj
  2. cd proj
  3. ember install ember-did-resize-modifier
  4. Edit app/templates/application.hbs:
<main {{did-resize this.appAction}}></main>
  1. ember g controller application
  2. Edit app/controllers/application.js:
import Controller from '@ember/controller';
import { action } from '@ember/object';

export default class ApplicationController extends Controller {
  @action
  appAction() {
    console.log(`${Date.now()}: appAction called`);
  }
}
  1. ember s
  2. Open in web browser
  3. Observe error in DevTools/console:
vendor.js:37701 Uncaught Error: Invalid modifier manager compatibility specified
    at modifierCapabilities (vendor.js:37701)
    at _default.setupListener (vendor.js:63292)
    at CustomModifierManager.getDelegateFor (vendor.js:37750)
    at CustomModifierManager.create (vendor.js:37766)
    at Object.evaluate (vendor.js:45056)
    at AppendOpcodes.evaluate (vendor.js:43636)
    at LowLevelVM.evaluateSyscall (vendor.js:47416)
    at LowLevelVM.evaluateInner (vendor.js:47372)
    at LowLevelVM.evaluateOuter (vendor.js:47364)
    at VM.next (vendor.js:48333)

jacobq avatar Feb 25 '22 21:02 jacobq

Heads up. I have a feeling this package isn't maintained or monitored anymore. There are a number of unanswered issues/PRs/questions in here.

I'm not an official anything here! Just been watching an issue for awhile!

emoncuso avatar Feb 25 '22 22:02 emoncuso

Heads up. I have a feeling this package isn't maintained or monitored anymore. There are a number of unanswered issues/PRs/questions in here.

I'm not an official anything here! Just been watching an issue for awhile!

Ah, you're probably right...last human commit in the default branch appears about 2 years old: https://github.com/gmurphey/ember-did-resize-modifier/commit/81fd00d5f631e5e40610ff305869fd58c8b74718 (no judgment either...that's me on a lot of repos...I get it :/)

I'll see if I can breath a little life into it with a PR/fork, but I just noticed that yarn && ember test fails right now (thanks @dependabot-bot :P):

Build Error (broccoli-persistent-filter:Babel > [Babel: @ember/test-helpers]) in @ember/test-helpers/application.js

[BABEL] /home/user/tmp/ember-did-resize-modifier/@ember/test-helpers/application.js: Cannot find module '@babel/helper-environment-visitor'
Require stack:
- /home/user/tmp/ember-did-resize-modifier/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js
- /home/user/tmp/ember-did-resize-modifier/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js
- /home/user/tmp/ember-did-resize-modifier/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js
- /home/user/tmp/ember-did-resize-modifier/node_modules/@babel/core/node_modules/@babel/traverse/lib/traverse-node.js
- /home/user/tmp/ember-did-resize-modifier/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js
- /home/user/tmp/ember-did-resize-modifier/node_modules/@babel/core/lib/index.js
- /home/user/tmp/ember-did-resize-modifier/node_modules/broccoli-babel-transpiler/lib/worker.js

I was hoping maybe I could just tweak the version here: https://github.com/gmurphey/ember-did-resize-modifier/blob/0634ef324d30948107f16c8b58fc68e10bf3850f/addon/modifiers/did-resize.js#L9

jacobq avatar Feb 25 '22 22:02 jacobq

2 hours later here's what I have :rofl:

 export default setModifierManager(
   (owner) => ({
-    capabilities: capabilities('3.13'),
+    capabilities: capabilities('3.22'),
 
     createModifier(factory) {
-      return new factory.class();
+      return new factory();
     },

jacobq avatar Feb 25 '22 22:02 jacobq

Fork available in case anyone cares https://github.com/jacobq/ember-did-resize-modifier/tree/jacobq/ember-4x

-    "ember-did-resize-modifier": "^1.0.0",
+    "ember-did-resize-modifier": "jacobq/ember-did-resize-modifier#566bf6ef1f85d727987e06547aab13d323dff254",

jacobq avatar Feb 25 '22 22:02 jacobq

I'd recommend ember-on-resize-modifier as what looks to be a drop in replacement which is compatible with Ember v4.

jrjohnson avatar Mar 01 '22 23:03 jrjohnson