fix: remove as Type

This commit is contained in:
JackLian 2022-12-13 17:18:37 +08:00 committed by 刘菊萍(絮黎)
parent 6aa02e612f
commit 5d042dd533
2 changed files with 22 additions and 10 deletions

View File

@ -1,25 +1,27 @@
import { AssetsJson, ComponentDescription } from '@alilc/lowcode-types';
/* eslint-disable no-param-reassign */
import { AssetsJson, ComponentDescription, Package, RemoteComponentDescription } from '@alilc/lowcode-types';
// TODO: 该转换逻辑未来需要消化掉
export function assetsTransform(assets: AssetsJson) {
const { components, packages } = assets;
const packageMaps = (packages || []).reduce((acc, cur) => {
const key = (cur.id || cur.package) as string;
const packageMaps = (packages || []).reduce((acc: Record<string, Package>, cur: Package) => {
const key = cur.id || cur.package || '';
acc[key] = cur;
return acc;
}, {} as any);
components.forEach((componentDesc) => {
let { devMode, schema, reference } = componentDesc as ComponentDescription;
components.forEach((componentDesc: ComponentDescription | RemoteComponentDescription) => {
let { devMode, schema, reference } = componentDesc;
if ((devMode as string) === 'lowcode') {
devMode = 'lowCode';
} else if (devMode === 'proCode') {
devMode = 'proCode';
}
if (devMode) {
(componentDesc as ComponentDescription).devMode = devMode;
componentDesc.devMode = devMode;
}
if (devMode === 'lowCode' && !schema && reference) {
(componentDesc as ComponentDescription).schema = packageMaps[reference.id as string].schema;
const referenceId = reference.id || '';
componentDesc.schema = packageMaps[referenceId].schema;
}
});
return assets;

View File

@ -2,6 +2,7 @@ import { Snippet, ComponentMetadata } from './metadata';
import { I18nData } from './i18n';
import { Reference } from './npm';
import { EitherOr } from './utils';
import { ComponentSchema } from './schema';
export interface AssetItem {
type: AssetType;
@ -148,6 +149,10 @@ export type Package = EitherOr<{
* window[exportName] Object
*/
exportName?: string;
/**
* schema
*/
schema?: ComponentSchema;
}, 'package', 'id'>;
/**
@ -223,7 +228,7 @@ export interface ComponentDescription extends ComponentMetadata {
/**
*
*/
export interface RemoteComponentDescription {
export interface RemoteComponentDescription extends ComponentMetadata {
/**
* window[exportName] Object
*/
@ -233,9 +238,14 @@ export interface RemoteComponentDescription {
*/
url?: string;
/**
* () npm
* () npm
*/
package?: {
npm?: string;
};
/**
* npm
*/
reference?: Reference;
}