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) { export function assetsTransform(assets: AssetsJson) {
const { components, packages } = assets; const { components, packages } = assets;
const packageMaps = (packages || []).reduce((acc, cur) => { const packageMaps = (packages || []).reduce((acc: Record<string, Package>, cur: Package) => {
const key = (cur.id || cur.package) as string; const key = cur.id || cur.package || '';
acc[key] = cur; acc[key] = cur;
return acc; return acc;
}, {} as any); }, {} as any);
components.forEach((componentDesc) => { components.forEach((componentDesc: ComponentDescription | RemoteComponentDescription) => {
let { devMode, schema, reference } = componentDesc as ComponentDescription; let { devMode, schema, reference } = componentDesc;
if ((devMode as string) === 'lowcode') { if ((devMode as string) === 'lowcode') {
devMode = 'lowCode'; devMode = 'lowCode';
} else if (devMode === 'proCode') { } else if (devMode === 'proCode') {
devMode = 'proCode'; devMode = 'proCode';
} }
if (devMode) { if (devMode) {
(componentDesc as ComponentDescription).devMode = devMode; componentDesc.devMode = devMode;
} }
if (devMode === 'lowCode' && !schema && reference) { 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; return assets;

View File

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