k_director 0.10.0 → 0.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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