parse_packwerk 0.18.1 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f712a4dfa471ea4f8652058277e83355306f809c224d3dde98ec68a960b4b89b
4
- data.tar.gz: e0f7148f0cdb4a8d8a39dc07eb5ff7c27c45ababd49a46b6067f09751f2bbf91
3
+ metadata.gz: e7ad4138e437e366112368306d99f0fb6a7d8391fa6c2542dfdcba60e62db72c
4
+ data.tar.gz: e5c61e8197584802cb4e8816a2c38330332bffee0f31ef17d2d47c2e834ebd1e
5
5
  SHA512:
6
- metadata.gz: 0f6e92205d265558bd11cfd5cff0739ce467d86ad896279be9718f032de0271f158943c03205d73c133f47295133feb9b32c2a1ffb4927521c1f772d5a433a8b
7
- data.tar.gz: 133974d86d034cfcea559f60892a2b5183f0885309b23e05176ef29fb4f91a43e287054145b7044df6837bf88423ec8c11466f594f5e9e30400fe21b006901ad
6
+ metadata.gz: c8aa241f818b4a81bec504aa12100809f113587c540ddb32cea6e65c9141b74fcf9bdc99b9ef3f95b86e253a0beec3f25a85f0138deb09995f5908d9352054e6
7
+ data.tar.gz: a6f4846034457b057021fb3a309b28020c18175086c13523fce09f3092fe5bd05d06935546b0b956e029384af9caaff61de485243c66c71276bd8700312b4829
@@ -6,6 +6,7 @@ module ParsePackwerk
6
6
 
7
7
  const :exclude, T::Array[String]
8
8
  const :package_paths, T::Array[String]
9
+ const :requires, T::Array[String]
9
10
 
10
11
  sig { returns(Configuration) }
11
12
  def self.fetch
@@ -21,6 +22,7 @@ module ParsePackwerk
21
22
  Configuration.new(
22
23
  exclude: excludes(raw_packwerk_config),
23
24
  package_paths: package_paths(raw_packwerk_config),
25
+ requires: raw_packwerk_config['require'] || []
24
26
  )
25
27
  end
26
28
 
@@ -0,0 +1,19 @@
1
+ # typed: strict
2
+
3
+ module ParsePackwerk
4
+ module Extensions
5
+ extend T::Sig
6
+
7
+ sig { returns(T::Boolean) }
8
+ def self.all_extensions_installed?
9
+ ParsePackwerk.yml.requires.include?('packwerk-extensions')
10
+ end
11
+
12
+ sig { returns(T::Boolean) }
13
+ def self.privacy_extension_installed?
14
+ all_extensions_installed? || ParsePackwerk.yml.requires.include?('packwerk/privacy/checker')
15
+ end
16
+ end
17
+
18
+ private_constant :Extensions
19
+ end
@@ -6,7 +6,7 @@ module ParsePackwerk
6
6
 
7
7
  const :name, String
8
8
  const :enforce_dependencies, T.any(T::Boolean, String)
9
- const :enforce_privacy, T.any(T::Boolean, String)
9
+ const :enforce_privacy, T.any(T::Boolean, String), default: false
10
10
  const :public_path, String, default: DEFAULT_PUBLIC_PATH
11
11
  const :metadata, MetadataYmlType
12
12
  const :dependencies, T::Array[String]
@@ -20,7 +20,7 @@ module ParsePackwerk
20
20
  new(
21
21
  name: package_name,
22
22
  enforce_dependencies: package_loaded_yml[ENFORCE_DEPENDENCIES],
23
- enforce_privacy: package_loaded_yml[ENFORCE_PRIVACY],
23
+ enforce_privacy: package_loaded_yml[ENFORCE_PRIVACY] || false,
24
24
  public_path: package_loaded_yml[PUBLIC_PATH] || DEFAULT_PUBLIC_PATH,
25
25
  metadata: package_loaded_yml[METADATA] || {},
26
26
  dependencies: package_loaded_yml[DEPENDENCIES] || [],
@@ -9,6 +9,7 @@ require 'parse_packwerk/package_todo'
9
9
  require 'parse_packwerk/package'
10
10
  require 'parse_packwerk/configuration'
11
11
  require 'parse_packwerk/package_set'
12
+ require 'parse_packwerk/extensions'
12
13
 
13
14
  module ParsePackwerk
14
15
  class MissingConfiguration < StandardError
@@ -57,10 +58,11 @@ module ParsePackwerk
57
58
  File.open(package.yml, 'w') do |file|
58
59
  merged_config = package.config
59
60
 
60
- merged_config.merge!(
61
- 'enforce_dependencies' => package.enforce_dependencies,
62
- 'enforce_privacy' => package.enforce_privacy
63
- )
61
+ merged_config.merge!('enforce_dependencies' => package.enforce_dependencies,)
62
+
63
+ if Extensions.privacy_extension_installed?
64
+ merged_config.merge!('enforce_privacy' => package.enforce_privacy)
65
+ end
64
66
 
65
67
  # We want checkers of the form `enforce_xyz` to be at the top
66
68
  merged_config_arr = merged_config.sort_by do |k, v|
@@ -77,7 +79,9 @@ module ParsePackwerk
77
79
  merged_config.merge!('public_path' => package.public_path)
78
80
  end
79
81
 
80
- if package.dependencies.any?
82
+ if package.dependencies.nil? || package.dependencies.none?
83
+ merged_config.delete('dependencies')
84
+ else
81
85
  merged_config.merge!('dependencies' => package.dependencies)
82
86
  end
83
87
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parse_packwerk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-06 00:00:00.000000000 Z
11
+ date: 2023-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime
@@ -133,6 +133,7 @@ files:
133
133
  - lib/parse_packwerk.rb
134
134
  - lib/parse_packwerk/configuration.rb
135
135
  - lib/parse_packwerk/constants.rb
136
+ - lib/parse_packwerk/extensions.rb
136
137
  - lib/parse_packwerk/package.rb
137
138
  - lib/parse_packwerk/package_set.rb
138
139
  - lib/parse_packwerk/package_todo.rb