k_director 0.10.0 → 0.10.4

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: 741cb887f450ab36a09fb0a8cbdfae5f3fbb0c61699c0f85b45489f70a370e8a
4
- data.tar.gz: 50bbfab6ae514ffdbcd779519d10a1235aa5df76932f5a0e7d5b67f3eb3b8f5e
3
+ metadata.gz: 698c7a115b9641c2e43e67a9687dc5915a4db15a01804213e8d9b032cc343989
4
+ data.tar.gz: 8c7fe44606d3d30bab53f338c40f9891673adc1758389cf26938946b936b7ae2
5
5
  SHA512:
6
- metadata.gz: 2fc8d306520190e022aec53d56750cdff63d70dd56b70041389aaac086d954ad11d370df325cedddaaba428063c61492b71681f36ac3049a05334702bc986bc5
7
- data.tar.gz: baad0f5b9986f35880cb86b1da28670c114b1c307bf04651979968f765f3eaabd7ed106ae848ddc4abec299ca7bbf9221c9ec1d36621dcdb7d2e38295be875d0
6
+ metadata.gz: 89dde4df4e1e0560b05e73155cb22c508b299a7be4d43d6fea261f5fc26cd52ef62d13413f95638cb5832e259ff92aa5afead9ee48ec4d5a67bf815d2747b364
7
+ data.tar.gz: 37d154d3cf14db3b63eb83c9110851ff50cddc335d326bbf3676b74afd07c6e38b3a3bb34729f26c25024167a8fa2b6c243aa284b4e9764ce4ce1c424054047b
@@ -0,0 +1,5 @@
1
+ {
2
+ "cSpell.words": [
3
+ "postcss"
4
+ ]
5
+ }
data/docs/CHANGELOG.md CHANGED
@@ -1,3 +1,38 @@
1
+ ## [0.10.3](https://github.com/klueless-io/k_director/compare/v0.10.2...v0.10.3) (2022-02-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * package_json and multi-settings #settings(**opts, group: nil) ([7f23a08](https://github.com/klueless-io/k_director/commit/7f23a08751c3bca7ea99685f33a95eeed8786e1a))
7
+
8
+ ## [0.10.2](https://github.com/klueless-io/k_director/compare/v0.10.1...v0.10.2) (2022-02-06)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * package_json, remove_package_lcok, remove_yarn_locak, create_yarn_lock ([d69c6a5](https://github.com/klueless-io/k_director/commit/d69c6a53a80551cdf5ac73024de8d2e597c37614))
14
+ * package_json, remove_package_lcok, remove_yarn_locak, create_yarn_lock ([fdeef48](https://github.com/klueless-io/k_director/commit/fdeef481763160ca0c8d306491d7eb2e29536641))
15
+
16
+ ## [0.10.1](https://github.com/klueless-io/k_director/compare/v0.10.0...v0.10.1) (2022-02-06)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * package_json, add set by group, remove and re ove by group ([93317f8](https://github.com/klueless-io/k_director/commit/93317f8b590ac2551e72072e93ca9b7f0d54f568))
22
+
23
+ # [0.10.0](https://github.com/klueless-io/k_director/compare/v0.9.0...v0.10.0) (2022-02-06)
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * package_json set key converted to string and stripped ([784b33d](https://github.com/klueless-io/k_director/commit/784b33db2a045e8273e4e5a30747f0b05cc50cfd))
29
+
30
+
31
+ ### Features
32
+
33
+ * add package_json dsl support to nuxt3 and rubygem ([9b4650d](https://github.com/klueless-io/k_director/commit/9b4650d48deaeb158ef25300b12f9de5725bf2c0))
34
+ * add sort package json keys to package_json dsl ([90e2041](https://github.com/klueless-io/k_director/commit/90e2041759714faa1333c51226102e7ab8041a0a))
35
+
1
36
  # [0.9.0](https://github.com/klueless-io/k_director/compare/v0.8.1...v0.9.0) (2022-02-05)
2
37
 
3
38
 
@@ -32,6 +32,7 @@ module KDirector
32
32
  @options.template_base_folder ||= default_template_base_folder
33
33
  @options.on_exist ||= :skip # %i[skip write compare]
34
34
  @options.on_action ||= :queue # %i[queue execute]
35
+ @options.active = true unless defined?(@options.active)
35
36
  end
36
37
 
37
38
  def data(name = nil, **opts)
@@ -55,7 +56,8 @@ module KDirector
55
56
  {
56
57
  on_exist: @options.on_exist,
57
58
  on_action: @options.on_action,
58
- template_base_folder: @options.template_base_folder
59
+ template_base_folder: @options.template_base_folder,
60
+ active: @options.active
59
61
  }.merge(opts)
60
62
  end
61
63
 
@@ -63,6 +65,10 @@ module KDirector
63
65
  k_builder.configuration
64
66
  end
65
67
 
68
+ def active?
69
+ @options.active == true
70
+ end
71
+
66
72
  def director_name
67
73
  @options.director_name
68
74
  end
@@ -99,7 +99,7 @@ module KDirector
99
99
  def load
100
100
  raise KDirector::Error, 'package.json does not exist' unless File.exist?(package_file)
101
101
 
102
- puts 'loading...'
102
+ # puts 'loading...'
103
103
 
104
104
  content = File.read(package_file)
105
105
  @package = JSON.parse(content)
@@ -109,7 +109,7 @@ module KDirector
109
109
 
110
110
  # Write the package.json file
111
111
  def write
112
- puts 'writing...'
112
+ # puts 'writing...'
113
113
 
114
114
  content = JSON.pretty_generate(@package)
115
115
 
@@ -120,22 +120,19 @@ module KDirector
120
120
 
121
121
  # Remove a script reference by key
122
122
  def remove_script(key)
123
- load
123
+ remove(key, group: 'scripts')
124
+ # load
124
125
 
125
- @package['scripts']&.delete(key)
126
+ # @package['scripts']&.delete(key)
126
127
 
127
- write
128
+ # write
128
129
 
129
130
  self
130
131
  end
131
132
 
132
133
  # Add a script with key and value (command line to run)
133
134
  def add_script(key, value)
134
- load
135
-
136
- @package['scripts'][key] = value
137
-
138
- write
135
+ set(key, value, group: 'scripts')
139
136
 
140
137
  self
141
138
  end
@@ -162,15 +159,55 @@ module KDirector
162
159
  @package
163
160
  end
164
161
 
162
+ # Package.settings is a hash of settings that can be applied to package.json
163
+ # ----------------------------------------------------------------------
164
+
165
+ # Settings
166
+ #
167
+ # Add multiple settings to the package.json
168
+ # @param opts [Hash] Hash of settings to add
169
+ # opts[:group] is the group to add the settings to
170
+ def settings(**opts)
171
+ load
172
+
173
+ group = opts.delete(:group)
174
+
175
+ opts.each do |key, value|
176
+ set_key_value(key, value, group: group)
177
+ end
178
+
179
+ write
180
+
181
+ self
182
+ end
183
+
165
184
  # Package.set
166
185
  # ----------------------------------------------------------------------
167
186
 
168
187
  # Set a property value in the package
169
- def set(key, value)
188
+ def set(key, value, group: nil)
189
+ load
190
+
191
+ set_key_value(key, value, group: group)
192
+
193
+ write
194
+
195
+ self
196
+ end
197
+
198
+ def remove(key, group: nil)
170
199
  load
171
200
 
172
201
  key = key.to_s.strip
173
- @package[key] = value
202
+
203
+ if group.nil?
204
+ @package.delete(key)
205
+ else
206
+ group = group.to_s.strip
207
+ @package[group]&.delete(key)
208
+ end
209
+
210
+ @package['scripts']&.delete(key)
174
211
 
175
212
  write
176
213
 
@@ -222,14 +259,40 @@ module KDirector
222
259
  # rubocop:enable Naming/AccessorMethodName
223
260
 
224
261
  # Setter for package file
225
- def package_file=(_value)
226
- @package_file = File.join(k_builder.target_folder, 'package.json')
262
+ def package_file=(value)
263
+ @package_file = File.join(k_builder.target_folder, value)
227
264
  end
228
265
 
229
- # # Getter for target folder
230
- # def package_file
231
- # hash['package_file']
232
- # end
266
+ # Remove package-lock.json
267
+ # ----------------------------------------------------------------------
268
+
269
+ def remove_package_lock
270
+ file = File.join(k_builder.target_folder, 'package-lock.json')
271
+
272
+ File.delete(file) if File.exist?(file)
273
+
274
+ self
275
+ end
276
+
277
+ # Remove yarn.lock
278
+ # ----------------------------------------------------------------------
279
+
280
+ def remove_yarn_lock
281
+ file = File.join(k_builder.target_folder, 'yarn.lock')
282
+
283
+ File.delete(file) if File.exist?(file)
284
+
285
+ self
286
+ end
287
+
288
+ # Create yarn.lock
289
+ # ----------------------------------------------------------------------
290
+
291
+ def create_yarn_lock
292
+ run_command 'yarn install --check-files'
293
+
294
+ self
295
+ end
233
296
 
234
297
  # -----------------------------------
235
298
  # Helpers
@@ -282,6 +345,18 @@ module KDirector
282
345
  group
283
346
  end
284
347
 
348
+ def set_key_value(key, value, group: nil)
349
+ key = key.to_s.strip
350
+
351
+ if group.nil?
352
+ @package[key] = value
353
+ else
354
+ group = group.to_s.strip
355
+ @package[group] = {} unless @package[group]
356
+ @package[group][key] = value
357
+ end
358
+ end
359
+
285
360
  def run_command(command)
286
361
  parent.k_builder.run_command(command)
287
362
  end
@@ -36,13 +36,43 @@ module KDirector
36
36
  end
37
37
 
38
38
  # Setup the default package groups
39
+ # rubocop:disable Metrics/MethodLength
39
40
  def set_default_package_groups
40
- set_package_group('webpack' , 'Webpack V5' , %w[webpack webpack-cli webpack-dev-server])
41
- set_package_group('swc' , 'SWC Transpiler' , %w[@swc/cli @swc/core swc-loader])
42
- set_package_group('babel' , 'Babel Transpiler' , %w[@babel/core @babel/cli @babel/preset-env babel-loader])
43
- set_package_group('typescript' , 'Typescript' , %w[typescript ts-loader])
44
- set_package_group('semantic-release', 'Semantic Release' , %w[semantic-release github:klueless-js/semantic-release-rubygem @semantic-release/changelog @semantic-release/git])
41
+ set_package_group('webpack' , 'Webpack V5' , %w[webpack webpack-cli webpack-dev-server])
42
+ set_package_group('swc' , 'SWC Transpiler' , %w[@swc/cli @swc/core swc-loader])
43
+ set_package_group('babel' , 'Babel Transpiler' , %w[@babel/core @babel/cli @babel/preset-env babel-loader])
44
+ set_package_group('typescript' , 'Typescript' , %w[typescript ts-loader])
45
+ set_package_group('semver-ruby' , 'Semantic Release for Ruby' , %w[
46
+ semantic-release
47
+ @semantic-release/changelog
48
+ @semantic-release/git
49
+ @klueless-js/semantic-release-rubygem@github:klueless-js/semantic-release-rubygem
50
+ ])
51
+
52
+ set_package_group('semver-nuxt' , 'Semantic Release for Nuxt' , %w[
53
+ semantic-release
54
+ @semantic-release/changelog
55
+ @semantic-release/git
56
+ ])
57
+
58
+ set_package_group('tailwind-nuxt' , 'TailwindCSS for Nuxt' , %w[
59
+ tailwindcss@latest
60
+ postcss@latest
61
+ autoprefixer@latest
62
+ ])
63
+
64
+ set_package_group('storybook-nuxt' , 'Storybook for (Vite/Nuxt)' , %w[
65
+ @storybook/vue3@6.4.18
66
+ @storybook/addon-postcss@2.0.0
67
+ @storybook/addon-storysource@6.4.18
68
+ storybook-builder-vite
69
+ ])
70
+
71
+ # Currently these two need to be forced
72
+ # @storybook/addon-docs@6.4.18
73
+ # @storybook/addon-essentials@6.4.18
45
74
  end
75
+ # rubocop:enable Metrics/MethodLength
46
76
 
47
77
  def debug
48
78
  log.structure(package_groups, convert_data_to: :open_struct)
@@ -10,21 +10,21 @@ module KDirector
10
10
 
11
11
  def github(**opts, &block)
12
12
  github = KDirector::Dsls::Children::Github.new(self, **opts)
13
- github.instance_eval(&block) if block_given?
13
+ github.instance_eval(&block) if github.active? && block_given?
14
14
 
15
15
  self
16
16
  end
17
17
 
18
18
  def package_json(**opts, &block)
19
19
  package_json = KDirector::Dsls::Children::PackageJson.new(self, **opts)
20
- package_json.instance_eval(&block) if block_given?
20
+ package_json.instance_eval(&block) if package_json.active? && block_given?
21
21
 
22
22
  self
23
23
  end
24
24
 
25
25
  def blueprint(**opts, &block)
26
26
  blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
27
- blueprint.instance_eval(&block) if block_given?
27
+ blueprint.instance_eval(&block) if blueprint.active? && block_given?
28
28
 
29
29
  self
30
30
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KDirector
4
- VERSION = '0.10.0'
4
+ VERSION = '0.10.4'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "k_director",
3
- "version": "0.10.0",
3
+ "version": "0.10.4",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "k_director",
9
- "version": "0.10.0",
9
+ "version": "0.10.4",
10
10
  "devDependencies": {
11
11
  "@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
12
12
  "@semantic-release/changelog": "^6.0.1",
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k_director",
3
- "version": "0.10.0",
3
+ "version": "0.10.4",
4
4
  "description": "Command line and CI/CD tools for k_director",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k_director
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-06 00:00:00.000000000 Z
11
+ date: 2022-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: k_config
@@ -100,6 +100,7 @@ files:
100
100
  - ".releaserc.json"
101
101
  - ".rspec"
102
102
  - ".rubocop.yml"
103
+ - ".vscode/settings.json"
103
104
  - Gemfile
104
105
  - Guardfile
105
106
  - README.md