sewing_kit 0.91.0 → 0.92.0

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: 3f6d423df01ea72b33c61ce184e02adec82b1e10b5e490b0be2b125270357982
4
- data.tar.gz: 54493dde6260a14b4a4bd364541c166a4521c588b8a3ae2191cfe60b12e89b63
3
+ metadata.gz: 2b5d379f248e1cb49dbdc63d5c6a1ae02a8b2368f3101f00d55f38e6d3dbfecc
4
+ data.tar.gz: b118d063e8d4075d9f545a9bd62d5448298880a482f2093ff8601df12791a108
5
5
  SHA512:
6
- metadata.gz: a426f2fdf3447168389f235512c268832e0c841f216cbcb8f5b8e65c8815deb8d696bab5b702d5c35b6cbbcf686fb4a1182694b99660fb0525a81a84dd92611b
7
- data.tar.gz: ddaf36cd7851bce4d400e78af172c5f66ecb7404fea9e47c424f405e9feda62f1792b2bc4acba372257dd3300c3b81a7d566a04e6b4101a7003c1c0be5d8c9f2
6
+ metadata.gz: 386f8b2cdecd5b9dc7c5cdfb40bedc9577492a5d96dcd6038ea936f4d47ddf0ade31c8e9422d7f153f96731a1a551f175f292dcc339980d5f401f7bb9b60e1a5
7
+ data.tar.gz: 413a472e7349f6a21d1a3532c2a511b5c36474ee7b442f0aa6f030ee298ec0d005643ca804cd8872062e91e2558ffc752d65ac9d440b4aa5d2742b22f026e0b2
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
  module SewingKit
3
3
  class Configuration
4
- attr_accessor :build_options, :dev_server_sewing_kit_bin
4
+ attr_accessor :build_options, :dev_server_sewing_kit_bin, :manifest_name
5
5
 
6
6
  def initialize
7
7
  @build_options = nil
8
+ @manifest_name = 'sewing-kit-manifest.json'
8
9
  @dev_server_sewing_kit_bin = 'node_modules/.bin/sewing-kit'
9
10
  end
10
11
  end
@@ -16,14 +16,10 @@ require 'sewing_kit/webpack/dev'
16
16
 
17
17
  module SewingKit
18
18
  class Railtie < ::Rails::Railtie
19
- initializer "sewing_kit.cache_production_manifest" do
20
- unless SewingKit::Railtie.development_server? || Rails.env.test?
21
- SewingKit::CachedProductionManifest = SewingKit::Webpack::Manifest::Base.load_metadata_from_node
22
- end
23
- end
24
19
  # rubocop:disable Metrics/BlockLength
25
20
  config.after_initialize do
26
- if SewingKit::Railtie.development_server?
21
+ is_development = Rails.env.development? && ENV['SK_SIMULATE_PRODUCTION'] != '1'
22
+ if is_development && (Rails.const_defined?(:Server) || ENV['SK_FORCE_DEV_SERVER'])
27
23
  webpack_dev = SewingKit::Webpack::Dev.new
28
24
  webpack_dev.start
29
25
  end
@@ -32,14 +28,10 @@ module SewingKit
32
28
  include SewingKit::Webpack::Helper
33
29
  end
34
30
  end
31
+ # rubocop:enable Metrics/BlockLength
32
+
35
33
  rake_tasks do
36
34
  load "tasks/sewing_kit.rake"
37
35
  end
38
-
39
- def self.development_server?
40
- Rails.env.development? &&
41
- ENV['SK_SIMULATE_PRODUCTION'] != '1' &&
42
- (Rails.const_defined?(:Server) || ENV['SK_FORCE_DEV_SERVER'])
43
- end
44
36
  end
45
37
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module SewingKit
3
- VERSION = "0.91.0"
3
+ VERSION = "0.92.0"
4
4
  end
@@ -7,23 +7,15 @@ module SewingKit
7
7
  # Webpack manifest loading, caching & entry point retrieval
8
8
  class Manifest
9
9
  class NodeSewingKitManifestMissing < StandardError
10
- def initialize(mode, node_error_message)
11
- env_message = if 'production' == mode
12
- "\nIf this is a container build:\n" \
13
- " - Verify that sewing_kit compilation succeeded before deployment\n" \
14
- " - Verify that public/bundles/sewing-kit.manifest.json was uploaded\n" \
15
- " - Verify that public/bundles/sewing-kit.manifest.json exists in the container\n" \
16
- else
17
- "\nPossible next steps:\n" \
18
- " - If the server is still starting up, wait for a 'Compiled with latest changes' message" \
19
- " then refresh your browser\n" \
20
- " - Check the development console for compilation errors\n" \
21
- " - Restart your development server\n"
22
- end
23
-
10
+ def initialize(node_error_message)
24
11
  super(
25
- "Could not fetch the sewing-kit manifest 🙀 " \
26
- "#{env_message}\n" \
12
+ "Could not fetch the sewing-kit manifest 🙀 \n" \
13
+ "Possible next steps:\n" \
14
+ " - If the server is still starting up, wait for a " \
15
+ "'Compiled with latest changes' message then refresh your browser\n" \
16
+ " - Check the development console for compilation errors\n" \
17
+ " - Restart your development server\n" \
18
+ "\n" \
27
19
  "Original error #{node_error_message}"
28
20
  )
29
21
  end
@@ -59,7 +51,6 @@ module SewingKit
59
51
 
60
52
  def instance
61
53
  mode = ENV['NODE_ENV'] || Rails.env.to_s
62
-
63
54
  @instance ||= if (mode == 'development' && ENV['SK_SIMULATE_PRODUCTION'] != '1') || Rails.env.test?
64
55
  Development.new
65
56
  else
@@ -35,24 +35,24 @@ module SewingKit
35
35
  end
36
36
  end
37
37
 
38
- def self.load_metadata_from_node
39
- begin
40
- stdout, stderr, status = Open3.capture3('node_modules/.bin/sewing-kit', 'manifest', "--mode=#{mode}")
41
- rescue => e
42
- raise NodeSewingKitNotRunnable.new(mode, e)
43
- end
44
-
45
- raise NodeSewingKitManifestMissing.new(mode, stderr) unless status.success?
38
+ protected
46
39
 
40
+ def load_metadata_from_fs(path)
47
41
  begin
48
- JSON.parse(stdout)
42
+ content = File.read(path)
49
43
  rescue => e
50
- raise ManifestParseError, e
44
+ raise ManifestLoadError.new(path, e)
51
45
  end
46
+
47
+ parse_metadata(content)
52
48
  end
53
49
 
54
- def self.mode
55
- ENV['NODE_ENV'] || Rails.env.to_s || 'production'
50
+ private
51
+
52
+ def parse_metadata(json)
53
+ JSON.parse(json)
54
+ rescue => e
55
+ raise ManifestParseError, e
56
56
  end
57
57
  end
58
58
  end
@@ -43,28 +43,14 @@ module SewingKit
43
43
  @metadata_path = nil
44
44
  end
45
45
 
46
- result = SewingKit::Webpack::Manifest::Base.load_metadata_from_node
46
+ result = load_metadata_from_node
47
47
 
48
48
  metadata = normalize_metadata(result)
49
49
  @metadata_path = metadata && metadata['path']
50
50
  metadata
51
51
  end
52
52
 
53
- def load_metadata_from_fs(path)
54
- begin
55
- json_str = File.read(path)
56
- rescue => e
57
- raise ManifestLoadError.new(path, e)
58
- end
59
-
60
- begin
61
- JSON.parse(json_str)
62
- rescue => e
63
- raise ManifestParseError, e
64
- end
65
- end
66
-
67
- protected
53
+ private
68
54
 
69
55
  def normalize_metadata(maybe_array_metadata)
70
56
  if maybe_array_metadata.is_a?(Array)
@@ -74,8 +60,18 @@ module SewingKit
74
60
  end
75
61
  end
76
62
 
77
- def mode
78
- 'development'
63
+ def load_metadata_from_node
64
+ begin
65
+ stdout, stderr, status = Open3.capture3(
66
+ 'node_modules/.bin/sewing-kit', 'manifest', "--mode=development"
67
+ )
68
+ rescue => e
69
+ raise NodeSewingKitNotRunnable.new('development', e)
70
+ end
71
+
72
+ raise NodeSewingKitManifestMissing, stderr unless status.success?
73
+
74
+ parse_metadata(stdout)
79
75
  end
80
76
  end
81
77
 
@@ -15,7 +15,7 @@ module SewingKit
15
15
  end
16
16
 
17
17
  def metadata
18
- SewingKit::CachedProductionManifest
18
+ @metadata ||= load_metadata
19
19
  end
20
20
 
21
21
  private
@@ -38,6 +38,14 @@ module SewingKit
38
38
 
39
39
  found || consolidated_metadata.last
40
40
  end
41
+
42
+ def load_metadata
43
+ load_metadata_from_fs(path)
44
+ end
45
+
46
+ def path
47
+ File.join(Rails.root, 'public', 'bundles', SewingKit.configuration.manifest_name)
48
+ end
41
49
  end
42
50
  end
43
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sewing_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.91.0
4
+ version: 0.92.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Sauve
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-11 00:00:00.000000000 Z
11
+ date: 2019-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties