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 +4 -4
- data/.vscode/settings.json +5 -0
- data/docs/CHANGELOG.md +35 -0
- data/lib/k_director/dsls/children/package_json.rb +105 -17
- data/lib/k_director/dsls/children/package_json_configuration.rb +28 -5
- data/lib/k_director/dsls/nuxt3_dsl.rb +9 -2
- data/lib/k_director/dsls/ruby_gem_dsl.rb +7 -0
- 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: fb7ed7623517d20d588f3fd176ee05dd8d28161d5164b099eaef39152475735d
|
4
|
+
data.tar.gz: 54b3ce3d61554f6d6f85b82167b9f1fcb82de4ccaacd7ec970ca68ae8cf07ccf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d25fbb9ad8b1dcd71b6fb7a56a31d5a54022071f28559d0e31bb1d53b3274e6287342f87cca3ea2f0e7dd812f436db2eb4458454266e83ea5f9c4202d9d2ad34
|
7
|
+
data.tar.gz: 486576cb37d37f4e973df1a4baf0a1430188d29a525fddc64b79528ed16f2bb830aa04de81fe65e94a3a258c5d8d75d1d901a7d1f272859f84430ad9cb48a1c8
|
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
|
-
|
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,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
|
-
|
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
|
-
#
|
217
|
-
#
|
218
|
-
|
219
|
-
|
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
|
-
|
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('
|
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?
|
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.
|
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
|
+
"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
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.
|
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-
|
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
|