94 lines
2.4 KiB
TypeScript
94 lines
2.4 KiB
TypeScript
/*
|
|
* Copyright 2025 coze-dev Authors
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import { type ReactNode } from 'react';
|
|
|
|
import type {
|
|
ViewVariableTreeNode,
|
|
ViewVariableType,
|
|
} from '@coze-workflow/base';
|
|
|
|
import { type EditorAPI } from './components/editor/preset';
|
|
|
|
export interface Input {
|
|
name?: string;
|
|
type?: ViewVariableType;
|
|
children?: ViewVariableTreeNode[];
|
|
}
|
|
|
|
export interface Output {
|
|
name?: string;
|
|
type?: ViewVariableType;
|
|
children?: Output[];
|
|
}
|
|
|
|
// Javascript is historical data, currently only python | typescript is available.
|
|
export type LanguageType = 'python' | 'typescript' | 'javascript';
|
|
|
|
export interface PreviewerProps {
|
|
content: string;
|
|
language: LanguageType;
|
|
height?: number;
|
|
}
|
|
|
|
export interface EditorProps {
|
|
defaultContent?: string;
|
|
uuid: string;
|
|
defaultLanguage: LanguageType;
|
|
spaceId?: string;
|
|
height?: string;
|
|
width?: string;
|
|
title?: string;
|
|
readonly?: boolean;
|
|
input?: Input[];
|
|
output?: Output[];
|
|
region?: string;
|
|
locale?: string;
|
|
onClose?: () => void;
|
|
onChange?: (code: string, language: LanguageType) => void;
|
|
languageTemplates?: Array<{
|
|
language: 'typescript' | 'python';
|
|
displayName: string;
|
|
template: string;
|
|
}>;
|
|
onTestRun?: () => void;
|
|
testRunIcon?: ReactNode;
|
|
/**
|
|
* @Deprecated onTestRunStateChange has expired and is not used online
|
|
*/
|
|
onTestRunStateChange?: (status: string) => void;
|
|
}
|
|
|
|
export interface EditorOtherProps {
|
|
didMount?: (api: EditorAPI) => void;
|
|
language?: LanguageType;
|
|
}
|
|
|
|
export enum ModuleDetectionKind {
|
|
/**
|
|
* Files with imports, exports and/or import.meta are considered modules
|
|
*/
|
|
Legacy = 1,
|
|
/**
|
|
* Legacy, but also files with jsx under react-jsx or react-jsxdev and esm mode files under moduleResolution: node16+
|
|
*/
|
|
Auto = 2,
|
|
/**
|
|
* Consider all non-declaration files modules, regardless of present syntax
|
|
*/
|
|
Force = 3,
|
|
}
|