Example #1
0
        static void CheckPubspecDocument(YamlDocument doc, DartProjectType type)
        {
            // Exists "name"
            YamlScalarNode name = doc.GetScalarNode(new[] { _nameYaml });

            if (name == null)
            {
                throw new DartProjectException($"Dart project error: missing '{_nameYaml}' !!!", DartProjectError.PubspecInvalidFormat);
            }

            // Exists "description"
            YamlScalarNode description = doc.GetScalarNode(new[] { _descriptionYaml });

            if (description == null)
            {
                throw new DartProjectException($"Dart project error: missing '{_descriptionYaml}' !!!", DartProjectError.PubspecInvalidFormat);
            }

            // Exists "author"
            YamlScalarNode author = doc.GetScalarNode(new[] { _authorYaml });

            if (author == null && type == DartProjectType.Package)
            {
                throw new DartProjectException($"Dart project error: missing '{_authorYaml}' !!!", DartProjectError.PubspecInvalidFormat);
            }

            // Exists "homepage"
            YamlScalarNode homepage = doc.GetScalarNode(new[] { _homepageYaml });

            if (homepage == null && type == DartProjectType.Package)
            {
                throw new DartProjectException($"Dart project error: missing '{_homepageYaml}' !!!", DartProjectError.PubspecInvalidFormat);
            }

            // Exists "version"
            YamlScalarNode version = doc.GetScalarNode(new[] { _versionYaml });

            if (version == null)
            {
                throw new DartProjectException($"Dart project error: missing '{_versionYaml}' !!!", DartProjectError.PubspecInvalidFormat);
            }

            // Exists "dependencies"
            YamlMappingNode dependencies = doc.GetMappingNode(new[] { _dependeciesYaml });

            if (dependencies == null)
            {
                throw new DartProjectException($"Dart project error: missing '{_dependeciesYaml}' section !!!", DartProjectError.PubspecInvalidFormat);
            }

            // Exists "dev_dependencies"
            YamlMappingNode devDependencies = doc.GetMappingNode(new[] { _devDependeciesYaml });

            if (devDependencies == null)
            {
                throw new DartProjectException($"Dart project error: missing '{_devDependeciesYaml}' section !!!", DartProjectError.PubspecInvalidFormat);
            }

            // Exists "environment"
            YamlMappingNode environment = doc.GetMappingNode(new[] { _environmentYaml });

            if (environment == null)
            {
                throw new DartProjectException($"Dart project error: missing '{_environmentYaml}' section !!!", DartProjectError.PubspecInvalidFormat);
            }

            // Exists "sdk"
            YamlScalarNode sdk = doc.GetScalarNode(new[] { _environmentYaml, _sdkYaml });

            if (sdk == null)
            {
                throw new DartProjectException($"Dart project error: missing '{_sdkYaml}' section !!!", DartProjectError.PubspecInvalidFormat);
            }
        }