Skip to content

Commit 42a53b5

Browse files
committed
fix: some bugs fixed
1 parent d632e7f commit 42a53b5

File tree

11 files changed

+65
-26
lines changed

11 files changed

+65
-26
lines changed

packages/react-renderer/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export * from './api/app';
22
export * from './api/component';
3-
export { definePlugin } from './plugin';
3+
export { defineRendererPlugin } from './plugin';
44
export * from './context/render';
55
export * from './context/router';
66

packages/react-renderer/src/plugin.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ export const rendererExtends: RendererExtends = {
4545
},
4646
};
4747

48-
export function definePlugin(plugin: Plugin<RendererExtends>) {
48+
export function defineRendererPlugin(plugin: Plugin<RendererExtends>) {
4949
return plugin;
5050
}

packages/renderer-core/package.json

+3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434
"devDependencies": {
3535
"@types/lodash-es": "^4.17.12"
3636
},
37+
"peerDependencies": {
38+
"@alilc/lowcode-shared": "workspace:*"
39+
},
3740
"publishConfig": {
3841
"access": "public",
3942
"registry": "https://registry.npmjs.org/"

packages/renderer-core/src/apiCreate.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export function createRenderer<Render = IRender>(
2020
const rendererMain = instantiationService.createInstance(RendererMain);
2121

2222
return async (options) => {
23-
rendererMain.initialize(options);
23+
await rendererMain.initialize(options);
2424

2525
return rendererMain.startup<Render>(renderAdapter);
2626
};

packages/renderer-core/src/main.ts

+3
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,11 @@ export class RendererMain {
7777
this.runtimeUtilService.add(util);
7878
}
7979

80+
const constants = this.schemaService.get('constants') ?? {};
81+
8082
const globalScope = this.codeRuntimeService.getScope();
8183
globalScope.setValue({
84+
constants,
8285
utils: this.runtimeUtilService.toExpose(),
8386
...this.runtimeIntlService.toExpose(),
8487
});

packages/renderer-core/src/parts/code-runtime/codeScope.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export class CodeScope implements ICodeScope {
5454
if (this.__node.current[name] && !force) {
5555
return;
5656
}
57-
this.__node.current.value[name] = value;
57+
this.__node.current[name] = value;
5858
}
5959

6060
setValue(value: PlainObject, replace = false) {

packages/renderer-core/src/parts/schema/schemaService.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export class SchemaService implements ISchemaService {
3939

4040
initialize(schema: unknown): void {
4141
if (!isObject(schema)) {
42-
throw Error('schema muse a object');
42+
throw Error('schema must a object');
4343
}
4444

4545
Object.keys(schema).forEach((key) => {

packages/renderer-core/src/parts/schema/validation.ts

+42-11
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,54 @@
11
import { type Spec } from '@alilc/lowcode-shared';
22

3-
const SCHEMA_VALIDATIONS_OPTIONS: Partial<
4-
Record<
5-
keyof Spec.Project,
6-
{
7-
valid: (value: any) => boolean;
8-
description: string;
9-
}
10-
>
11-
> = {};
3+
interface ValidationRule<T> {
4+
valid: (value: T) => boolean;
5+
description: string;
6+
}
7+
8+
type ValidOptionRecord = {
9+
[K in keyof Spec.Project]: ValidationRule<Spec.Project[K]>;
10+
};
11+
12+
const SCHEMA_KEYS = [
13+
'version',
14+
'componentsMap',
15+
'componentsTree',
16+
'utils',
17+
'i18n',
18+
'constants',
19+
'css',
20+
'config',
21+
'meta',
22+
'router',
23+
'pages',
24+
];
25+
26+
const SCHEMA_VALIDATIONS_OPTIONS: Partial<ValidOptionRecord> = {
27+
componentsMap: {
28+
valid(value) {
29+
return Array.isArray(value);
30+
},
31+
description: 'componentsMap 必须是一个数组',
32+
},
33+
componentsTree: {
34+
valid(value) {
35+
return Array.isArray(value);
36+
},
37+
description: 'componentsTree 必须是一个数组',
38+
},
39+
};
1240

1341
export function schemaValidation<K extends keyof Spec.Project>(key: K, value: Spec.Project[K]) {
42+
if (!SCHEMA_KEYS.includes(key)) {
43+
return `schema 的字段名必须是${JSON.stringify(SCHEMA_KEYS)}中的一个`;
44+
}
45+
1446
const validOption = SCHEMA_VALIDATIONS_OPTIONS[key];
1547

1648
if (validOption) {
1749
const result = validOption.valid(value);
18-
1950
if (!result) {
20-
throw Error(validOption.description);
51+
return validOption.description;
2152
}
2253
}
2354

packages/shared/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "@alilc/lowcode-shared",
33
"version": "1.0.0-alpha.0",
44
"type": "module",
5-
"main": "dist/low-code-shared.js",
5+
"main": "dist/low-code-shared.cjs",
66
"module": "dist/low-code-shared.js",
77
"types": "dist/index.d.ts",
88
"files": [

packages/shared/src/abilities/storage.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,10 @@ export class KeyValueStore<O = PlainObject, K extends keyof O = keyof O> {
5353
if (this.setterValidation) {
5454
const valid = this.setterValidation(key, value);
5555

56-
invariant(
57-
valid === false || typeof valid === 'string',
58-
`failed to config ${key.toString()}, only predefined options can be set under strict mode, predefined options: ${valid ? valid : ''}`,
59-
'KeyValueStore',
60-
);
56+
if (valid !== true) {
57+
console.warn(`failed to config ${key.toString()}, validation error: ${valid ? valid : ''}`);
58+
return;
59+
}
6160
}
6261

6362
this.store.set(key, value);

packages/shared/vite.config.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { defineConfig } from 'vite';
2-
import baseConfigFn from '../../vite.base.config'
2+
import baseConfigFn from '../../vite.base.config';
33

4-
export default defineConfig(async () => baseConfigFn({
5-
name: 'LowCodeShared',
6-
}));
4+
export default defineConfig(async () =>
5+
baseConfigFn({
6+
name: 'LowCodeShared',
7+
defaultFormats: ['es', 'cjs'],
8+
}),
9+
);

0 commit comments

Comments
 (0)