Инструментарий Breeze Typescript

#typescript #breeze

#typescript #breeze

Вопрос:

Использую фантастический инструмент Breeze Typescript Entity Generator, но продолжаю получать ошибку

 Error: Unable to locate the default implementation of the 'modelLibrary' interface. Possible options are 'ko', 'backingStore' or 'backbone'. See the breeze.config.initializeAdapterInstances method.
  

Ошибка возникает в этой строке в tsgen-core.js:

 var metadataStore = breeze.MetadataStore.importMetadata(metadata);
  

Я уверен, что он отлично обрабатывает метаданные. Похоже, я должен настраивать breeze с помощью interfaceAdapter, но пример в репозитории ничего не настраивает в breeze, прежде чем использовать его для импорта метаданных для этого инструмента.

Ответ №1:

Мы забыли обновить tsgen.js breeze-client до последней версии, которая использует breeze.base.debug.js js-файл по умолчанию вместо breeze.debug.js . breeze.debug.js файл имеет библиотеку моделей по умолчанию, но breeze.base.debug.js не делает этого.

Я обновил tsgen.js для использования breeze.debug.js . Пожалуйста, получите последнюю версию и повторите попытку.

Комментарии:

1. Я обновил свой tsgen, чтобы использовать var breeze = require(‘breeze-client/ breeze.debug’); но я получаю сообщение об ошибке: не удается найти модуль ‘breeze-client/breeze.debug’ в package.json У меня есть «breeze-client»: «2.0.0-alpha.18», какмогу ли я получить этот файл отладки?

2. Я рекомендую вам использовать новый более новый breeze-metadata-generator , который доступен в виде пакета npm

3. У меня есть некоторые пользовательские материалы, поэтому я просмотрел текущий код и увидел, что могу это сделать. исправлено, выполнив это вместо var backing = require(‘breeze-client/bundles/breeze-client-adapter-model-library-backing-store.umd’); var breeze = require(‘breeze-client/bundles/breeze-client.umd’); а затем вызывая backing . ModelLibraryBackingStoreAdapter.register() в моем методе генерации;

Ответ №2:

Я работаю над переходом от IEdmModel к metadata.json и столкнулся с этим. Чтобы решить вашу проблему, мне пришлось зарегистрировать резервную копию библиотеки моделей:

 var backing = require('breeze-client/bundles/breeze-client-adapter-model-library-backing-store.umd');
var breeze = require('breeze-client/bundles/breeze-client.umd');

backing.ModelLibraryBackingStoreAdapter.register();
  

Чтобы получить csdl метаданных, я собрал метод расширения для преобразования IEdmModel в csdl.

https://gist.github.com/Rodbourn/691e5277f061b26189820c03504a544b