turbo-mount 0.1.0 → 0.2.2
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/CHANGELOG.md +15 -1
- data/README.md +10 -2
- data/app/assets/javascripts/turbo-mount/react.js +22 -0
- data/app/assets/javascripts/turbo-mount/react.min.js +2 -0
- data/app/assets/javascripts/turbo-mount/react.min.js.map +1 -0
- data/app/assets/javascripts/turbo-mount/svelte.js +19 -0
- data/app/assets/javascripts/turbo-mount/svelte.min.js +2 -0
- data/app/assets/javascripts/turbo-mount/svelte.min.js.map +1 -0
- data/app/assets/javascripts/turbo-mount/vue.js +21 -0
- data/app/assets/javascripts/turbo-mount/vue.min.js +2 -0
- data/app/assets/javascripts/turbo-mount/vue.min.js.map +1 -0
- data/app/assets/javascripts/turbo-mount.js +4 -50
- data/app/assets/javascripts/turbo-mount.min.js +1 -1
- data/app/assets/javascripts/turbo-mount.min.js.map +1 -1
- data/lib/turbo/mount/engine.rb +4 -1
- data/lib/turbo/mount/version.rb +1 -1
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4e82785211d3df4bf66f934af1bdc026e9f7a9b0f3074749eda539fedca318b
|
4
|
+
data.tar.gz: 93f5c90a4e336851ded6f763fb5636b4423323594ce4db06a610761e8e30efd5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2eba5a80216047b8a5d1f20b938f1eb5b49ca34646dfb555e4563e053bde2029e62ad10fc88880b2256ee1dcabc0d77b66270740130c45d17d19e065200778f4
|
7
|
+
data.tar.gz: 82a3843e93c3b9c405344fd85145985ad4e2bf7cdf48bad43526fd264a004bb87c67ea79213066bf7b9c74ec25dc161dcc24123eb8828e590ffff95d1ba9fc48
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning].
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [0.2.2] - 2024-05-09
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
|
14
|
+
- Export plugins. ([@skryukov])
|
15
|
+
|
16
|
+
## [0.2.0] - 2024-05-09
|
17
|
+
|
18
|
+
### Added
|
19
|
+
|
20
|
+
- New API with plugins. ([@skryukov])
|
21
|
+
|
10
22
|
## [0.1.0] - 2024-05-07
|
11
23
|
|
12
24
|
### Added
|
@@ -15,7 +27,9 @@ and this project adheres to [Semantic Versioning].
|
|
15
27
|
|
16
28
|
[@skryukov]: https://github.com/skryukov
|
17
29
|
|
18
|
-
[Unreleased]: https://github.com/skryukov/turbo-mount/compare/v0.
|
30
|
+
[Unreleased]: https://github.com/skryukov/turbo-mount/compare/v0.2.2...HEAD
|
31
|
+
[0.2.2]: https://github.com/skryukov/turbo-mount/commits/v0.2.2
|
32
|
+
[0.2.0]: https://github.com/skryukov/turbo-mount/commits/v0.2.0
|
19
33
|
[0.1.0]: https://github.com/skryukov/turbo-mount/commits/v0.1.0
|
20
34
|
|
21
35
|
[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
|
data/README.md
CHANGED
@@ -20,12 +20,14 @@ First, you need to initialize `TurboMount` and register the components you want
|
|
20
20
|
|
21
21
|
```js
|
22
22
|
import { Application } from "@hotwired/stimulus"
|
23
|
-
import { TurboMount } from "turbo-mount"
|
24
23
|
|
25
24
|
const application = Application.start()
|
26
25
|
|
26
|
+
import { TurboMount } from "turbo-mount"
|
27
|
+
import plugin from "turbo-mount/react"
|
28
|
+
|
27
29
|
// Initialize TurboMount and register the react stimulus controller
|
28
|
-
const turboMount = new TurboMount({application,
|
30
|
+
const turboMount = new TurboMount({application, plugin});
|
29
31
|
|
30
32
|
// Register the components you want to use
|
31
33
|
import { SketchPicker } from 'react-color'
|
@@ -63,6 +65,12 @@ export default class extends TurboMountReactController {
|
|
63
65
|
}
|
64
66
|
```
|
65
67
|
|
68
|
+
Then pass this controller the register method:
|
69
|
+
|
70
|
+
```js
|
71
|
+
turboMount.register('SketchPicker', SketchPicker, TurboMountReactController);
|
72
|
+
```
|
73
|
+
|
66
74
|
## Development
|
67
75
|
|
68
76
|
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { createElement } from 'react';
|
2
|
+
import { createRoot } from 'react-dom/client';
|
3
|
+
import { TurboMountController } from 'turbo-mount';
|
4
|
+
|
5
|
+
class TurboMountReactController extends TurboMountController {
|
6
|
+
constructor() {
|
7
|
+
super(...arguments);
|
8
|
+
this.framework = "react";
|
9
|
+
}
|
10
|
+
mountComponent(el, Component, props) {
|
11
|
+
const root = createRoot(el);
|
12
|
+
root.render(createElement(Component, props));
|
13
|
+
return () => { root.unmount(); };
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
const plugin = {
|
18
|
+
framework: "react",
|
19
|
+
controller: TurboMountReactController
|
20
|
+
};
|
21
|
+
|
22
|
+
export { plugin as default };
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{createElement as r}from"react";import{createRoot as t}from"react-dom/client";import{TurboMountController as o}from"turbo-mount";const e={framework:"react",controller:class extends o{constructor(){super(...arguments),this.framework="react"}mountComponent(o,e,n){const m=t(o);return m.render(r(e,n)),()=>{m.unmount()}}}};export{e as default};
|
2
|
+
//# sourceMappingURL=react.min.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"react.min.js","sources":["../../src/plugins/react/index.ts","../../src/plugins/react/turbo-mount-react-controller.ts"],"sourcesContent":["import {Plugin} from \"turbo-mount\";\n\nimport {TurboMountReactController} from \"./turbo-mount-react-controller\";\n\nconst plugin: Plugin = {\n framework: \"react\",\n controller: TurboMountReactController\n}\n\nexport default plugin;\n","import {ComponentType, createElement} from \"react\";\nimport {createRoot} from \"react-dom/client\";\nimport {TurboMountController} from \"turbo-mount\";\n\nexport class TurboMountReactController extends TurboMountController<ComponentType> {\n framework = \"react\"\n\n mountComponent(el: Element, Component: ComponentType, props: object) {\n const root = createRoot(el);\n root.render(createElement(Component, props))\n\n return () => { root.unmount() }\n }\n}\n"],"names":["plugin","framework","controller","TurboMountController","constructor","this","mountComponent","el","Component","props","root","createRoot","render","createElement","unmount"],"mappings":"uIAIA,MAAMA,EAAiB,CACnBC,UAAW,QACXC,WCFE,cAAyCC,EAA/C,WAAAC,uBACIC,KAASJ,UAAG,OAQf,CANG,cAAAK,CAAeC,EAAaC,EAA0BC,GAClD,MAAMC,EAAOC,EAAWJ,GAGxB,OAFAG,EAAKE,OAAOC,EAAcL,EAAWC,IAE9B,KAAQC,EAAKI,SAAS,CAChC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { TurboMountController } from 'turbo-mount';
|
2
|
+
|
3
|
+
class TurboMountSvelteController extends TurboMountController {
|
4
|
+
constructor() {
|
5
|
+
super(...arguments);
|
6
|
+
this.framework = "svelte";
|
7
|
+
}
|
8
|
+
mountComponent(el, Component, props) {
|
9
|
+
const component = new Component({ target: el, props });
|
10
|
+
return () => { component.$destroy(); };
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
const plugin = {
|
15
|
+
framework: "svelte",
|
16
|
+
controller: TurboMountSvelteController
|
17
|
+
};
|
18
|
+
|
19
|
+
export { plugin as default };
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{TurboMountController as t}from"turbo-mount";const o={framework:"svelte",controller:class extends t{constructor(){super(...arguments),this.framework="svelte"}mountComponent(t,o,r){const e=new o({target:t,props:r});return()=>{e.$destroy()}}}};export{o as default};
|
2
|
+
//# sourceMappingURL=svelte.min.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"svelte.min.js","sources":["../../src/plugins/svelte/index.ts","../../src/plugins/svelte/turbo-mount-svelte-controller.ts"],"sourcesContent":["import {Plugin} from \"turbo-mount\";\n\nimport {TurboMountSvelteController} from \"./turbo-mount-svelte-controller\";\n\nconst plugin: Plugin = {\n framework: \"svelte\",\n controller: TurboMountSvelteController\n}\n\nexport default plugin;\n","import {ComponentType} from \"svelte\";\nimport {TurboMountController} from \"turbo-mount\";\n\nexport class TurboMountSvelteController extends TurboMountController<ComponentType> {\n framework = \"svelte\"\n\n mountComponent(el: Element, Component: ComponentType, props: object) {\n const component = new Component({ target: el, props })\n\n return () => { component.$destroy() }\n }\n}\n"],"names":["plugin","framework","controller","TurboMountController","constructor","this","mountComponent","el","Component","props","component","target","$destroy"],"mappings":"mDAIA,MAAMA,EAAiB,CACnBC,UAAW,SACXC,WCHE,cAA0CC,EAAhD,WAAAC,uBACIC,KAASJ,UAAG,QAOf,CALG,cAAAK,CAAeC,EAAaC,EAA0BC,GAClD,MAAMC,EAAY,IAAIF,EAAU,CAAEG,OAAQJ,EAAIE,UAE9C,MAAO,KAAQC,EAAUE,UAAU,CACtC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { createApp } from 'vue';
|
2
|
+
import { TurboMountController } from 'turbo-mount';
|
3
|
+
|
4
|
+
class TurboMountVueController extends TurboMountController {
|
5
|
+
constructor() {
|
6
|
+
super(...arguments);
|
7
|
+
this.framework = "vue";
|
8
|
+
}
|
9
|
+
mountComponent(el, Component, props) {
|
10
|
+
const app = createApp(Component, props);
|
11
|
+
app.mount(el);
|
12
|
+
return () => { app.unmount(); };
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
const plugin = {
|
17
|
+
framework: "vue",
|
18
|
+
controller: TurboMountVueController
|
19
|
+
};
|
20
|
+
|
21
|
+
export { plugin as default };
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{createApp as o}from"vue";import{TurboMountController as t}from"turbo-mount";const r={framework:"vue",controller:class extends t{constructor(){super(...arguments),this.framework="vue"}mountComponent(t,r,e){const n=o(r,e);return n.mount(t),()=>{n.unmount()}}}};export{r as default};
|
2
|
+
//# sourceMappingURL=vue.min.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"vue.min.js","sources":["../../src/plugins/vue/index.ts","../../src/plugins/vue/turbo-mount-vue-controller.ts"],"sourcesContent":["import {Plugin} from \"turbo-mount\";\n\nimport {TurboMountVueController} from \"./turbo-mount-vue-controller\";\n\nconst plugin: Plugin = {\n framework: \"vue\",\n controller: TurboMountVueController\n}\n\nexport default plugin;\n","import { createApp, App } from \"vue\";\nimport {TurboMountController} from \"turbo-mount\";\n\nexport class TurboMountVueController extends TurboMountController<App> {\n framework = \"vue\"\n\n mountComponent(el: Element, Component: App, props: object) {\n const app = createApp(Component, props as Record<string, unknown>);\n app.mount(el)\n\n return () => { app.unmount() }\n }\n}\n"],"names":["plugin","framework","controller","TurboMountController","constructor","this","mountComponent","el","Component","props","app","createApp","mount","unmount"],"mappings":"mFAIA,MAAMA,EAAiB,CACnBC,UAAW,MACXC,WCHE,cAAuCC,EAA7C,WAAAC,uBACIC,KAASJ,UAAG,KAQf,CANG,cAAAK,CAAeC,EAAaC,EAAgBC,GACxC,MAAMC,EAAMC,EAAUH,EAAWC,GAGjC,OAFAC,EAAIE,MAAML,GAEH,KAAQG,EAAIG,SAAS,CAC/B"}
|
@@ -1,7 +1,4 @@
|
|
1
1
|
import { Controller } from '@hotwired/stimulus';
|
2
|
-
import { createElement } from 'react';
|
3
|
-
import { createRoot } from 'react-dom/client';
|
4
|
-
import { createApp } from 'vue';
|
5
2
|
|
6
3
|
class TurboMountController extends Controller {
|
7
4
|
connect() {
|
@@ -12,7 +9,7 @@ class TurboMountController extends Controller {
|
|
12
9
|
}
|
13
10
|
propsValueChanged() {
|
14
11
|
this.umountComponent();
|
15
|
-
this._umountComponentCallback = this.mountComponent(this.mountElement, this.resolvedComponent, this.componentProps);
|
12
|
+
this._umountComponentCallback || (this._umountComponentCallback = this.mountComponent(this.mountElement, this.resolvedComponent, this.componentProps));
|
16
13
|
}
|
17
14
|
get componentProps() {
|
18
15
|
return this.propsValue;
|
@@ -37,54 +34,15 @@ TurboMountController.values = {
|
|
37
34
|
component: String
|
38
35
|
};
|
39
36
|
|
40
|
-
class TurboMountReactController extends TurboMountController {
|
41
|
-
constructor() {
|
42
|
-
super(...arguments);
|
43
|
-
this.framework = "react";
|
44
|
-
}
|
45
|
-
mountComponent(el, Component, props) {
|
46
|
-
const root = createRoot(el);
|
47
|
-
root.render(createElement(Component, props));
|
48
|
-
return root.unmount;
|
49
|
-
}
|
50
|
-
}
|
51
|
-
|
52
|
-
class TurboMountSvelteController extends TurboMountController {
|
53
|
-
constructor() {
|
54
|
-
super(...arguments);
|
55
|
-
this.framework = "svelte";
|
56
|
-
}
|
57
|
-
mountComponent(el, Component, props) {
|
58
|
-
const component = new Component({ target: el, props });
|
59
|
-
return component.$destroy;
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
|
-
class TurboMountVueController extends TurboMountController {
|
64
|
-
constructor() {
|
65
|
-
super(...arguments);
|
66
|
-
this.framework = "vue";
|
67
|
-
}
|
68
|
-
mountComponent(el, Component, props) {
|
69
|
-
const app = createApp(Component, props);
|
70
|
-
app.mount(el);
|
71
|
-
return app.unmount;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
37
|
class TurboMount {
|
76
38
|
constructor(props) {
|
77
39
|
var _a;
|
78
40
|
this.components = new Map();
|
79
41
|
this.application = props.application;
|
80
|
-
this.framework = props.framework;
|
81
|
-
this.baseController =
|
82
|
-
if (!this.framework) {
|
83
|
-
throw new Error('framework is required');
|
84
|
-
}
|
42
|
+
this.framework = props.plugin.framework;
|
43
|
+
this.baseController = props.plugin.controller;
|
85
44
|
(_a = this.application).turboMount || (_a.turboMount = {});
|
86
45
|
this.application.turboMount[this.framework] = this;
|
87
|
-
this.baseController = TurboMount.frameworkControllers.get(this.framework);
|
88
46
|
if (this.baseController) {
|
89
47
|
this.application.register(`turbo-mount-${this.framework}`, this.baseController);
|
90
48
|
}
|
@@ -111,9 +69,5 @@ class TurboMount {
|
|
111
69
|
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
112
70
|
}
|
113
71
|
}
|
114
|
-
TurboMount.frameworkControllers = new Map();
|
115
|
-
TurboMount.frameworkControllers.set("react", TurboMountReactController);
|
116
|
-
TurboMount.frameworkControllers.set("svelte", TurboMountSvelteController);
|
117
|
-
TurboMount.frameworkControllers.set("vue", TurboMountVueController);
|
118
72
|
|
119
|
-
export { TurboMount, TurboMountController
|
73
|
+
export { TurboMount, TurboMountController };
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{Controller as t}from"@hotwired/stimulus";
|
1
|
+
import{Controller as t}from"@hotwired/stimulus";class o extends t{connect(){this._umountComponentCallback||(this._umountComponentCallback=this.mountComponent(this.mountElement,this.resolvedComponent,this.componentProps))}disconnect(){this.umountComponent()}propsValueChanged(){this.umountComponent(),this._umountComponentCallback||(this._umountComponentCallback=this.mountComponent(this.mountElement,this.resolvedComponent,this.componentProps))}get componentProps(){return this.propsValue}get mountElement(){return this.element}get resolvedComponent(){return this.resolveComponent(this.componentValue)}umountComponent(){this._umountComponentCallback&&this._umountComponentCallback(),this._umountComponentCallback=void 0}resolveComponent(t){return this.application.turboMount[this.framework].resolve(t)}}o.values={props:Object,component:String};class n{constructor(t){var o;this.components=new Map,this.application=t.application,this.framework=t.plugin.framework,this.baseController=t.plugin.controller,(o=this.application).turboMount||(o.turboMount={}),this.application.turboMount[this.framework]=this,this.baseController&&this.application.register(`turbo-mount-${this.framework}`,this.baseController)}register(t,o,n){if(n||(n=this.baseController),this.components.has(t))throw new Error(`Component '${t}' is already registered.`);if(this.components.set(t,o),n){const o=`turbo-mount-${this.framework}-${this.camelToKebabCase(t)}`;this.application.register(o,n)}}resolve(t){const o=this.components.get(t);if(!o)throw new Error(`Unknown component: ${t}`);return o}camelToKebabCase(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}}export{n as TurboMount,o as TurboMountController};
|
2
2
|
//# sourceMappingURL=turbo-mount.min.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"turbo-mount.min.js","sources":["../src/
|
1
|
+
{"version":3,"file":"turbo-mount.min.js","sources":["../src/turbo-mount-controller.ts","../src/turbo-mount.ts"],"sourcesContent":["import {Controller} from \"@hotwired/stimulus\"\nimport {ApplicationWithTurboMount} from \"./turbo-mount\";\n\nexport abstract class TurboMountController<T> extends Controller {\n static values = {\n props: Object,\n component: String\n }\n declare readonly propsValue: object;\n declare readonly componentValue: string;\n\n abstract framework: string;\n\n abstract mountComponent(el: Element, Component: T, props: object): () => void;\n\n _umountComponentCallback?: () => void;\n\n connect() {\n this._umountComponentCallback ||= this.mountComponent(this.mountElement, this.resolvedComponent, this.componentProps);\n }\n\n disconnect() {\n this.umountComponent();\n }\n\n propsValueChanged() {\n this.umountComponent();\n this._umountComponentCallback ||= this.mountComponent(this.mountElement, this.resolvedComponent, this.componentProps);\n }\n\n get componentProps() {\n return this.propsValue;\n }\n\n get mountElement() {\n return this.element;\n }\n\n get resolvedComponent() {\n return this.resolveComponent(this.componentValue);\n }\n\n umountComponent() {\n this._umountComponentCallback && this._umountComponentCallback();\n this._umountComponentCallback = undefined;\n }\n\n resolveComponent(component: string): T {\n const app = this.application as ApplicationWithTurboMount<T>\n return app.turboMount[this.framework].resolve(component);\n }\n}\n\n\n","import {Application, ControllerConstructor} from '@hotwired/stimulus';\n\nexport interface ApplicationWithTurboMount<T> extends Application {\n turboMount: { [framework: string]: TurboMount<T> };\n}\n\nexport type Plugin = {\n framework: string;\n controller: ControllerConstructor;\n}\n\nexport class TurboMount<T> {\n components: Map<string, T>;\n application: ApplicationWithTurboMount<T>;\n framework: string;\n baseController?: ControllerConstructor;\n\n constructor(props: { application: Application, plugin: Plugin }) {\n this.components = new Map();\n this.application = props.application as ApplicationWithTurboMount<T>;\n this.framework = props.plugin.framework;\n this.baseController = props.plugin.controller;\n\n this.application.turboMount ||= {};\n this.application.turboMount[this.framework] = this;\n\n if (this.baseController) {\n this.application.register(`turbo-mount-${this.framework}`, this.baseController);\n }\n }\n\n register(name: string, component: T, controller?: ControllerConstructor) {\n controller ||= this.baseController;\n if (this.components.has(name)) {\n throw new Error(`Component '${name}' is already registered.`);\n }\n this.components.set(name, component);\n\n if (controller) {\n const controllerName = `turbo-mount-${this.framework}-${this.camelToKebabCase(name)}`;\n this.application.register(controllerName, controller);\n }\n }\n\n resolve(name: string) {\n const component = this.components.get(name);\n if (!component) {\n throw new Error(`Unknown component: ${name}`);\n }\n return component;\n }\n\n camelToKebabCase(str: string) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n }\n}\n"],"names":["TurboMountController","Controller","connect","this","_umountComponentCallback","mountComponent","mountElement","resolvedComponent","componentProps","disconnect","umountComponent","propsValueChanged","propsValue","element","resolveComponent","componentValue","undefined","component","application","turboMount","framework","resolve","values","props","Object","String","TurboMount","constructor","components","Map","plugin","baseController","controller","_a","register","name","has","Error","set","controllerName","camelToKebabCase","get","str","replace","toLowerCase"],"mappings":"gDAGM,MAAgBA,UAAgCC,EAclD,OAAAC,GACIC,KAAKC,2BAALD,KAAKC,yBAA6BD,KAAKE,eAAeF,KAAKG,aAAcH,KAAKI,kBAAmBJ,KAAKK,gBACzG,CAED,UAAAC,GACIN,KAAKO,iBACR,CAED,iBAAAC,GACIR,KAAKO,kBACLP,KAAKC,2BAALD,KAAKC,yBAA6BD,KAAKE,eAAeF,KAAKG,aAAcH,KAAKI,kBAAmBJ,KAAKK,gBACzG,CAED,kBAAIA,GACA,OAAOL,KAAKS,UACf,CAED,gBAAIN,GACA,OAAOH,KAAKU,OACf,CAED,qBAAIN,GACA,OAAOJ,KAAKW,iBAAiBX,KAAKY,eACrC,CAED,eAAAL,GACIP,KAAKC,0BAA4BD,KAAKC,2BACtCD,KAAKC,8BAA2BY,CACnC,CAED,gBAAAF,CAAiBG,GAEb,OADYd,KAAKe,YACNC,WAAWhB,KAAKiB,WAAWC,QAAQJ,EACjD,EA9CMjB,EAAAsB,OAAS,CACZC,MAAOC,OACPP,UAAWQ,cCKNC,EAMT,WAAAC,CAAYJ,SACRpB,KAAKyB,WAAa,IAAIC,IACtB1B,KAAKe,YAAcK,EAAML,YACzBf,KAAKiB,UAAYG,EAAMO,OAAOV,UAC9BjB,KAAK4B,eAAiBR,EAAMO,OAAOE,YAEnCC,EAAA9B,KAAKe,aAAYC,aAAAc,EAAAd,WAAe,CAAA,GAChChB,KAAKe,YAAYC,WAAWhB,KAAKiB,WAAajB,KAE1CA,KAAK4B,gBACL5B,KAAKe,YAAYgB,SAAS,eAAe/B,KAAKiB,YAAajB,KAAK4B,eAEvE,CAED,QAAAG,CAASC,EAAclB,EAAce,GAEjC,GADAA,IAAAA,EAAe7B,KAAK4B,gBAChB5B,KAAKyB,WAAWQ,IAAID,GACpB,MAAM,IAAIE,MAAM,cAAcF,6BAIlC,GAFAhC,KAAKyB,WAAWU,IAAIH,EAAMlB,GAEtBe,EAAY,CACZ,MAAMO,EAAiB,eAAepC,KAAKiB,aAAajB,KAAKqC,iBAAiBL,KAC9EhC,KAAKe,YAAYgB,SAASK,EAAgBP,EAC7C,CACJ,CAED,OAAAX,CAAQc,GACJ,MAAMlB,EAAYd,KAAKyB,WAAWa,IAAIN,GACtC,IAAKlB,EACD,MAAM,IAAIoB,MAAM,sBAAsBF,KAE1C,OAAOlB,CACV,CAED,gBAAAuB,CAAiBE,GACb,OAAOA,EAAIC,QAAQ,kBAAmB,SAASC,aAClD"}
|
data/lib/turbo/mount/engine.rb
CHANGED
@@ -12,7 +12,10 @@ module Turbo
|
|
12
12
|
# config.after_initialize do
|
13
13
|
# config.assets.precompile -= Turbo::Mount::Engine::PRECOMPILE_ASSETS
|
14
14
|
# end
|
15
|
-
|
15
|
+
FILES = %w[turbo-mount turbo-mount/react turbo-mount/vue turbo-mount/svelte].freeze
|
16
|
+
PRECOMPILE_ASSETS = FILES.flat_map do |framework|
|
17
|
+
%w[js min.js min.js.map].map { |type| "#{framework}.#{type}" }
|
18
|
+
end.freeze
|
16
19
|
|
17
20
|
initializer "turbo-mount.assets" do
|
18
21
|
if Rails.application.config.respond_to?(:assets)
|
data/lib/turbo/mount/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbo-mount
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Svyatoslav Kryukov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -38,6 +38,15 @@ files:
|
|
38
38
|
- app/assets/javascripts/turbo-mount.js
|
39
39
|
- app/assets/javascripts/turbo-mount.min.js
|
40
40
|
- app/assets/javascripts/turbo-mount.min.js.map
|
41
|
+
- app/assets/javascripts/turbo-mount/react.js
|
42
|
+
- app/assets/javascripts/turbo-mount/react.min.js
|
43
|
+
- app/assets/javascripts/turbo-mount/react.min.js.map
|
44
|
+
- app/assets/javascripts/turbo-mount/svelte.js
|
45
|
+
- app/assets/javascripts/turbo-mount/svelte.min.js
|
46
|
+
- app/assets/javascripts/turbo-mount/svelte.min.js.map
|
47
|
+
- app/assets/javascripts/turbo-mount/vue.js
|
48
|
+
- app/assets/javascripts/turbo-mount/vue.min.js
|
49
|
+
- app/assets/javascripts/turbo-mount/vue.min.js.map
|
41
50
|
- lib/turbo/mount.rb
|
42
51
|
- lib/turbo/mount/engine.rb
|
43
52
|
- lib/turbo/mount/helpers.rb
|