mirror of
https://github.com/google/blockly.git
synced 2026-01-08 17:40:09 +01:00
* feat: add IVariableHolder * chore: reorganize variable prompts to early return * fix: add retriggering prompt for conflicting params * chore: add unit tests * chore: fix build * chore: reorganize checking for param conflicts * fix: visibility * chore: rename variable holder interface * chore: fix typo * chore: fix lint
48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2023 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
|
|
/**
|
|
* Legacy means of representing a procedure signature. The elements are
|
|
* respectively: name, parameter names, and whether it has a return value.
|
|
*/
|
|
export type ProcedureTuple = [string, string[], boolean];
|
|
|
|
/**
|
|
* Procedure block type.
|
|
*
|
|
* @internal
|
|
*/
|
|
export interface ProcedureBlock {
|
|
getProcedureCall: () => string;
|
|
renameProcedure: (p1: string, p2: string) => void;
|
|
getProcedureDef: () => ProcedureTuple;
|
|
}
|
|
|
|
/** @internal */
|
|
export interface LegacyProcedureDefBlock {
|
|
getProcedureDef: () => ProcedureTuple
|
|
}
|
|
|
|
/** @internal */
|
|
export function isLegacyProcedureDefBlock(block: Object):
|
|
block is LegacyProcedureDefBlock {
|
|
return (block as any).getProcedureDef !== undefined;
|
|
}
|
|
|
|
/** @internal */
|
|
export interface LegacyProcedureCallBlock {
|
|
getProcedureCall: () => string;
|
|
renameProcedure: (p1: string, p2: string) => void;
|
|
}
|
|
|
|
/** @internal */
|
|
export function isLegacyProcedureCallBlock(block: Object):
|
|
block is LegacyProcedureCallBlock {
|
|
return (block as any).getProcedureCall !== undefined &&
|
|
(block as any).renameProcedure !== undefined;
|
|
}
|