requestjs-rails 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/assets/javascripts/requestjs.js +9 -6
- data/lib/install/requestjs_with_asset_pipeline.rb +5 -2
- data/lib/requestjs/engine.rb +3 -3
- data/lib/requestjs/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7197ad0ee10519041959da9d8bb15c46ca0cf8d9beaecfab20c622860f958986
|
4
|
+
data.tar.gz: cc9609ff3a0a1a734ca9e5fc730f8817827340cbefbe7fb3173377fd651e540e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24cd14d2019382171aa3b90432ce64b1eae3b480c185971ba5ed296c3e13ad83e2e2204ee0295dacfe3ff0662cf46c8e041ae8611ef1db388f36611a41a077a4
|
7
|
+
data.tar.gz: db70051cd27a70fc4267e120c3856ec867c0a0d7be59036cec43384d89238a899dbd21ab9a86c1f04bfd43b2311c7578d8f399c943e089e6bb086ca121629b3f
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
If using the asset pipeline to manage JavaScript, the last command will:
|
12
12
|
|
13
|
-
- Append import "@rails/request.js" to your app/assets/javascripts/application.js entrypoint.
|
13
|
+
- Append `import "@rails/request.js"` to your `app/assets/javascripts/application.js` entrypoint.
|
14
14
|
|
15
15
|
Make sure you've already installed `importmap-rails` and that it's referenced before `requestjs-rails` in your Gemfile.
|
16
16
|
|
@@ -24,4 +24,4 @@ With the installation done check the documentation in the [Rails Request.JS](htt
|
|
24
24
|
|
25
25
|
## License
|
26
26
|
|
27
|
-
Request.JS for Rails is released under the [MIT License](https://opensource.org/licenses/MIT).
|
27
|
+
Request.JS for Rails is released under the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -14,6 +14,9 @@ class FetchResponse {
|
|
14
14
|
get unauthenticated() {
|
15
15
|
return this.statusCode === 401;
|
16
16
|
}
|
17
|
+
get unprocessableEntity() {
|
18
|
+
return this.statusCode === 422;
|
19
|
+
}
|
17
20
|
get authenticationURL() {
|
18
21
|
return this.response.headers.get("WWW-Authenticate");
|
19
22
|
}
|
@@ -31,7 +34,7 @@ class FetchResponse {
|
|
31
34
|
return Promise.reject(new Error(`Expected an HTML response but got "${this.contentType}" instead`));
|
32
35
|
}
|
33
36
|
get json() {
|
34
|
-
if (this.contentType.match(/^application
|
37
|
+
if (this.contentType.match(/^application\/.*json$/)) {
|
35
38
|
return this.responseJson || (this.responseJson = this.response.json());
|
36
39
|
}
|
37
40
|
return Promise.reject(new Error(`Expected a JSON response but got "${this.contentType}" instead`));
|
@@ -45,7 +48,7 @@ class FetchResponse {
|
|
45
48
|
async renderTurboStream() {
|
46
49
|
if (this.isTurboStream) {
|
47
50
|
if (window.Turbo) {
|
48
|
-
window.Turbo.renderStreamMessage(await this.text);
|
51
|
+
await window.Turbo.renderStreamMessage(await this.text);
|
49
52
|
} else {
|
50
53
|
console.warn("You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js");
|
51
54
|
}
|
@@ -115,7 +118,7 @@ class FetchRequest {
|
|
115
118
|
constructor(method, url, options = {}) {
|
116
119
|
this.method = method;
|
117
120
|
this.options = options;
|
118
|
-
this.originalUrl = url;
|
121
|
+
this.originalUrl = url.toString();
|
119
122
|
}
|
120
123
|
async perform() {
|
121
124
|
try {
|
@@ -131,7 +134,7 @@ class FetchRequest {
|
|
131
134
|
return Promise.reject(window.location.href = response.authenticationURL);
|
132
135
|
}
|
133
136
|
if (response.ok && response.isTurboStream) {
|
134
|
-
response.renderTurboStream();
|
137
|
+
await response.renderTurboStream();
|
135
138
|
}
|
136
139
|
return response;
|
137
140
|
}
|
@@ -180,7 +183,7 @@ class FetchRequest {
|
|
180
183
|
return "text/vnd.turbo-stream.html, text/html, application/xhtml+xml";
|
181
184
|
|
182
185
|
case "json":
|
183
|
-
return "application/json";
|
186
|
+
return "application/json, application/vnd.api+json";
|
184
187
|
|
185
188
|
default:
|
186
189
|
return "*/*";
|
@@ -205,7 +208,7 @@ class FetchRequest {
|
|
205
208
|
return query.length > 0 ? `?${query}` : "";
|
206
209
|
}
|
207
210
|
get url() {
|
208
|
-
return this.originalUrl.split("?")[0] + this.query;
|
211
|
+
return this.originalUrl.split("?")[0].split("#")[0] + this.query;
|
209
212
|
}
|
210
213
|
get responseKind() {
|
211
214
|
return this.options.responseKind || "html";
|
@@ -1,4 +1,7 @@
|
|
1
1
|
APP_JS_ROOT = Rails.root.join("app/assets/javascripts")
|
2
|
+
APP_JS_PATH = APP_JS_ROOT.exist? ? APP_JS_ROOT : Rails.root.join("app/javascript")
|
2
3
|
|
3
|
-
|
4
|
-
|
4
|
+
create_file Rails.root.join("app/javascript/application.js") unless APP_JS_PATH.exist?
|
5
|
+
|
6
|
+
say "Import Request.JS in existing #{APP_JS_PATH}"
|
7
|
+
append_to_file APP_JS_PATH.join("application.js"), %(import "@rails/request.js"\n)
|
data/lib/requestjs/engine.rb
CHANGED
@@ -7,9 +7,9 @@ module Requestjs
|
|
7
7
|
end
|
8
8
|
|
9
9
|
initializer "requestjs.importmap" do
|
10
|
-
if Rails.application.
|
11
|
-
Rails.application.
|
12
|
-
|
10
|
+
if Rails.application.respond_to?(:importmap)
|
11
|
+
Rails.application.importmap.draw do
|
12
|
+
pin "@rails/request.js", to: "rails-requestjs"
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
data/lib/requestjs/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: requestjs-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcelo Lauxen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|