k_director 0.9.0 → 0.10.3

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: 4a7a7b652cc348b24d223f9c0df0d39443a61699e6b7221eaa65499d517f155b
4
- data.tar.gz: 7b196d138fa1953a54562e0e381aee32754b55f43eada1981ac45db973c55209
3
+ metadata.gz: fb7ed7623517d20d588f3fd176ee05dd8d28161d5164b099eaef39152475735d
4
+ data.tar.gz: 54b3ce3d61554f6d6f85b82167b9f1fcb82de4ccaacd7ec970ca68ae8cf07ccf
5
5
  SHA512:
6
- metadata.gz: 03cb460ca47b4c4c5ef5f355ef13882ffd1b38b9590ecba60eb4c49551efe91d067029c79c02b9e5526a12677b23cbd87accf473650c62daa1ca91de4b71be8c
7
- data.tar.gz: 14294acc2367c38f19f7c1ccb5dcecdcbf58bd86fc754bce974de4bb75ad635a8b21b36d698362d08d5eb584e0da23c4475c81d7938f697cf30f9de0d704dc51
6
+ metadata.gz: d25fbb9ad8b1dcd71b6fb7a56a31d5a54022071f28559d0e31bb1d53b3274e6287342f87cca3ea2f0e7dd812f436db2eb4458454266e83ea5f9c4202d9d2ad34
7
+ data.tar.gz: 486576cb37d37f4e973df1a4baf0a1430188d29a525fddc64b79528ed16f2bb830aa04de81fe65e94a3a258c5d8d75d1d901a7d1f272859f84430ad9cb48a1c8
@@ -0,0 +1,5 @@
1
+ {
2
+ "cSpell.words": [
3
+ "postcss"
4
+ ]
5
+ }
data/docs/CHANGELOG.md CHANGED
@@ -1,3 +1,38 @@
1
+ ## [0.10.2](https://github.com/klueless-io/k_director/compare/v0.10.1...v0.10.2) (2022-02-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * package_json, remove_package_lcok, remove_yarn_locak, create_yarn_lock ([d69c6a5](https://github.com/klueless-io/k_director/commit/d69c6a53a80551cdf5ac73024de8d2e597c37614))
7
+ * package_json, remove_package_lcok, remove_yarn_locak, create_yarn_lock ([fdeef48](https://github.com/klueless-io/k_director/commit/fdeef481763160ca0c8d306491d7eb2e29536641))
8
+
9
+ ## [0.10.1](https://github.com/klueless-io/k_director/compare/v0.10.0...v0.10.1) (2022-02-06)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * package_json, add set by group, remove and re ove by group ([93317f8](https://github.com/klueless-io/k_director/commit/93317f8b590ac2551e72072e93ca9b7f0d54f568))
15
+
16
+ # [0.10.0](https://github.com/klueless-io/k_director/compare/v0.9.0...v0.10.0) (2022-02-06)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * package_json set key converted to string and stripped ([784b33d](https://github.com/klueless-io/k_director/commit/784b33db2a045e8273e4e5a30747f0b05cc50cfd))
22
+
23
+
24
+ ### Features
25
+
26
+ * add package_json dsl support to nuxt3 and rubygem ([9b4650d](https://github.com/klueless-io/k_director/commit/9b4650d48deaeb158ef25300b12f9de5725bf2c0))
27
+ * add sort package json keys to package_json dsl ([90e2041](https://github.com/klueless-io/k_director/commit/90e2041759714faa1333c51226102e7ab8041a0a))
28
+
29
+ # [0.9.0](https://github.com/klueless-io/k_director/compare/v0.8.1...v0.9.0) (2022-02-05)
30
+
31
+
32
+ ### Features
33
+
34
+ * add package_json dsl support ([15b3ad7](https://github.com/klueless-io/k_director/commit/15b3ad7472a3374e646c391a7271fb7782636afe))
35
+
1
36
  ## [0.8.1](https://github.com/klueless-io/k_director/compare/v0.8.0...v0.8.1) (2022-02-05)
2
37
 
3
38
 
@@ -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,20 +159,73 @@ 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)
170
189
  load
171
190
 
172
- @package[key] = value
191
+ set_key_value(key, value, group: group)
173
192
 
174
193
  write
175
194
 
176
195
  self
177
196
  end
178
197
 
198
+ def remove(key, group: nil)
199
+ load
200
+
201
+ key = key.to_s.strip
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)
211
+
212
+ write
213
+
214
+ self
215
+ end
216
+
217
+ # Package.sort using `npx sort-package-json`
218
+ # ----------------------------------------------------------------------
219
+
220
+ # Sort the package.json keys using `npx sort-package-json`
221
+ def sort
222
+ run_command 'npx sort-package-json'
223
+
224
+ load
225
+
226
+ self
227
+ end
228
+
179
229
  # Dependency option
180
230
  # ----------------------------------------------------------------------
181
231
 
@@ -213,10 +263,36 @@ module KDirector
213
263
  @package_file = File.join(k_builder.target_folder, 'package.json')
214
264
  end
215
265
 
216
- # # Getter for target folder
217
- # def package_file
218
- # hash['package_file']
219
- # 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
220
296
 
221
297
  # -----------------------------------
222
298
  # Helpers
@@ -259,7 +335,7 @@ module KDirector
259
335
  # run_command "code #{package_file}"
260
336
  # end
261
337
 
262
- # private
338
+ private
263
339
 
264
340
  def get_group(key)
265
341
  group = configuration.package_json.package_groups[key]
@@ -269,6 +345,18 @@ module KDirector
269
345
  group
270
346
  end
271
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
+
272
360
  def run_command(command)
273
361
  parent.k_builder.run_command(command)
274
362
  end
@@ -37,11 +37,34 @@ module KDirector
37
37
 
38
38
  # Setup the default package groups
39
39
  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])
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('semver-ruby' , 'Semantic Release for Ruby' , %w[semantic-release github:klueless-js/semantic-release-rubygem @semantic-release/changelog @semantic-release/git])
45
+
46
+ set_package_group('semver-nuxt' , 'Semantic Release for Nuxt' , %w[
47
+ semantic-release
48
+ @semantic-release/changelog
49
+ @semantic-release/git
50
+ ])
51
+
52
+ set_package_group('tailwind-nuxt' , 'TailwindCSS for Nuxt' , %w[
53
+ tailwindcss@latest
54
+ postcss@latest
55
+ autoprefixer@latest
56
+ ])
57
+
58
+ set_package_group('storybook-nuxt' , 'Storybook for (Vite/Nuxt)' , %w[
59
+ @storybook/vue3@6.4.18
60
+ @storybook/addon-postcss@2.0.0
61
+ @storybook/addon-storysource@6.4.18
62
+ storybook-builder-vite
63
+ ])
64
+
65
+ # Currently these two need to be forced
66
+ # @storybook/addon-docs@6.4.18
67
+ # @storybook/addon-essentials@6.4.18
45
68
  end
46
69
 
47
70
  def debug
@@ -10,14 +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)
13
+ github.instance_eval(&block) if block_given?
14
+
15
+ self
16
+ end
17
+
18
+ def package_json(**opts, &block)
19
+ package_json = KDirector::Dsls::Children::PackageJson.new(self, **opts)
20
+ package_json.instance_eval(&block) if block_given?
14
21
 
15
22
  self
16
23
  end
17
24
 
18
25
  def blueprint(**opts, &block)
19
26
  blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
20
- blueprint.instance_eval(&block)
27
+ blueprint.instance_eval(&block) if block_given?
21
28
 
22
29
  self
23
30
  end
@@ -15,6 +15,13 @@ module KDirector
15
15
  self
16
16
  end
17
17
 
18
+ def package_json(**opts, &block)
19
+ package_json = KDirector::Dsls::Children::PackageJson.new(self, **opts)
20
+ package_json.instance_eval(&block) if block_given?
21
+
22
+ self
23
+ end
24
+
18
25
  def blueprint(**opts, &block)
19
26
  blueprint = KDirector::Dsls::Children::Blueprint.new(self, **opts)
20
27
  blueprint.instance_eval(&block) if block_given?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KDirector
4
- VERSION = '0.9.0'
4
+ VERSION = '0.10.3'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "k_director",
3
- "version": "0.9.0",
3
+ "version": "0.10.3",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "k_director",
9
- "version": "0.9.0",
9
+ "version": "0.10.3",
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.9.0",
3
+ "version": "0.10.3",
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.9.0
4
+ version: 0.10.3
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-05 00:00:00.000000000 Z
11
+ date: 2022-02-06 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