parsePackageConfig function

({Map<String, Script> scripts, List<ConfigWarning> warnings}) parsePackageConfig(
  1. ConfigReader reader, {
  2. required String rootConfigPath,
})

Parses the scripts of a workspace package's own dpk.yaml, which may only contain version and scripts.

Implementation

({Map<String, Script> scripts, List<ConfigWarning> warnings})
parsePackageConfig(ConfigReader reader, {required String rootConfigPath}) {
  for (final key in reader.map.keys) {
    if (DpkConfig.packageKeys.contains(key)) {
      continue;
    }
    if (DpkConfig.keys.contains(key) || DpkConfig.legacyKeys.containsKey(key)) {
      throw reader.error(
        '"$key" is only allowed in the workspace root config. Move it to '
        '$rootConfigPath.',
        key: key,
      );
    }
  }
  reader.checkKeys(DpkConfig.packageKeys);
  final scriptsReader = reader.child('scripts');
  if (scriptsReader == null) {
    return (scripts: const {}, warnings: const []);
  }
  final scripts = Script.parseAll(scriptsReader);
  return (scripts: scripts, warnings: scriptsReader.warnings);
}