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 +4 -4
- data/.vscode/settings.json +5 -0
- data/docs/CHANGELOG.md +35 -0
- data/lib/k_director/directors/base_director.rb +7 -1
- data/lib/k_director/dsls/children/package_json.rb +93 -18
- data/lib/k_director/dsls/children/package_json_configuration.rb +35 -5
- data/lib/k_director/dsls/nuxt3_dsl.rb +3 -3
- data/lib/k_director/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 698c7a115b9641c2e43e67a9687dc5915a4db15a01804213e8d9b032cc343989
|
4
|
+
data.tar.gz: 8c7fe44606d3d30bab53f338c40f9891673adc1758389cf26938946b936b7ae2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89dde4df4e1e0560b05e73155cb22c508b299a7be4d43d6fea261f5fc26cd52ef62d13413f95638cb5832e259ff92aa5afead9ee48ec4d5a67bf815d2747b364
|
7
|
+
data.tar.gz: 37d154d3cf14db3b63eb83c9110851ff50cddc335d326bbf3676b74afd07c6e38b3a3bb34729f26c25024167a8fa2b6c243aa284b4e9764ce4ce1c424054047b
|
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
|
-
|
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
|
-
|
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
|
-
|
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=(
|
226
|
-
@package_file = File.join(k_builder.target_folder,
|
262
|
+
def package_file=(value)
|
263
|
+
@package_file = File.join(k_builder.target_folder, value)
|
227
264
|
end
|
228
265
|
|
229
|
-
#
|
230
|
-
#
|
231
|
-
|
232
|
-
|
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'
|
41
|
-
set_package_group('swc' , 'SWC Transpiler'
|
42
|
-
set_package_group('babel' , 'Babel Transpiler'
|
43
|
-
set_package_group('typescript' , 'Typescript'
|
44
|
-
set_package_group('
|
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
|
data/lib/k_director/version.rb
CHANGED
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "k_director",
|
3
|
-
"version": "0.10.
|
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.
|
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
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.
|
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-
|
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
|