mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-04-20 12:28:08 +00:00
49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
import LocalAccesser from './accesser/LocalAccesser';
|
|
import OnlineAccesser from './accesser/OnlineAccesser';
|
|
import { IComponentMaterial } from './otter-core';
|
|
import { IAccesser, IMaterializeOptions } from './types';
|
|
|
|
/**
|
|
* 物料化(将普通组件包装为可接入和可流通的物料组件的过程,称为物料化)运行于 node 端
|
|
* @class Materialize
|
|
*/
|
|
class Materialize {
|
|
/**
|
|
* 物料化配置项
|
|
* @private
|
|
* @type {IMaterializeOptions}
|
|
* @memberof Materialize
|
|
*/
|
|
private options: IMaterializeOptions;
|
|
|
|
/**
|
|
* 接入器
|
|
* @private
|
|
* @type {IAccesser}
|
|
* @memberof Materialize
|
|
*/
|
|
private accesser?: IAccesser;
|
|
|
|
constructor(options: IMaterializeOptions) {
|
|
this.options = options;
|
|
}
|
|
|
|
/**
|
|
* 开始物料化
|
|
*
|
|
* @returns {Promise<IMaterialinSchema>}
|
|
* @memberof Materialize
|
|
*/
|
|
public async start(): Promise<IComponentMaterial> {
|
|
// 分发请求到对应接入器
|
|
if (this.options.accesser === 'local') {
|
|
this.accesser = new LocalAccesser(this.options);
|
|
} else {
|
|
this.accesser = new OnlineAccesser(this.options);
|
|
}
|
|
return this.accesser.access();
|
|
}
|
|
}
|
|
|
|
export default Materialize;
|