Exemplo n.º 1
0
        private void LoadProjectInfo()
        {
            string projectType = _metadataDocument.GetScalarValue(new[] { "project_type" });

            switch (projectType)
            {
            case "app":
                Type = DartProjectType.App;
                break;

            case "module":
                Type = DartProjectType.Module;
                break;

            case "package":
                Type = DartProjectType.Package;
                break;

            default:
                throw new ArgumentException($"Unknown Dart project type: {projectType}");
            }

            ValidatePubspecFile();

            Name        = _pubspecDocument.GetScalarValue(new[] { NameYamlNode });
            Description = _pubspecDocument.GetScalarValue(new[] { DescriptionYamlNode });
            Author      = _pubspecDocument.GetScalarValue(new[] { AuthorYamlNode });
            Homepage    = _pubspecDocument.GetScalarValue(new[] { HomepageYamlNode });
            Version     = _pubspecDocument.GetScalarValue(new[] { VersionYamlNode });
            Sdk         = _pubspecDocument.GetScalarValue(new[] { EnvironmentYamlNode, SdkYamlNode });
        }
Exemplo n.º 2
0
        private void ValidatePubspecFile()
        {
            YamlDocument    doc  = _pubspecDocument;
            DartProjectType type = Type;

            // Check if "name" exists
            YamlScalarNode name = doc.GetScalarNode(new[] { NameYamlNode });

            if (name == null)
            {
                throw new ArgumentException($"Missing '{NameYamlNode}' node inside '{PubspecFilename}' file.");
            }

            // Check if "description" exists
            YamlScalarNode description = doc.GetScalarNode(new[] { DescriptionYamlNode });

            if (description == null)
            {
                throw new ArgumentException($"Missing '{DescriptionYamlNode}' node inside '{PubspecFilename}' file.");
            }

            // Check if "author" exists
            YamlScalarNode author = doc.GetScalarNode(new[] { AuthorYamlNode });

            if (author == null && type == DartProjectType.Package)
            {
                throw new ArgumentException($"Missing '{AuthorYamlNode}' node inside '{PubspecFilename}' file.");
            }

            // Check if "homepage" exists
            YamlScalarNode homepage = doc.GetScalarNode(new[] { HomepageYamlNode });

            if (homepage == null && type == DartProjectType.Package)
            {
                throw new ArgumentException($"Missing '{HomepageYamlNode}' node inside '{PubspecFilename}' file.");
            }

            // Check if "version" exists
            YamlScalarNode version = doc.GetScalarNode(new[] { VersionYamlNode });

            if (version == null)
            {
                throw new ArgumentException($"Missing '{VersionYamlNode}' node inside '{PubspecFilename}' file.");
            }

            // Check if "dependencies" exists
            YamlMappingNode dependencies = doc.GetMappingNode(new[] { DependenciesYaml });

            if (dependencies == null)
            {
                throw new ArgumentException($"Missing '{DependenciesYaml}' node inside '{PubspecFilename}' file.");
            }

            // Check if "dev_dependencies" exists
            YamlMappingNode devDependencies = doc.GetMappingNode(new[] { DevDependenciesYaml });

            if (devDependencies == null)
            {
                throw new ArgumentException($"Missing '{DevDependenciesYaml}' node inside '{PubspecFilename}' file.");
            }

            // Check if "environment" exists
            YamlMappingNode environment = doc.GetMappingNode(new[] { EnvironmentYamlNode });

            if (environment == null)
            {
                throw new ArgumentException($"Missing '{EnvironmentYamlNode}' node inside '{PubspecFilename}' file.");
            }

            // Check if "sdk" exists
            YamlScalarNode sdk = doc.GetScalarNode(new[] { EnvironmentYamlNode, SdkYamlNode });

            if (sdk == null)
            {
                throw new ArgumentException($"Missing '{SdkYamlNode}' node inside '{PubspecFilename}' file.");
            }
        }
Exemplo n.º 3
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);
            }
        }