private static void WriteBody(CodeTextBuilder code, BlockStatement body) { code.WriteLine("{"); code.Indent(1); foreach (var statement in body.Statements) { JavaScriptStatementWriter.WriteStatementLine(code, statement); } code.Indent(-1); code.Write("}"); }
public static void WriteClass(CodeTextBuilder code, TypeMember type) { code.WriteLine($"class {type.Name} {{"); code.Indent(1); type.Members.ForEach((member, index) => { if (index > 0) { code.WriteLine(); } JavaScriptMemberWriter.WriteMember(code, member); }); code.Indent(-1); code.WriteLine("}"); }
public void WriteModule(ModuleMember module, bool privateScope = false) { _code = new CodeTextBuilder(_output.TextOptions); WriteImports(module); if (privateScope) { _code.WriteLine("(function() {"); _code.Indent(1); } WriteMembers(module); WriteGlobalBlock(module); if (privateScope) { _code.Indent(-1); _code.WriteLine("}());"); } _output.AddSourceFile(module.FolderPath, $"{module.Name.ToString(CasingStyle.Kebab)}.js", _code.ToString()); }