packwerk-extensions 0.0.1 → 0.0.2

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: dcb5ef4db4ff6cf134b8707feb0cb4009c8e38db338c407bcbf1fa88da19f79e
4
- data.tar.gz: 59e1d1382dba41b33924eb82e679a830ccd642446a52748afabcd2d86b7f64b2
3
+ metadata.gz: b7fea06d86abb03ba6ef34da052ca7cffcfbb0a05e0c8d6dfd2f48e5bd45fbb1
4
+ data.tar.gz: e66f49a41bd969e2ebc0801f42647823d19e3d2a158e53d1cb8854a7b84fa42c
5
5
  SHA512:
6
- metadata.gz: 3873288311271201955075edbf6fe17af585cf62efd1b5d925908e1f7791a45cf1b19e6c4bce29ab5d2bc624ed3eaacece6bf0a153f98051261408a8c2ec1d58
7
- data.tar.gz: 4651d546fa1aff7e1c4521c5311711d7598d9f2defb621132172d1a3058a3d7b15bddfde40e67f8e658490df1616ff90ad14e2fc45e18d0383a7f67f3331c4a2
6
+ metadata.gz: 960ef0ab02a22b82663d44b6b28ca530e4998b683dafd35c1bf6d6fd8d778aca8d062f9ca96d6149c000a39686f02c7c859d04992df489f06ad5c1044f4e8754
7
+ data.tar.gz: ba25114ea98091d77ee510f03ca553713a5b532a4b4cd287dffff77accb7ad83882532abf4a147a96d7e402ba364a7fed4193691374ced53bf637e45d47cb11b
@@ -67,7 +67,7 @@ module Packwerk
67
67
 
68
68
  sig do
69
69
  params(
70
- constant: ConstantDiscovery::ConstantContext,
70
+ constant: ConstantContext,
71
71
  explicitly_private_constants: T::Array[String]
72
72
  ).returns(T::Boolean)
73
73
  end
@@ -7,7 +7,9 @@ module Packwerk
7
7
  extend T::Sig
8
8
  include Packwerk::Validator
9
9
 
10
- sig { override.params(package_set: PackageSet, configuration: Configuration).returns(ApplicationValidator::Result) }
10
+ Result = Packwerk::Validator::Result
11
+
12
+ sig { override.params(package_set: PackageSet, configuration: Configuration).returns(Result) }
11
13
  def call(package_set, configuration)
12
14
  privacy_settings = package_manifests_settings_for(configuration, 'enforce_privacy')
13
15
 
@@ -16,7 +18,7 @@ module Packwerk
16
18
  load_paths: configuration.load_paths
17
19
  )
18
20
 
19
- results = T.let([], T::Array[ApplicationValidator::Result])
21
+ results = T.let([], T::Array[Result])
20
22
 
21
23
  privacy_settings.each do |config_file_path, setting|
22
24
  results << check_enforce_privacy_setting(config_file_path, setting)
@@ -53,13 +55,13 @@ module Packwerk
53
55
  private
54
56
 
55
57
  sig do
56
- params(config_file_path: String, setting: T.untyped).returns(ApplicationValidator::Result)
58
+ params(config_file_path: String, setting: T.untyped).returns(Result)
57
59
  end
58
60
  def check_public_path(config_file_path, setting)
59
61
  if setting.is_a?(String) || setting.nil?
60
- ApplicationValidator::Result.new(ok: true)
62
+ Result.new(ok: true)
61
63
  else
62
- ApplicationValidator::Result.new(
64
+ Result.new(
63
65
  ok: false,
64
66
  error_value: "'public_path' option must be a string in #{config_file_path.inspect}: #{setting.inspect}"
65
67
  )
@@ -67,13 +69,13 @@ module Packwerk
67
69
  end
68
70
 
69
71
  sig do
70
- params(config_file_path: String, setting: T.untyped).returns(ApplicationValidator::Result)
72
+ params(config_file_path: String, setting: T.untyped).returns(Result)
71
73
  end
72
74
  def check_enforce_privacy_setting(config_file_path, setting)
73
75
  if [TrueClass, FalseClass, Array, NilClass].include?(setting.class)
74
- ApplicationValidator::Result.new(ok: true)
76
+ Result.new(ok: true)
75
77
  else
76
- ApplicationValidator::Result.new(
78
+ Result.new(
77
79
  ok: false,
78
80
  error_value: "Invalid 'enforce_privacy' option in #{config_file_path.inspect}: #{setting.inspect}"
79
81
  )
@@ -82,16 +84,16 @@ module Packwerk
82
84
 
83
85
  sig do
84
86
  params(configuration: Configuration, package_set: PackageSet, name: T.untyped, location: T.untyped,
85
- config_file_path: T.untyped).returns(ApplicationValidator::Result)
87
+ config_file_path: T.untyped).returns(Result)
86
88
  end
87
89
  def check_private_constant_location(configuration, package_set, name, location, config_file_path)
88
90
  declared_package = package_set.package_from_path(relative_path(configuration, config_file_path))
89
91
  constant_package = package_set.package_from_path(location)
90
92
 
91
93
  if constant_package == declared_package
92
- ApplicationValidator::Result.new(ok: true)
94
+ Result.new(ok: true)
93
95
  else
94
- ApplicationValidator::Result.new(
96
+ Result.new(
95
97
  ok: false,
96
98
  error_value: "'#{name}' is declared as private in the '#{declared_package}' package but appears to be " \
97
99
  "defined\nin the '#{constant_package}' package. Packwerk resolved it to #{location}."
@@ -99,16 +101,16 @@ module Packwerk
99
101
  end
100
102
  end
101
103
 
102
- sig { params(constants: T.untyped, config_file_path: String).returns(T::Array[ApplicationValidator::Result]) }
104
+ sig { params(constants: T.untyped, config_file_path: String).returns(T::Array[Result]) }
103
105
  def assert_constants_can_be_loaded(constants, config_file_path)
104
106
  constants.map do |constant|
105
107
  if constant.start_with?('::')
106
- constant.try(&:constantize) && ApplicationValidator::Result.new(ok: true)
108
+ constant.try(&:constantize) && Result.new(ok: true)
107
109
  else
108
110
  error_value = "'#{constant}', listed in the 'enforce_privacy' option " \
109
111
  "in #{config_file_path}, is invalid.\nPrivate constants need to be " \
110
112
  'prefixed with the top-level namespace operator `::`.'
111
- ApplicationValidator::Result.new(
113
+ Result.new(
112
114
  ok: false,
113
115
  error_value: error_value
114
116
  )
@@ -116,11 +118,11 @@ module Packwerk
116
118
  end
117
119
  end
118
120
 
119
- sig { params(name: T.untyped, config_file_path: T.untyped).returns(ApplicationValidator::Result) }
121
+ sig { params(name: T.untyped, config_file_path: T.untyped).returns(Result) }
120
122
  def private_constant_unresolvable(name, config_file_path)
121
123
  explicit_filepath = "#{(name.start_with?('::') ? name[2..] : name).underscore}.rb"
122
124
 
123
- ApplicationValidator::Result.new(
125
+ Result.new(
124
126
  ok: false,
125
127
  error_value: "'#{name}', listed in #{config_file_path}, could not be resolved.\n" \
126
128
  "This is probably because it is an autovivified namespace - a namespace module that doesn't have a\n" \
@@ -61,7 +61,7 @@ module Packwerk
61
61
 
62
62
  sig do
63
63
  params(
64
- constant: ConstantDiscovery::ConstantContext,
64
+ constant: ConstantContext,
65
65
  explicitly_private_constants: T::Array[String]
66
66
  ).returns(T::Boolean)
67
67
  end
@@ -7,10 +7,12 @@ module Packwerk
7
7
  extend T::Sig
8
8
  include Packwerk::Validator
9
9
 
10
- sig { override.params(package_set: PackageSet, configuration: Configuration).returns(ApplicationValidator::Result) }
10
+ Result = Packwerk::Validator::Result
11
+
12
+ sig { override.params(package_set: PackageSet, configuration: Configuration).returns(Result) }
11
13
  def call(package_set, configuration)
12
14
  visible_settings = package_manifests_settings_for(configuration, 'visible_to')
13
- results = T.let([], T::Array[ApplicationValidator::Result])
15
+ results = T.let([], T::Array[Result])
14
16
 
15
17
  all_package_names = package_set.map(&:name).to_set
16
18
 
@@ -19,7 +21,7 @@ module Packwerk
19
21
 
20
22
  next if [TrueClass, FalseClass, 'strict'].include?(setting.class)
21
23
 
22
- results << ApplicationValidator::Result.new(
24
+ results << Result.new(
23
25
  ok: false,
24
26
  error_value: "\tInvalid 'enforce_visibility' option: #{setting.inspect} in #{config.inspect}"
25
27
  )
@@ -32,13 +34,13 @@ module Packwerk
32
34
  packages_not_found = setting.to_set - all_package_names
33
35
 
34
36
  if packages_not_found.any?
35
- results << ApplicationValidator::Result.new(
37
+ results << Result.new(
36
38
  ok: false,
37
39
  error_value: "'visible_to' option must only contain valid packages in #{config_file_path.inspect}. Invalid packages: #{packages_not_found.to_a.inspect}"
38
40
  )
39
41
  end
40
42
  else
41
- results << ApplicationValidator::Result.new(
43
+ results << Result.new(
42
44
  ok: false,
43
45
  error_value: "'visible_to' option must be an array in #{config_file_path.inspect}."
44
46
  )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packwerk-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-13 00:00:00.000000000 Z
11
+ date: 2022-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: packwerk