UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

45 lines 3.61 kB
export function isCodeBloc(v) { if (typeof v === "string") return true; if (!Array.isArray(v)) return false; for (const item of v) { if (!isCodeBloc(item)) return false; } return true; } export function tgdCodeStringify(code, indent = "") { if (typeof code === "string") return `${indent}${code}`; if (!code) return ""; const subIndent = `${indent} `; return code .filter(item => item !== null) .filter(item => !Array.isArray(item) || item.length > 0) .map(line => tgdCodeStringify(line, subIndent)) .join("\n"); } export function expandVariables(definition, prefix, comment = "----------------------------------------") { const names = Object.keys(definition); if (names.length === 0) return []; return [ `// ${comment}`, ...names.map(name => `${prefix} ${definition[name]} ${name};`), ]; } export function expandFunctions(definition, comment) { if (isCodeBloc(definition)) return [definition]; const names = Object.keys(definition); if (names.length === 0) return []; const result = comment ? [`// ${comment}`] : []; for (const name of names) { result.push(definition[name], ""); } return result; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFkZXIvY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLFVBQVUsVUFBVSxDQUFDLENBQVU7SUFDakMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFFdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUE7SUFFbkMsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFBO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBaUIsRUFBRSxNQUFNLEdBQUcsRUFBRTtJQUMzRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFBO0lBRXZELElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFFcEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQTtJQUNqQyxPQUFPLElBQUk7U0FDTixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUN2RCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUczQixVQUFrQyxFQUNsQyxNQUFjLEVBQ2QsT0FBTyxHQUFHLDBDQUEwQztJQUVwRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3JDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFFakMsT0FBTztRQUNILE1BQU0sT0FBTyxFQUFFO1FBQ2YsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDO0tBQ2pFLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FDM0IsVUFBMEMsRUFDMUMsT0FBZ0I7SUFFaEIsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRS9DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUVqQyxNQUFNLE1BQU0sR0FBa0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQzlELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2pCLENBQUMifQ==