Make getInputData returns a readonly (typescript)

Especially for developers it would make sense if getInputData returned a readonly structure (typescript). This way the performance can be maintained (no automatic copying) and still be sure that the node does not change the data.

There is no automatic copying and so no performance hit. If a developer wants to make changes to that data, it is on him to copy it himself. You can find that in the documentation here:

I know that the structure is not copied automatically.
That’s why I suggested adapting the type signature of getInputData.

So instead of

getInputData(inputIndex?: number, inputName?: string): INodeExecutionData[];

a different signature:

getInputData(inputIndex?: number, inputName?: string): readonly INodeExecutionDataReadOnly[];

export interface INodeExecutionDataReadOnly {
	readonly [key: string]: IDataObjectReadOnly | IBinaryKeyDataReadOnly | undefined;
	// TODO: Rename this one as json does not really fit as it is not json (which is a string) it is actually a JS object
	readonly json: IDataObjectReadOnly;
	// json: object;
	// json?: object;
	readonly binary?: IBinaryKeyDataReadOnly;

export interface IDataObjectReadOnly {
	[key: string]: GenericValue | IDataObjectReadOnly | GenericValue[] | readonly IDataObjectReadOnly[];

export interface IBinaryKeyDataReadOnly {
    readonly [key: string]: IBinaryData;