public void GeneratorEnumCode_ReturnCorrectly()
        {
            var generatedCode = _generator.Generate(typeof(TestEnum1));
            var sampleCode    = "export enum TestEnum1 {\r\n  NSW = 0,\r\n  ACT = 1,\r\n  VIC = 2\r\n}\r\nexport const TestEnum1Array = [\r\n  'NSW',\r\n  'ACT',\r\n  'VIC',\r\n];\r\n";

            Assert.Equal(sampleCode, generatedCode);
        }
コード例 #2
0
        private void GenerateCode()
        {
            try
            {
                _codeWriter.DeleteGeneratedFiles();

                foreach (var item in _schema.Enums)
                {
                    EnumCodeGenerator.Generate(item, Settings);
                }
                foreach (var item in _schema.Structs)
                {
                    if (string.IsNullOrEmpty(item.switchEnum))
                    {
                        ObjectCodeGenerator.Generate(item, ObjectType.SimpleStruct, Settings);
                    }
                    else
                    {
                        ObjectCodeGenerator.Generate(item, ObjectType.MutableStruct, Settings);
                    }
                }
                foreach (var item in _schema.Configurations)
                {
                    ObjectCodeGenerator.Generate(item, ObjectType.SimpleObject, Settings);
                    DatabaseCodeGenerator.AddConfiguration(item.name, item.typeid);
                }

                foreach (var item in _schema.Objects)
                {
                    if (string.IsNullOrEmpty(item.switchEnum))
                    {
                        ObjectCodeGenerator.Generate(item, ObjectType.SimpleObject, Settings);
                    }
                    else
                    {
                        ObjectCodeGenerator.Generate(item, ObjectType.MutableObject, Settings);
                    }

                    DatabaseCodeGenerator.AddClass(item.name, item.typeid);
                }

                DatabaseCodeGenerator.Generate(Settings);
            }
            catch (Exception e)
            {
                Debug.LogError("Code generation falied");
                Debug.LogException(e);

                _codeWriter.DeleteGeneratedFiles();
            }
        }
        public string GenerateTypeScript(IEnumerable <Type> types)
        {
            var managedTypes = _managedTypeConvertor.Generate(types);
            var codeBuilder  = new StringBuilder();

            codeBuilder.Append(_assemblyHelper.GetAssemblyContent());

            codeBuilder.Append(_assemblyHelper.GetSectionSeparator("Enums"));
            managedTypes.Where(x => x.Category == Enums.TypeCategory.Enum).ToList().ForEach(x =>
                                                                                            codeBuilder.AppendLine(_enumGenerator.Generate(x.Type))
                                                                                            );

            codeBuilder.Append(_assemblyHelper.GetSectionSeparator("Classes"));
            managedTypes.Where(x => x.Category == Enums.TypeCategory.Object).ToList().ForEach(x =>
                                                                                              codeBuilder.AppendLine(_objectGenerator.Generate(x.Type))
                                                                                              );

            return(codeBuilder.ToString());
        }