/ / Override addon function - ember.js, ember-cli, monkeypatching

Zastąp funkcję addon - ember.js, ember-cli, monkeypatching

Chciałbym zastąpić metodę w DockYard ember-changeset-validations addon, dzięki czemu mogę tłumaczyć komunikaty o błędach za pośrednictwem I18n. To jest plik, w którym znajduje się funkcja: https://github.com/DockYard/ember-changeset-validations/blob/master/addon/utils/get-messages.js

Czy jest jakiś sposób, żeby to zmienić getMessages() metoda bez konieczności rozwidlania całego repo?

Odpowiedzi:

1 dla odpowiedzi № 1

ember-cli użyj definicji / wymagania pary. Więc możesz gdzieś w inicjalizatorze umieścić kod

let oldImplementation = require("ember-changeset-validations/utils/get-messages").default;
define("ember-changeset-validations/utils/get-messages", ["exports", "ember", "ember-changeset-validations/utils/messages"], function (exports, Ember, defaultMessages) {
// override module implementation here
exports["default"] = oldImplementation;
});

W ten sposób przedefiniujesz moduł (więc powinieneś zachować interfejs modułu taki sam). Ale to brzydki hack