@cocreate/webpack 1.4.0 → 1.4.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## [1.4.2](https://github.com/CoCreate-app/CoCreate-webpack/compare/v1.4.1...v1.4.2) (2025-05-01)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * update [@cocreate](https://github.com/cocreate) dependencies ([d24e3d3](https://github.com/CoCreate-app/CoCreate-webpack/commit/d24e3d3447955acf5d56c522be31c93fe2d1cb7b))
7
+
8
+ ## [1.4.1](https://github.com/CoCreate-app/CoCreate-webpack/compare/v1.4.0...v1.4.1) (2025-04-30)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * added comments ([f48117a](https://github.com/CoCreate-app/CoCreate-webpack/commit/f48117a6e6b322c5701c89e2fd9d992a15de95a0))
14
+ * update query attributes ([9deaf7f](https://github.com/CoCreate-app/CoCreate-webpack/commit/9deaf7fe574d0a0d33992b7bde9460bad9008f5e))
15
+ * updated cocreate modules versions ([6483d6a](https://github.com/CoCreate-app/CoCreate-webpack/commit/6483d6a02c18343f1eb8a42596fcb3fac42fd544))
16
+
1
17
  # [1.4.0](https://github.com/CoCreate-app/CoCreate-webpack/compare/v1.3.6...v1.4.0) (2024-11-04)
2
18
 
3
19
 
package/demo/index.html CHANGED
@@ -1,28 +1,28 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
- <head>
4
- <title>webpack | CoCreateJS</title>
3
+ <head>
4
+ <title>webpack | CoCreateJS</title>
5
5
 
6
- <!-- CoCreate Favicon -->
7
- <link
8
- rel="icon"
9
- type="image/png"
10
- sizes="32x32"
11
- href="../assets/favicon.ico" />
12
- </head>
13
- <body>
14
- <form>
15
- <textarea webpack="message"></textarea>
16
- <button actions="webpack, reset">click</button>
17
- </form>
6
+ <!-- CoCreate Favicon -->
7
+ <link
8
+ rel="icon"
9
+ type="image/png"
10
+ sizes="32x32"
11
+ href="../assets/favicon.ico" />
12
+ </head>
13
+ <body>
14
+ <form>
15
+ <textarea webpack="message"></textarea>
16
+ <button actions="webpack, reset">click</button>
17
+ </form>
18
18
 
19
- <!-- <div
19
+ <!-- <div
20
20
  array="users"
21
21
  array="interviews"
22
22
  object
23
23
  filter-sort-key="name"
24
24
  filter-sort-direction="asc"
25
- render-selector="[template]">
25
+ render-query="[template]">
26
26
  <div
27
27
  class="border-bottom:1px_solid_darkgray"
28
28
  template
@@ -32,7 +32,7 @@
32
32
  </div>
33
33
  </div> -->
34
34
 
35
- <!-- <script src="../src/CoCreate-webpack.js"></script> -->
36
- <script src="./dist/CoCreate.js"></script>
37
- </body>
35
+ <!-- <script src="../src/CoCreate-webpack.js"></script> -->
36
+ <script src="./dist/CoCreate.js"></script>
37
+ </body>
38
38
  </html>
package/docs/index.html CHANGED
@@ -1,354 +1,351 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1" />
7
- <title>CoCreate-webpack Documentation | CoCreateJS</title>
8
- <link
9
- rel="icon"
10
- type="image/png"
11
- sizes="32x32"
12
- href="https://cocreate.app/images/favicon.ico"
13
- />
14
- <meta
15
- name="description"
16
- content="A convenient chain handler allows user to chain multiple components together. When one webpack is complete next one will start untill all webpack completed."
17
- />
18
- <meta
19
- name="keywords"
20
- content="helper classes, utility classes, css framework, css library, inline style classes"
21
- />
22
- <meta name="robots" content="index,follow" />
23
- <meta
24
- property="og:image"
25
- content="https://cdn.cocreate.app/docs/webpack.png"
26
- />
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <title>CoCreate-webpack Documentation | CoCreateJS</title>
8
+ <link
9
+ rel="icon"
10
+ type="image/png"
11
+ sizes="32x32"
12
+ href="https://cocreate.app/images/favicon.ico" />
13
+ <meta
14
+ name="description"
15
+ content="A convenient chain handler allows user to chain multiple components together. When one webpack is complete next one will start untill all webpack completed." />
16
+ <meta
17
+ name="keywords"
18
+ content="helper classes, utility classes, css framework, css library, inline style classes" />
19
+ <meta name="robots" content="index,follow" />
20
+ <meta
21
+ property="og:image"
22
+ content="https://cdn.cocreate.app/docs/webpack.png" />
27
23
 
28
- <link
29
- rel="stylesheet"
30
- href="../index.css"
31
- array="files"
32
- object="60888216117c640e7596303f"
33
- key="src"
34
- type="text/css"
35
- save="true"
36
- />
37
- <link rel="manifest" href="/manifest.webmanifest" />
38
- </head>
24
+ <link
25
+ rel="stylesheet"
26
+ href="../index.css"
27
+ array="files"
28
+ object="60888216117c640e7596303f"
29
+ key="src"
30
+ type="text/css"
31
+ save="true" />
32
+ <link rel="manifest" href="/manifest.webmanifest" />
33
+ </head>
39
34
 
40
- <body>
41
- <!-- Navbar -->
42
- <nav
43
- class="width:100% display:flex align-items:center background:transparent padding-top:10px padding-bottom:10px"
44
- content_id="content"
45
- scroll="sticky-nav,"
46
- scroll-up="5"
47
- scroll-down="5"
48
- path="../"
49
- src="../components/navbar.html"
50
- ></nav>
51
- <sidenav
52
- id="menuL"
53
- class="position:fixed top:0px left:0px overflow:hidden background:whitesmoke height:100vh width:0px width:300px@xl"
54
- resizable
55
- resize-selector="[content_id='content']"
56
- resize-property="margin-left"
57
- resize-value="width"
58
- >
59
- <menu array="files" object="603717b07de7fb350ae9fec8" key="src"></menu>
60
- <div resize="right"></div>
61
- </sidenav>
62
- <main
63
- class="padding-top:15px padding:15px@lg@xl"
64
- content_id="content"
65
- id="cocreate-webpack"
66
- >
67
- <div
68
- class="display:flex flex-wrap:wrap justify-content:space-between position:relative margin:10px"
69
- >
70
- <div class="display:flex align-items:center">
71
- <h2>CoCreate-webpack</h2>
72
- </div>
73
- <div
74
- class="display:flex align-items:center font-size:20px position:absolute right:0 padding:5px background:white"
75
- >
76
- <div
77
- class="display:flex align-items:center transition:0.3s padding-left:10px"
78
- share-network="true"
79
- share-text="A convenient chain handler allows user to chain multiple components together. When one webpack is complete next one will start untill all webpack completed."
80
- share-title="CoCreate webpack"
81
- share-height="600"
82
- share-width="700"
83
- share-media="https://cdn.cocreate.app/docs/webpack.png"
84
- hover="display:block!important"
85
- hover-selector=".social-networks"
86
- >
87
- <div class="display:none social-networks">
88
- <a
89
- class="margin-right:15px"
90
- share-network="twitter"
91
- title="Share on twitter"
92
- ><i src="/assets/svg/twitter.svg"></i
93
- ></a>
94
- <a
95
- class="margin-right:15px"
96
- share-network="facebook"
97
- title="Share on Facebook"
98
- ><i src="/assets/svg/facebook.svg"></i
99
- ></a>
100
- <a
101
- class="margin-right:15px"
102
- share-network="instagram"
103
- title="Share on instagram"
104
- ><i src="/assets/svg/instagram.svg"></i
105
- ></a>
106
- </div>
107
- <a
108
- class="margin-right:15px"
109
- share-network="share"
110
- title="Share on share"
111
- ><i src="/assets/svg/share-alt.svg"></i
112
- ></a>
113
- </div>
114
- <a
115
- class="margin-right:15px"
116
- share-network="share"
117
- title="Share on share"
118
- ><i src="/assets/svg/share-alt.svg"></i
119
- ></a>
120
- </div>
121
- <a
122
- href="https://github.com/CoCreate-app/CoCreate-webpack"
123
- target="_blank"
124
- class=""
125
- ><i src="/assets/svg/github.svg"></i
126
- ></a>
127
- </div>
35
+ <body>
36
+ <!-- Navbar -->
37
+ <nav
38
+ class="width:100% display:flex align-items:center background:transparent padding-top:10px padding-bottom:10px"
39
+ content_id="content"
40
+ scroll="sticky-nav,"
41
+ scroll-up="5"
42
+ scroll-down="5"
43
+ path="../"
44
+ src="../components/navbar.html"></nav>
45
+ <sidenav
46
+ id="menuL"
47
+ class="position:fixed top:0px left:0px overflow:hidden background:whitesmoke height:100vh width:0px width:300px@xl"
48
+ resizable
49
+ resize-query="[content_id='content']"
50
+ resize-property="margin-left"
51
+ resize-value="width">
52
+ <menu
53
+ array="files"
54
+ object="603717b07de7fb350ae9fec8"
55
+ key="src"></menu>
56
+ <div resize="right"></div>
57
+ </sidenav>
58
+ <main
59
+ class="padding-top:15px padding:15px@lg@xl"
60
+ content_id="content"
61
+ id="cocreate-webpack">
62
+ <div
63
+ class="display:flex flex-wrap:wrap justify-content:space-between position:relative margin:10px">
64
+ <div class="display:flex align-items:center">
65
+ <h2>CoCreate-webpack</h2>
66
+ </div>
67
+ <div
68
+ class="display:flex align-items:center font-size:20px position:absolute right:0 padding:5px background:white">
69
+ <div
70
+ class="display:flex align-items:center transition:0.3s padding-left:10px"
71
+ share-network="true"
72
+ share-text="A convenient chain handler allows user to chain multiple components together. When one webpack is complete next one will start untill all webpack completed."
73
+ share-title="CoCreate webpack"
74
+ share-height="600"
75
+ share-width="700"
76
+ share-media="https://cdn.cocreate.app/docs/webpack.png"
77
+ hover="display:block!important"
78
+ hover-query=".social-networks">
79
+ <div class="display:none social-networks">
80
+ <a
81
+ class="margin-right:15px"
82
+ share-network="twitter"
83
+ title="Share on twitter"
84
+ ><i src="/assets/svg/twitter.svg"></i
85
+ ></a>
86
+ <a
87
+ class="margin-right:15px"
88
+ share-network="facebook"
89
+ title="Share on Facebook"
90
+ ><i src="/assets/svg/facebook.svg"></i
91
+ ></a>
92
+ <a
93
+ class="margin-right:15px"
94
+ share-network="instagram"
95
+ title="Share on instagram"
96
+ ><i src="/assets/svg/instagram.svg"></i
97
+ ></a>
98
+ </div>
99
+ <a
100
+ class="margin-right:15px"
101
+ share-network="share"
102
+ title="Share on share"
103
+ ><i src="/assets/svg/share-alt.svg"></i
104
+ ></a>
105
+ </div>
106
+ <a
107
+ class="margin-right:15px"
108
+ share-network="share"
109
+ title="Share on share"
110
+ ><i src="/assets/svg/share-alt.svg"></i
111
+ ></a>
112
+ </div>
113
+ <a
114
+ href="https://github.com/CoCreate-app/CoCreate-webpack"
115
+ target="_blank"
116
+ class=""
117
+ ><i src="/assets/svg/github.svg"></i
118
+ ></a>
119
+ </div>
128
120
 
129
- <h1
130
- class="max-width:500px margin:20px_10px line-height:1.5 font-size:16px font-weight:100"
131
- >
132
- A convenient chain handler allows user to chain multiple CoCreate
133
- components together. When one webpack is complete next one will start.
134
- The sequence goes untill all webpack completed. Grounded on Vanilla
135
- javascript, easily configured using HTML5 attributes and/or JavaScript
136
- API.
137
- </h1>
138
- <div id="webpack-section" class="display:flex flex-wrap:wrap">
139
- <div
140
- class="flex-grow:1 width:400px width:300px@xs padding:0px_10px margin-top:60px"
141
- >
142
- <div
143
- id="webpack-install"
144
- class="border-bottom:1px_solid_lightgrey"
145
- scroll
146
- scroll-intersect="color:dodgerblue"
147
- scroll-selector="#webpack-install-section"
148
- >
149
- <span
150
- class="display:flex align-items:center width:fit-content"
151
- hover="display:block!important"
152
- hover-selector="[href='#webpack-install']"
153
- >
154
- <h2 class="padding:5px_0px">Install</h2>
155
- <a class="margin-left:10px display:none" href="#webpack-install"
156
- ><i src="/assets/svg/link.svg"></i
157
- ></a>
158
- </span>
159
- </div>
121
+ <h1
122
+ class="max-width:500px margin:20px_10px line-height:1.5 font-size:16px font-weight:100">
123
+ A convenient chain handler allows user to chain multiple
124
+ CoCreate components together. When one webpack is complete next
125
+ one will start. The sequence goes untill all webpack completed.
126
+ Grounded on Vanilla javascript, easily configured using HTML5
127
+ attributes and/or JavaScript API.
128
+ </h1>
129
+ <div id="webpack-section" class="display:flex flex-wrap:wrap">
130
+ <div
131
+ class="flex-grow:1 width:400px width:300px@xs padding:0px_10px margin-top:60px">
132
+ <div
133
+ id="webpack-install"
134
+ class="border-bottom:1px_solid_lightgrey"
135
+ scroll
136
+ scroll-intersect="color:dodgerblue"
137
+ scroll-query="#webpack-install-section">
138
+ <span
139
+ class="display:flex align-items:center width:fit-content"
140
+ hover="display:block!important"
141
+ hover-query="[href='#webpack-install']">
142
+ <h2 class="padding:5px_0px">Install</h2>
143
+ <a
144
+ class="margin-left:10px display:none"
145
+ href="#webpack-install"
146
+ ><i src="/assets/svg/link.svg"></i
147
+ ></a>
148
+ </span>
149
+ </div>
160
150
 
161
- <pre><code class="language-bash">npm i @cocreate/webpack</code></pre>
162
- <p class="padding:10px_0px line-height:1.5">
163
- Or you can use cdn link:
164
- </p>
165
- <pre><code class="language-html">&lt;script&gt;https://cdn.cocreate.app/webpack/latest/CoCreate-webpack.min.js&lt;/script&gt;</code></pre>
151
+ <pre><code class="language-bash">npm i @cocreate/webpack</code></pre>
152
+ <p class="padding:10px_0px line-height:1.5">
153
+ Or you can use cdn link:
154
+ </p>
155
+ <pre><code class="language-html">&lt;script&gt;https://cdn.cocreate.app/webpack/latest/CoCreate-webpack.min.js&lt;/script&gt;</code></pre>
166
156
 
167
- <div
168
- id="webpack-usage"
169
- class="margin-top:80px border-bottom:1px_solid_lightgrey"
170
- scroll
171
- scroll-intersect="color:dodgerblue"
172
- scroll-selector="#webpack-usage-section"
173
- >
174
- <span
175
- class="display:flex align-items:center width:fit-content"
176
- hover="display:block!important"
177
- hover-selector="[href='#webpack-usage']"
178
- >
179
- <h2 class="padding:5px_0px">Usage</h2>
180
- <a class="margin-left:10px display:none" href="#webpack-usage"
181
- ><i src="/assets/svg/link.svg"></i
182
- ></a>
183
- </span>
184
- </div>
185
- <div class="">
186
- <p class="padding:10px_0px line-height:1.5">
187
- This is webpack usage
188
- </p>
157
+ <div
158
+ id="webpack-usage"
159
+ class="margin-top:80px border-bottom:1px_solid_lightgrey"
160
+ scroll
161
+ scroll-intersect="color:dodgerblue"
162
+ scroll-query="#webpack-usage-section">
163
+ <span
164
+ class="display:flex align-items:center width:fit-content"
165
+ hover="display:block!important"
166
+ hover-query="[href='#webpack-usage']">
167
+ <h2 class="padding:5px_0px">Usage</h2>
168
+ <a
169
+ class="margin-left:10px display:none"
170
+ href="#webpack-usage"
171
+ ><i src="/assets/svg/link.svg"></i
172
+ ></a>
173
+ </span>
174
+ </div>
175
+ <div class="">
176
+ <p class="padding:10px_0px line-height:1.5">
177
+ This is webpack usage
178
+ </p>
189
179
 
190
- <div class="flex-grow:1 min-width:300px width:100%">
191
- <pre><code class="language-html">&lt;div&gt;&lt;/div&gt;</code></pre>
192
- </div>
193
- <p class="padding:10px_0px line-height:1.5">
194
- This is webpack usage
195
- </p>
196
- <p class="padding:10px_0px line-height:1.5">
197
- This is webpack usage
198
- </p>
199
- </div>
180
+ <div class="flex-grow:1 min-width:300px width:100%">
181
+ <pre><code class="language-html">&lt;div&gt;&lt;/div&gt;</code></pre>
182
+ </div>
183
+ <p class="padding:10px_0px line-height:1.5">
184
+ This is webpack usage
185
+ </p>
186
+ <p class="padding:10px_0px line-height:1.5">
187
+ This is webpack usage
188
+ </p>
189
+ </div>
200
190
 
201
- <div
202
- id="webpack-attributes"
203
- class="margin-top:80px border-bottom:1px_solid_lightgrey"
204
- scroll
205
- scroll-intersect="color:dodgerblue"
206
- scroll-selector="#webpack-attributes-section"
207
- >
208
- <span
209
- class="display:flex align-items:center width:fit-content"
210
- hover="display:block!important"
211
- hover-selector="[href='#webpack-attributes']"
212
- >
213
- <h2 class="padding:5px_0px">Attributes</h2>
214
- <a
215
- class="margin-left:10px display:none"
216
- href="#webpack-attributes"
217
- ><i src="/assets/svg/link.svg"></i
218
- ></a>
219
- </span>
220
- </div>
191
+ <div
192
+ id="webpack-attributes"
193
+ class="margin-top:80px border-bottom:1px_solid_lightgrey"
194
+ scroll
195
+ scroll-intersect="color:dodgerblue"
196
+ scroll-query="#webpack-attributes-section">
197
+ <span
198
+ class="display:flex align-items:center width:fit-content"
199
+ hover="display:block!important"
200
+ hover-query="[href='#webpack-attributes']">
201
+ <h2 class="padding:5px_0px">Attributes</h2>
202
+ <a
203
+ class="margin-left:10px display:none"
204
+ href="#webpack-attributes"
205
+ ><i src="/assets/svg/link.svg"></i
206
+ ></a>
207
+ </span>
208
+ </div>
221
209
 
222
- <ul class="list-style-type:none">
223
- <li class="padding:15px_0px border-bottom:1px_solid_lightgrey">
224
- <h4>
225
- <span>webpack</span>
226
- <span class="cocreate-badge success">string</span>
227
- <span class="cocreate-badge warning">optional</span>
228
- </h4>
229
- <p>webpack-attribute</p>
230
- </li>
231
- <li class="padding:15px_0px border-bottom:1px_solid_lightgrey">
232
- <h4>
233
- <span>webpack</span>
234
- <span class="cocreate-badge success">string</span>
235
- <span class="cocreate-badge warning">optional</span>
236
- </h4>
237
- <p>webpack-attribute</p>
238
- </li>
239
- </ul>
240
- </div>
210
+ <ul class="list-style-type:none">
211
+ <li
212
+ class="padding:15px_0px border-bottom:1px_solid_lightgrey">
213
+ <h4>
214
+ <span>webpack</span>
215
+ <span class="cocreate-badge success"
216
+ >string</span
217
+ >
218
+ <span class="cocreate-badge warning"
219
+ >optional</span
220
+ >
221
+ </h4>
222
+ <p>webpack-attribute</p>
223
+ </li>
224
+ <li
225
+ class="padding:15px_0px border-bottom:1px_solid_lightgrey">
226
+ <h4>
227
+ <span>webpack</span>
228
+ <span class="cocreate-badge success"
229
+ >string</span
230
+ >
231
+ <span class="cocreate-badge warning"
232
+ >optional</span
233
+ >
234
+ </h4>
235
+ <p>webpack-attribute</p>
236
+ </li>
237
+ </ul>
238
+ </div>
241
239
 
242
- <div
243
- class="flex-grow:1 width:300px padding:0px_10px margin-top:60px border-bottom:1px_solid_lightgrey"
244
- >
245
- <!-- SandBox -->
246
- <div
247
- id="webpack-demo"
248
- class="border-bottom:1px_solid_lightgrey"
249
- scroll
250
- scroll-intersect="color:dodgerblue"
251
- scroll-selector="#webpack-demo-section"
252
- >
253
- <span
254
- class="display:flex align-items:center width:fit-content"
255
- hover="display:block!important"
256
- hover-selector="[href='#webpack-demo']"
257
- >
258
- <h2 class="padding:5px_0px">Demo</h2>
259
- <a class="margin-left:10px display:none" href="#webpack-demo"
260
- ><i src="/assets/svg/link.svg"></i
261
- ></a>
262
- </span>
263
- </div>
240
+ <div
241
+ class="flex-grow:1 width:300px padding:0px_10px margin-top:60px border-bottom:1px_solid_lightgrey">
242
+ <!-- SandBox -->
243
+ <div
244
+ id="webpack-demo"
245
+ class="border-bottom:1px_solid_lightgrey"
246
+ scroll
247
+ scroll-intersect="color:dodgerblue"
248
+ scroll-query="#webpack-demo-section">
249
+ <span
250
+ class="display:flex align-items:center width:fit-content"
251
+ hover="display:block!important"
252
+ hover-query="[href='#webpack-demo']">
253
+ <h2 class="padding:5px_0px">Demo</h2>
254
+ <a
255
+ class="margin-left:10px display:none"
256
+ href="#webpack-demo"
257
+ ><i src="/assets/svg/link.svg"></i
258
+ ></a>
259
+ </span>
260
+ </div>
264
261
 
265
- <div class="position:sticky top:0 padding:15px_0px height:100vh">
266
- <!-- SandBox -->
267
- <div
268
- class="display:flex flex-direction:column position:relative overflow:hidden card border-radius:2px width:auto height:600px margin-top:20px"
269
- id="playground"
270
- >
271
- <div
272
- id="demo-code"
273
- resizable
274
- class="position:relative height:50%"
275
- >
276
- <textarea
277
- type="code"
278
- lang="html"
279
- array="demos"
280
- object=""
281
- key="demo"
282
- save="false"
283
- id="demo"
284
- class="height:100% width:100% outline:none border:none resize:none padding:5px"
285
- ></textarea>
286
- <div resize="bottom" class="background:lightgrey"></div>
287
- </div>
262
+ <div
263
+ class="position:sticky top:0 padding:15px_0px height:100vh">
264
+ <!-- SandBox -->
265
+ <div
266
+ class="display:flex flex-direction:column position:relative overflow:hidden card border-radius:2px width:auto height:600px margin-top:20px"
267
+ id="playground">
268
+ <div
269
+ id="demo-code"
270
+ resizable
271
+ class="position:relative height:50%">
272
+ <textarea
273
+ type="code"
274
+ lang="html"
275
+ array="demos"
276
+ object=""
277
+ key="demo"
278
+ save="false"
279
+ id="demo"
280
+ class="height:100% width:100% outline:none border:none resize:none padding:5px"></textarea>
281
+ <div
282
+ resize="bottom"
283
+ class="background:lightgrey"></div>
284
+ </div>
288
285
 
289
- <div
290
- id="demo-preview"
291
- class="position:relative overflow:auto background-color:white"
292
- >
293
- <div class="demopreview padding:20px"></div>
294
- </div>
286
+ <div
287
+ id="demo-preview"
288
+ class="position:relative overflow:auto background-color:white">
289
+ <div class="demopreview padding:20px"></div>
290
+ </div>
295
291
 
296
- <div
297
- class="font-size:20px position:absolute top:10px right:10px opacity:0.6"
298
- >
299
- <a
300
- class="margin-right:10px"
301
- id="eye"
302
- show="#eye-slash"
303
- hide="#eye, #demo-preview"
304
- toggle="code-height"
305
- toggle-selector="#demo-code"
306
- ><i class="height:18px" src="/assets/svg/eye.svg"></i
307
- ></a>
308
- <a
309
- class="margin-right:10px"
310
- hidden
311
- id="eye-slash"
312
- show="#eye, #demo-preview"
313
- hide="#eye-slash"
314
- toggle="code-height"
315
- toggle-selector="#demo-code"
316
- ><i src="/assets/svg/eye-slash.svg"></i
317
- ></a>
318
- <a
319
- class="margin-right:10px"
320
- id="code"
321
- show="#code-slash"
322
- hide="#code, #demo-code"
323
- ><i src="/assets/svg/code.svg"></i
324
- ></a>
325
- <a
326
- class="margin-right:10px"
327
- hidden
328
- id="code-slash"
329
- show="#code, #demo-code"
330
- hide="#code-slash"
331
- ><i class="height:18px" src="/assets/svg/code.svg"></i
332
- ></a>
333
- <a
334
- class="margin-right:5px"
335
- fullscreen
336
- fullscreen-selector="#playground"
337
- ></a>
338
- </div>
339
- </div>
340
- <!-- End SandBox -->
341
- </div>
342
- </div>
343
- </div>
344
- <button
345
- href="https://github.com/CoCreate-app/CoCreate-webpack/tree/master/docs/index.html?message=docs%3A%20describe%20your%20change..."
346
- target="_blank"
347
- class="display:flex justify-content:center align-items:center position:fixed bottom:15px right:15px height:50px width:50px border-radius:50% box-shadow:0px_2px_10px_0px_rgba(0,_0,_0,_0.4)"
348
- >
349
- <i src="../assets/svg/pencil-alt.svg"></i>
350
- </button>
351
- </main>
352
- <script src="https://cdn.cocreate.app/latest/CoCreate.min.js"></script>
353
- </body>
292
+ <div
293
+ class="font-size:20px position:absolute top:10px right:10px opacity:0.6">
294
+ <a
295
+ class="margin-right:10px"
296
+ id="eye"
297
+ show="#eye-slash"
298
+ hide="#eye, #demo-preview"
299
+ toggle="code-height"
300
+ toggle-query="#demo-code"
301
+ ><i
302
+ class="height:18px"
303
+ src="/assets/svg/eye.svg"></i
304
+ ></a>
305
+ <a
306
+ class="margin-right:10px"
307
+ hidden
308
+ id="eye-slash"
309
+ show="#eye, #demo-preview"
310
+ hide="#eye-slash"
311
+ toggle="code-height"
312
+ toggle-query="#demo-code"
313
+ ><i src="/assets/svg/eye-slash.svg"></i
314
+ ></a>
315
+ <a
316
+ class="margin-right:10px"
317
+ id="code"
318
+ show="#code-slash"
319
+ hide="#code, #demo-code"
320
+ ><i src="/assets/svg/code.svg"></i
321
+ ></a>
322
+ <a
323
+ class="margin-right:10px"
324
+ hidden
325
+ id="code-slash"
326
+ show="#code, #demo-code"
327
+ hide="#code-slash"
328
+ ><i
329
+ class="height:18px"
330
+ src="/assets/svg/code.svg"></i
331
+ ></a>
332
+ <a
333
+ class="margin-right:5px"
334
+ fullscreen
335
+ fullscreen-query="#playground"></a>
336
+ </div>
337
+ </div>
338
+ <!-- End SandBox -->
339
+ </div>
340
+ </div>
341
+ </div>
342
+ <button
343
+ href="https://github.com/CoCreate-app/CoCreate-webpack/tree/master/docs/index.html?message=docs%3A%20describe%20your%20change..."
344
+ target="_blank"
345
+ class="display:flex justify-content:center align-items:center position:fixed bottom:15px right:15px height:50px width:50px border-radius:50% box-shadow:0px_2px_10px_0px_rgba(0,_0,_0,_0.4)">
346
+ <i src="../assets/svg/pencil-alt.svg"></i>
347
+ </button>
348
+ </main>
349
+ <script src="https://cdn.cocreate.app/latest/CoCreate.min.js"></script>
350
+ </body>
354
351
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/webpack",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "A Webpack integration tool for CoCreate applications, enabling file watching, automated chunking, lazy loading, and file uploading. It leverages CoCreate.config for streamlined project builds and development workflows.",
5
5
  "keywords": [
6
6
  "webpack",
package/src/index.js CHANGED
@@ -1,125 +1,194 @@
1
- const fs = require('fs');
2
- const path = require('path');
1
+ // Import 'fs' for file system operations and 'path' for path operations
2
+ const fs = require("fs");
3
+ const path = require("path");
3
4
 
4
- const upload = require('@cocreate/cli/src/commands/upload.js')
5
+ // Import 'upload' function from CoCreate CLI to handle uploads
6
+ const upload = require("@cocreate/cli/src/commands/upload.js");
5
7
 
8
+ /**
9
+ * Class representing a Module Generator.
10
+ * Generates module files based on a configuration and applies them to the Webpack compiler.
11
+ */
6
12
  class ModuleGenerator {
7
- constructor(modulesConfig) {
8
- this.modulesConfig = modulesConfig;
9
- }
10
-
11
- apply(compiler) {
12
- let CoCreateConfig;
13
- if (typeof this.modulesConfig === 'object')
14
- CoCreateConfig = this.modulesConfig.config;
15
- else {
16
- try {
17
- CoCreateConfig = require(this.modulesConfig.configPath);
18
- } catch (error) {
19
- console.error('Error loading CoCreate.config.js:', error);
20
- throw error; // Stop compilation process if configuration is critical
21
- }
22
- }
23
- let modulesGenerated = false
24
-
25
- compiler.hooks.beforeCompile.tapAsync('CoCreateLazyloader', (params, callback) => {
26
- if (modulesGenerated)
27
- callback();
28
- else {
29
- let outputPath = this.modulesConfig.outputPath || './modules.js'; // Default path for generated module.js
30
-
31
- // Generate module content based on CoCreateConfig
32
- let moduleContent = `import { dependency, lazyLoad } from '@cocreate/lazy-loader';\n\n`;
33
- Object.entries(this.modulesConfig).forEach(([moduleName, moduleInfo]) => {
34
- if (moduleName === 'outputPath' || typeof moduleInfo !== 'object') return;
35
- if (moduleInfo.selector) {
36
- // Generate lazyLoad statements for modules with selectors
37
- moduleInfo.selector = moduleInfo.selector.replaceAll("'", '"')
38
- moduleContent += `lazyLoad('${moduleName}', '${moduleInfo.selector}', () => import(/*webpackChunkName: "${moduleName}-chunk"*/ '${moduleInfo.import}'));\n`;
39
- } else {
40
- // Generate dependency statements for other modules
41
- moduleContent += `dependency('${moduleName}', import(/*webpackChunkName: "${moduleName}-chunk"*/ '${moduleInfo.import}'));\n`;
42
- }
43
- });
44
-
45
- // Write the module content to the specified outputPath
46
- fs.writeFile(outputPath, moduleContent, (err) => {
47
- if (err) {
48
- console.error(`Error writing ${outputPath}:`, err);
49
- callback(err); // Handle errors in async hook
50
- } else {
51
- modulesGenerated = true
52
- console.log(`${outputPath} generated successfully.`);
53
- callback(); // Proceed with compilation
54
- }
55
- });
56
- }
57
- });
58
- }
13
+ /**
14
+ * Creates an instance of ModuleGenerator.
15
+ * @param {Object} modulesConfig - The configuration for the modules.
16
+ */
17
+ constructor(modulesConfig) {
18
+ this.modulesConfig = modulesConfig;
19
+ }
20
+
21
+ /**
22
+ * Apply the module generation process to the Webpack compiler.
23
+ * @param {Object} compiler - The Webpack compiler instance.
24
+ */
25
+ apply(compiler) {
26
+ let CoCreateConfig;
27
+
28
+ if (typeof this.modulesConfig === "object") {
29
+ CoCreateConfig = this.modulesConfig.config;
30
+ } else {
31
+ try {
32
+ CoCreateConfig = require(this.modulesConfig.configPath);
33
+ } catch (error) {
34
+ console.error("Error loading CoCreate.config.js:", error);
35
+ throw error; // Stop the compilation process if configuration is critical
36
+ }
37
+ }
38
+
39
+ let modulesGenerated = false;
40
+
41
+ compiler.hooks.beforeCompile.tapAsync(
42
+ "CoCreateLazyloader",
43
+ (params, callback) => {
44
+ if (modulesGenerated) callback();
45
+ else {
46
+ let outputPath =
47
+ this.modulesConfig.outputPath || "./modules.js"; // Default path for generated module.js
48
+
49
+ // Generate module content based on CoCreateConfig
50
+ let moduleContent = `import { dependency, lazyLoad } from '@cocreate/lazy-loader';\n\n`;
51
+ Object.entries(this.modulesConfig).forEach(
52
+ ([moduleName, moduleInfo]) => {
53
+ if (
54
+ moduleName === "outputPath" ||
55
+ typeof moduleInfo !== "object"
56
+ )
57
+ return;
58
+
59
+ if (moduleInfo.selector) {
60
+ // Generate lazyLoad statements for modules with selectors
61
+ moduleInfo.selector =
62
+ moduleInfo.selector.replaceAll("'", '"');
63
+ moduleContent += `lazyLoad('${moduleName}', '${moduleInfo.selector}', () => import(/*webpackChunkName: "${moduleName}-chunk"*/ '${moduleInfo.import}'));\n`;
64
+ } else {
65
+ // Generate dependency statements for other modules
66
+ moduleContent += `dependency('${moduleName}', import(/*webpackChunkName: "${moduleName}-chunk"*/ '${moduleInfo.import}'));\n`;
67
+ }
68
+ }
69
+ );
70
+
71
+ // Write the module content to the specified outputPath
72
+ fs.writeFile(outputPath, moduleContent, (err) => {
73
+ if (err) {
74
+ console.error(`Error writing ${outputPath}:`, err);
75
+ callback(err); // Handle errors in async hook
76
+ } else {
77
+ modulesGenerated = true;
78
+ console.log(
79
+ `${outputPath} generated successfully.`
80
+ );
81
+ callback(); // Proceed with compilation
82
+ }
83
+ });
84
+ }
85
+ }
86
+ );
87
+ }
59
88
  }
60
89
 
90
+ /**
91
+ * Class to handle file uploads, particularly useful during watch mode.
92
+ */
61
93
  class FileUploader {
62
- constructor(env, argv) {
63
- this.env = env;
64
- this.isWatching = false;
65
- this.isWatch = argv.watch === true;
66
- }
67
-
68
- apply(compiler) {
69
- if (this.isWatch) {
70
-
71
- if (this.env.beforeCompilation) {
72
- // Directly perform upload here
73
- upload(process.cwd(), ['../', '-w']);
74
- }
75
-
76
- if (this.env.afterCompilation) {
77
- compiler.hooks.emit.tapAsync('watchFiles', (compilation, callback) => {
78
- if (!this.isWatching) {
79
- this.isWatching = true;
80
- upload(process.cwd(), ['../', '-w']);
81
- }
82
- callback();
83
- });
84
- }
85
- }
86
- }
94
+ /**
95
+ * Creates an instance of FileUploader.
96
+ * @param {Object} env - The environment variables.
97
+ * @param {Object} argv - The arguments provided.
98
+ */
99
+ constructor(env, argv) {
100
+ this.env = env;
101
+ this.isWatching = false;
102
+ this.isWatch = argv.watch === true;
103
+ }
104
+
105
+ /**
106
+ * Apply the file uploader process to the Webpack compiler.
107
+ * @param {Object} compiler - The Webpack compiler instance.
108
+ */
109
+ apply(compiler) {
110
+ if (this.isWatch) {
111
+ if (this.env.beforeCompilation) {
112
+ // Directly perform upload here
113
+ upload(process.cwd(), ["../", "-w"]);
114
+ }
115
+
116
+ if (this.env.afterCompilation) {
117
+ compiler.hooks.emit.tapAsync(
118
+ "watchFiles",
119
+ (compilation, callback) => {
120
+ if (!this.isWatching) {
121
+ this.isWatching = true;
122
+ upload(process.cwd(), ["../", "-w"]);
123
+ }
124
+ callback();
125
+ }
126
+ );
127
+ }
128
+ }
129
+ }
87
130
  }
88
131
 
89
-
132
+ /**
133
+ * Class responsible for creating symbolic links after the build process.
134
+ */
90
135
  class SymlinkCreator {
91
- constructor(options) {
92
- // Store options if necessary, or just hard-code paths
93
- }
94
-
95
- apply(compiler) {
96
- // Use compiler.hooks to tap into the Webpack build process
97
- compiler.hooks.afterEmit.tap('SymlinkPlugin', (compilation) => {
98
- // Perform symlink operations here
99
- symlink('./dist', '../dist', 'dir');
100
- symlink('./node_modules/@cocreate/pwa/src/service-worker.js', '../service-worker.js', 'file');
101
- symlink('./node_modules/@cocreate/pwa/src/manifest.webmanifest', '../manifest.webmanifest', 'file');
102
- symlink('./node_modules/@cocreate/pwa/src/offline.html', '../offline.html', 'file');
103
- });
104
-
105
- function symlink(target, destination, option) {
106
- if (fs.existsSync(target)) {
107
- target = path.resolve(target)
108
-
109
- if (!fs.existsSync(destination)) {
110
- destination = path.resolve(destination)
111
-
112
- fs.symlink(target, destination, option, (err) => {
113
- if (err)
114
- console.log(err);
115
- else
116
- console.log("symlink added: ", target);
117
- })
118
-
119
- }
120
- }
121
- }
122
- }
136
+ /**
137
+ * Creates an instance of SymlinkCreator.
138
+ * @param {Object} [options] - Optional configurations for symlink creation.
139
+ */
140
+ constructor(options) {
141
+ // Store options if necessary, or just hard-code paths
142
+ }
143
+
144
+ /**
145
+ * Apply the symlink creation process to the Webpack compiler.
146
+ * @param {Object} compiler - The Webpack compiler instance.
147
+ */
148
+ apply(compiler) {
149
+ // Use compiler.hooks to tap into the Webpack build process
150
+ compiler.hooks.afterEmit.tap("SymlinkPlugin", (compilation) => {
151
+ // Perform symlink operations here
152
+ symlink("./dist", "../dist", "dir");
153
+ symlink(
154
+ "./node_modules/@cocreate/pwa/src/service-worker.js",
155
+ "../service-worker.js",
156
+ "file"
157
+ );
158
+ symlink(
159
+ "./node_modules/@cocreate/pwa/src/manifest.webmanifest",
160
+ "../manifest.webmanifest",
161
+ "file"
162
+ );
163
+ symlink(
164
+ "./node_modules/@cocreate/pwa/src/offline.html",
165
+ "../offline.html",
166
+ "file"
167
+ );
168
+ });
169
+
170
+ /**
171
+ * Function to create a symlink if the target exists and the destination does not.
172
+ * @param {string} target - Path to the target.
173
+ * @param {string} destination - Path to the destination.
174
+ * @param {string} option - Type of symlink ('file' or 'dir').
175
+ */
176
+ function symlink(target, destination, option) {
177
+ if (fs.existsSync(target)) {
178
+ target = path.resolve(target);
179
+
180
+ if (!fs.existsSync(destination)) {
181
+ destination = path.resolve(destination);
182
+
183
+ fs.symlink(target, destination, option, (err) => {
184
+ if (err) console.log(err);
185
+ else console.log("symlink added: ", target);
186
+ });
187
+ }
188
+ }
189
+ }
190
+ }
123
191
  }
124
192
 
193
+ // Export the defined classes so they can be used in other modules or configurations
125
194
  module.exports = { ModuleGenerator, FileUploader, SymlinkCreator };