syllabusobject
Version:
A deterministic builder for static syllabus structures with filename-safe output.
36 lines (27 loc) • 784 B
JavaScript
// builders/exerciseBuilder.js
import { createQuestion } from "../models/Question.js";
export function createExerciseWrapper(rawExercise, tcodeRef) {
return {
...rawExercise,
addQuestion(type, name, questionNo, questionPart = "", { tags = [] } = {}) {
const exerciseName = rawExercise.name;
const chapterId = rawExercise.chapterId;
const exerciseId = rawExercise.id;
const tcodeName = tcodeRef.tcodeName;
const question = createQuestion({
name,
type,
questionNo,
questionPart,
tags,
chapterId,
exerciseId,
exerciseName,
tcodeName,
existingQuestions: tcodeRef.questions
});
tcodeRef.questions.push(question);
return question;
}
};
}