k_director 0.9.0 → 0.10.3

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: 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