Breeze 打字稿工具

Breeze Typescript Tooling

使用神奇的Breeze Typescript Entity Generator tool,但不断出错

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);

我确定它可以很好地抓取元数据。似乎我应该使用 interfaceAdapter 配置 breeze,但是 repo 中的示例在使用它为该工具导入元数据之前没有在 breeze 上配置任何内容。

我们忘记为最新版本的 breeze-client 更新 tsgen.js,它使用 breeze.base.debug.js 作为默认 js 文件而不是 breeze.debug.js。 breeze.debug.js 文件有默认的模型库,但 breeze.base.debug.js 没有。

我已将 tsgen.js 更新为使用 breeze.debug.js。请获取最新版本并重试。

我正在努力从 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