mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-02-28 12:50:38 +00:00
40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import { CodeGeneratorError, IJSExpression } from '../../types';
|
|
|
|
export function transformFuncExpr2MethodMember(
|
|
methodName: string,
|
|
functionBody: string,
|
|
): string {
|
|
if (functionBody.indexOf('function') < 8) {
|
|
return functionBody.replace('function', methodName);
|
|
}
|
|
return functionBody;
|
|
}
|
|
|
|
export function getFuncExprBody(functionBody: string) {
|
|
const start = functionBody.indexOf('{');
|
|
const end = functionBody.lastIndexOf('}');
|
|
|
|
if (start < 0 || end < 0 || end < start) {
|
|
throw new CodeGeneratorError('JSExpression has no valid body.');
|
|
}
|
|
|
|
const body = functionBody.slice(start + 1, end);
|
|
return body;
|
|
}
|
|
|
|
export function generateValue(value: any): string {
|
|
if (value && (value as IJSExpression).type === 'JSExpression') {
|
|
return (value as IJSExpression).value;
|
|
}
|
|
|
|
throw new CodeGeneratorError('Not a JSExpression');
|
|
}
|
|
|
|
export function isJsExpression(value: any): boolean {
|
|
return (
|
|
value &&
|
|
typeof value === 'object' &&
|
|
(value as IJSExpression).type === 'JSExpression'
|
|
);
|
|
}
|