Beispiel #1
0
        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("}");
        }
Beispiel #2
0
        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("}");
        }
Beispiel #3
0
        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());
        }