This commit applies `strictNullChecks` to the entire codebase to improve maintainability and type safety. Key changes include: - Remove some explicit null-checks where unnecessary. - Add necessary null-checks. - Refactor static factory functions for a more functional approach. - Improve some test names and contexts for better debugging. - Add unit tests for any additional logic introduced. - Refactor `createPositionFromRegexFullMatch` to its own function as the logic is reused. - Prefer `find` prefix on functions that may return `undefined` and `get` prefix for those that always return a value.
80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
declare module '@/application/collections/*' {
|
|
export interface CollectionData {
|
|
readonly os: string;
|
|
readonly scripting: ScriptingDefinitionData;
|
|
readonly actions: ReadonlyArray<CategoryData>;
|
|
readonly functions?: ReadonlyArray<FunctionData>;
|
|
}
|
|
|
|
export interface CategoryData extends DocumentableData {
|
|
readonly children: ReadonlyArray<CategoryOrScriptData>;
|
|
readonly category: string;
|
|
}
|
|
|
|
export type CategoryOrScriptData = CategoryData | ScriptData;
|
|
export type DocumentationData = ReadonlyArray<string> | string | undefined;
|
|
|
|
export interface DocumentableData {
|
|
readonly docs?: DocumentationData;
|
|
}
|
|
|
|
export interface CodeInstruction {
|
|
readonly code: string;
|
|
readonly revertCode?: string;
|
|
}
|
|
|
|
export interface CallInstruction {
|
|
readonly call: FunctionCallsData;
|
|
}
|
|
|
|
export type InstructionHolder = CodeInstruction | CallInstruction;
|
|
|
|
export interface ParameterDefinitionData {
|
|
readonly name: string;
|
|
readonly optional?: boolean;
|
|
}
|
|
|
|
export type FunctionDefinition = {
|
|
readonly name: string;
|
|
readonly parameters?: readonly ParameterDefinitionData[];
|
|
};
|
|
|
|
export type CodeFunctionData = FunctionDefinition & CodeInstruction;
|
|
|
|
export type CallFunctionData = FunctionDefinition & CallInstruction;
|
|
|
|
export type FunctionData = CodeFunctionData | CallFunctionData;
|
|
|
|
export interface FunctionCallParametersData {
|
|
readonly [index: string]: string;
|
|
}
|
|
|
|
export interface FunctionCallData {
|
|
readonly function: string;
|
|
readonly parameters?: FunctionCallParametersData;
|
|
}
|
|
|
|
export type FunctionCallsData = readonly FunctionCallData[] | FunctionCallData | undefined;
|
|
|
|
export type ScriptDefinition = DocumentableData & {
|
|
readonly name: string;
|
|
readonly recommend?: string;
|
|
};
|
|
|
|
export type CodeScriptData = ScriptDefinition & CodeInstruction;
|
|
|
|
export type CallScriptData = ScriptDefinition & CallInstruction;
|
|
|
|
export type ScriptData = CodeScriptData | CallScriptData;
|
|
|
|
export interface ScriptingDefinitionData {
|
|
readonly language: string;
|
|
readonly fileExtension: string;
|
|
readonly startCode: string;
|
|
readonly endCode: string;
|
|
}
|
|
|
|
const content: CollectionData;
|
|
export default content;
|
|
}
|