vaderjs 1.3.2 → 1.3.4

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.
Files changed (116) hide show
  1. package/create-vader-app/example_proj/dist/vaderjs/index.js +5 -0
  2. package/create-vader-app/example_proj/dist/vaderjs/vader-min.js +1115 -0
  3. package/create-vader-app/example_proj/dist/vaderjs/vaderRouter-min.js +1 -0
  4. package/create-vader-app/example_proj/dist/vaderjs/worker.js +327 -0
  5. package/create-vader-app/example_proj/index.html +20 -0
  6. package/create-vader-app/example_proj/readme.md +2 -0
  7. package/create-vader-app/example_proj/src/pages/Index.js +13 -0
  8. package/create-vader-app/example_proj/src/views/app.html +16 -0
  9. package/create-vader-app/index.js +20 -0
  10. package/create-vader-app/node_modules/.package-lock.json +350 -0
  11. package/create-vader-app/node_modules/chalk/license +9 -0
  12. package/create-vader-app/node_modules/chalk/package.json +83 -0
  13. package/create-vader-app/node_modules/chalk/readme.md +325 -0
  14. package/create-vader-app/node_modules/chalk/source/index.d.ts +320 -0
  15. package/create-vader-app/node_modules/chalk/source/index.js +225 -0
  16. package/create-vader-app/node_modules/chalk/source/utilities.js +33 -0
  17. package/create-vader-app/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  18. package/create-vader-app/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  19. package/create-vader-app/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  20. package/create-vader-app/node_modules/chalk/source/vendor/supports-color/browser.js +30 -0
  21. package/create-vader-app/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  22. package/create-vader-app/node_modules/chalk/source/vendor/supports-color/index.js +182 -0
  23. package/create-vader-app/node_modules/commander/LICENSE +22 -0
  24. package/create-vader-app/node_modules/commander/Readme.md +1146 -0
  25. package/create-vader-app/node_modules/commander/esm.mjs +16 -0
  26. package/create-vader-app/node_modules/commander/index.js +27 -0
  27. package/create-vader-app/node_modules/commander/lib/argument.js +147 -0
  28. package/create-vader-app/node_modules/commander/lib/command.js +2196 -0
  29. package/create-vader-app/node_modules/commander/lib/error.js +45 -0
  30. package/create-vader-app/node_modules/commander/lib/help.js +464 -0
  31. package/create-vader-app/node_modules/commander/lib/option.js +331 -0
  32. package/create-vader-app/node_modules/commander/lib/suggestSimilar.js +100 -0
  33. package/create-vader-app/node_modules/commander/package-support.json +16 -0
  34. package/create-vader-app/node_modules/commander/package.json +90 -0
  35. package/create-vader-app/node_modules/commander/typings/esm.d.mts +3 -0
  36. package/create-vader-app/node_modules/commander/typings/index.d.ts +889 -0
  37. package/create-vader-app/node_modules/fs-extra/LICENSE +15 -0
  38. package/create-vader-app/node_modules/fs-extra/README.md +292 -0
  39. package/create-vader-app/node_modules/fs-extra/lib/copy/copy-sync.js +161 -0
  40. package/create-vader-app/node_modules/fs-extra/lib/copy/copy.js +238 -0
  41. package/create-vader-app/node_modules/fs-extra/lib/copy/index.js +7 -0
  42. package/create-vader-app/node_modules/fs-extra/lib/empty/index.js +39 -0
  43. package/create-vader-app/node_modules/fs-extra/lib/ensure/file.js +69 -0
  44. package/create-vader-app/node_modules/fs-extra/lib/ensure/index.js +23 -0
  45. package/create-vader-app/node_modules/fs-extra/lib/ensure/link.js +64 -0
  46. package/create-vader-app/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  47. package/create-vader-app/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  48. package/create-vader-app/node_modules/fs-extra/lib/ensure/symlink.js +82 -0
  49. package/create-vader-app/node_modules/fs-extra/lib/esm.mjs +68 -0
  50. package/create-vader-app/node_modules/fs-extra/lib/fs/index.js +140 -0
  51. package/create-vader-app/node_modules/fs-extra/lib/index.js +16 -0
  52. package/create-vader-app/node_modules/fs-extra/lib/json/index.js +16 -0
  53. package/create-vader-app/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  54. package/create-vader-app/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  55. package/create-vader-app/node_modules/fs-extra/lib/json/output-json.js +12 -0
  56. package/create-vader-app/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  57. package/create-vader-app/node_modules/fs-extra/lib/mkdirs/make-dir.js +27 -0
  58. package/create-vader-app/node_modules/fs-extra/lib/mkdirs/utils.js +21 -0
  59. package/create-vader-app/node_modules/fs-extra/lib/move/index.js +7 -0
  60. package/create-vader-app/node_modules/fs-extra/lib/move/move-sync.js +55 -0
  61. package/create-vader-app/node_modules/fs-extra/lib/move/move.js +76 -0
  62. package/create-vader-app/node_modules/fs-extra/lib/output-file/index.js +40 -0
  63. package/create-vader-app/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  64. package/create-vader-app/node_modules/fs-extra/lib/remove/index.js +17 -0
  65. package/create-vader-app/node_modules/fs-extra/lib/util/stat.js +154 -0
  66. package/create-vader-app/node_modules/fs-extra/lib/util/utimes.js +26 -0
  67. package/create-vader-app/node_modules/fs-extra/package.json +71 -0
  68. package/create-vader-app/node_modules/graceful-fs/LICENSE +15 -0
  69. package/create-vader-app/node_modules/graceful-fs/README.md +143 -0
  70. package/create-vader-app/node_modules/graceful-fs/clone.js +23 -0
  71. package/create-vader-app/node_modules/graceful-fs/graceful-fs.js +448 -0
  72. package/create-vader-app/node_modules/graceful-fs/legacy-streams.js +118 -0
  73. package/create-vader-app/node_modules/graceful-fs/package.json +53 -0
  74. package/create-vader-app/node_modules/graceful-fs/polyfills.js +355 -0
  75. package/create-vader-app/node_modules/inherits/LICENSE +16 -0
  76. package/create-vader-app/node_modules/inherits/README.md +42 -0
  77. package/create-vader-app/node_modules/inherits/inherits.js +7 -0
  78. package/create-vader-app/node_modules/inherits/inherits_browser.js +23 -0
  79. package/create-vader-app/node_modules/inherits/package.json +29 -0
  80. package/create-vader-app/node_modules/jsonfile/CHANGELOG.md +171 -0
  81. package/create-vader-app/node_modules/jsonfile/LICENSE +15 -0
  82. package/create-vader-app/node_modules/jsonfile/README.md +230 -0
  83. package/create-vader-app/node_modules/jsonfile/index.js +88 -0
  84. package/create-vader-app/node_modules/jsonfile/package.json +40 -0
  85. package/create-vader-app/node_modules/jsonfile/utils.js +14 -0
  86. package/create-vader-app/node_modules/path/LICENSE +18 -0
  87. package/create-vader-app/node_modules/path/README.md +15 -0
  88. package/create-vader-app/node_modules/path/package.json +24 -0
  89. package/create-vader-app/node_modules/path/path.js +628 -0
  90. package/create-vader-app/node_modules/process/.eslintrc +21 -0
  91. package/create-vader-app/node_modules/process/LICENSE +22 -0
  92. package/create-vader-app/node_modules/process/README.md +26 -0
  93. package/create-vader-app/node_modules/process/browser.js +184 -0
  94. package/create-vader-app/node_modules/process/index.js +2 -0
  95. package/create-vader-app/node_modules/process/package.json +27 -0
  96. package/create-vader-app/node_modules/process/test.js +199 -0
  97. package/create-vader-app/node_modules/universalify/LICENSE +20 -0
  98. package/create-vader-app/node_modules/universalify/README.md +76 -0
  99. package/create-vader-app/node_modules/universalify/index.js +24 -0
  100. package/create-vader-app/node_modules/universalify/package.json +34 -0
  101. package/create-vader-app/node_modules/util/LICENSE +18 -0
  102. package/create-vader-app/node_modules/util/README.md +15 -0
  103. package/create-vader-app/node_modules/util/package.json +35 -0
  104. package/create-vader-app/node_modules/util/support/isBuffer.js +3 -0
  105. package/create-vader-app/node_modules/util/support/isBufferBrowser.js +6 -0
  106. package/create-vader-app/node_modules/util/util.js +586 -0
  107. package/create-vader-app/package-lock.json +384 -0
  108. package/create-vader-app/package.json +18 -0
  109. package/images/router.png +0 -0
  110. package/images/state.png +0 -0
  111. package/package.json +1 -1
  112. package/ts.config.json +1 -0
  113. package/vader-min.js +1 -1
  114. package/vader.js +106 -326
  115. package/worker-min.js +1 -1
  116. package/worker.js +268 -168
@@ -0,0 +1 @@
1
+ class VaderRouter{constructor(t){this.routes=[],this.middlewares=[],this.errorMiddlewares=[],this.listeners=[],this.basePath=t}get(t,e){this.routes.push({path:t,handler:e,method:"get"})}use(t){this.middlewares.push(t)}listen(t,e){t||(t=Math.random().toString(36).substring(7)),this.listeners.push(t),e(),1===this.listeners.length?this.handleRoute(window.location.hash):this.listeners.pop(),e&&e(),window.onhashchange=()=>{this.handleRoute(window.location.hash)}}extractParams(t,e){const s=t.split("/"),a=e.split("/"),r={};return s.forEach(((t,e)=>{if(t.startsWith(":")){const s=t.slice(1);r[s]=a[e]}else t.startsWith("*")&&(r[0]=a.slice(e).join("/").split("?")[0])})),r}extractQueryParams(t){const e=t.split("?")[1];if(!e)return{};const s={};return e.split("&").forEach((t=>{const[e,a]=t.split("=");s[e]=a})),s}handleRoute(t){t=t.slice(1);let e=200,s=this.routes.find((e=>{if(e.path===t)return!0;const s=e.path.split("/"),a=t.split("/");if(s.length!==a.length)return!1;if(s[s.length-1].startsWith("*"))return!0;const r=this.extractParams(e.path,t);return Object.keys(r).length>0}));s||(s=this.routes.find((t=>{if("/404"===t.path)return!0;window.location.hash=this.basePath})),e=s?200:404);const a=this.extractQueryParams(t),r={headers:{},params:s&&s.path?this.extractParams(s.path,t):{},query:a,path:t,method:s?s.method:"get"};window.$CURRENT_URL=r.path,window.$FULL_URL=window.location.href.replace("#","");const i={status:e,log:t=>{void 0===t?console.log(`${r.path} ${r.method} ${i.status} ${r.timestamp}`):console.table({"Request Path":r.path,"Request Method":s.method,"Response Status":i.status,"Request Timestamp":r.timestamp})},send:(t,e)=>{"string"==typeof t?document.querySelector(t).innerHTML=e:"number"==typeof t?i.status=t:"object"==typeof t&&(i.status=t.status)},json:(t,e)=>{if("string"!=typeof t)throw new Error("Selector must be a string");{let s=document.createElement("object");s.data=URL.createObjectURL(new Blob([JSON.stringify(e)],{type:"application/json"})),document.querySelector(t).appendChild(s)}}};this.middlewares.forEach((t=>{t(r,i)})),s&&s.handler(r,i)}}export default VaderRouter;
@@ -0,0 +1,327 @@
1
+ onmessage = (e) => {
2
+ let time_started = Date.now();
3
+ let strings = e.data.strings;
4
+ let args = e.data.args;
5
+ let js = "";
6
+ let l = e.data.location.split("/").slice(0, -1).join("/");
7
+ let result = "";
8
+ for (let i = 0; i < strings.length; i++) {
9
+ result += strings[i];
10
+ if (i < args.length) {
11
+ result += args[i];
12
+ }
13
+ }
14
+
15
+ let comments = result.match(/--([^>]*)--/gs);
16
+ /**
17
+ * @example
18
+ *
19
+ * -- This is a comment --
20
+ */
21
+ if (comments) {
22
+ while (comments.length) {
23
+ let comment = comments.pop();
24
+ // @ts-ignore
25
+ result = result.replace(comment, "");
26
+ }
27
+ }
28
+
29
+ result = result.replace(/(#+)([^<>\n]*)(?![^<]*>)(?![^{]*})/g, (match, hashes, text) => {
30
+ let level = hashes.length;
31
+ return `<h${level} class="markdown_heading">${text}</h${level}>`;
32
+ });
33
+
34
+
35
+ // Convert bold (e.g., **Bold** => <b>Bold</b>)
36
+ result = result.replace(/\*\*(.*?)\*\*/g, (match, text) => {
37
+ return `<b class="markdown_bold">${text}</b>`;
38
+ });
39
+
40
+ // Convert italic (e.g., *Italic* => <i>Italic</i>)
41
+ result = result.replace(/\*(.*?)\*/g, (match, text) => {
42
+ return `<i class="markdown_italic">${text}</i>`;
43
+ });
44
+
45
+ // Convert code (e.g., `code` => <code>code</code>)
46
+ result = result.replace(/`(.*?)`/g, (match, text) => {
47
+ return `<code>${text}</code>`;
48
+ });
49
+
50
+ // Convert links (e.g., [Text](URL) => <a href="URL">Text</a>)
51
+ result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (match, text, url) => {
52
+ return `<a class="markdown_link" href="${url}">${text}</a>`;
53
+ });
54
+
55
+ // Convert images (e.g., ![Alt](URL) => <img src="URL" alt="Alt" />)
56
+ result = result.replace(/!\[([^\]]+)\]\(([^)]+)\)/g, (match, alt, src) => {
57
+ return `<img class="markdown_image" src="${src}" alt="${alt}" />`;
58
+ });
59
+
60
+ // Convert unordered lists (e.g., * Item => <ul><li>Item</li></ul>)
61
+ result.split("\n").forEach((line, index, arr) => {
62
+ if (line.match(/^\s*-\s+(.*?)$/gm)) {
63
+ if (index === 0 || !arr[index - 1].match(/^\s*-\s+(.*?)$/gm)) {
64
+ result = result.replace(
65
+ line,
66
+ `<ul class="markdown_unordered" style="list-style-type:disc;list-style:inside"><li>${line.replace(
67
+ /^\s*-\s+(.*?)$/gm,
68
+ "$1"
69
+ )}</li>`
70
+ );
71
+ } else if (
72
+ index === arr.length - 1 ||
73
+ !arr[index + 1].match(/^\s*-\s+(.*?)$/gm)
74
+ ) {
75
+ result = result.replace(
76
+ line,
77
+ `<li>${line.replace(/^\s*-\s+(.*?)$/gm, "$1")}</li></ul>`
78
+ );
79
+ } else {
80
+ result = result.replace(
81
+ line,
82
+ `<li>${line.replace(/^\s*-\s+(.*?)$/gm, "$1")}</li>`
83
+ );
84
+ }
85
+ }
86
+ });
87
+
88
+ // Convert ordered lists (e.g., 1. Item => <ol><li>Item</li></ol>) in order
89
+
90
+ result.split("\n").forEach((line, index, arr) => {
91
+ if (line.match(/^\s*\d+\.\s+(.*?)$/gm)) {
92
+ if (index === 0 || !arr[index - 1].match(/^\s*\d+\.\s+(.*?)$/gm)) {
93
+ result = result.replace(
94
+ line,
95
+ `<ol class="markdown_ordered" style="list-style-type:decimal;"><li>${line.replace(
96
+ /^\s*\d+\.\s+(.*?)$/gm,
97
+ "$1"
98
+ )}</li>`
99
+ );
100
+ } else if (
101
+ index === arr.length - 1 ||
102
+ !arr[index + 1].match(/^\s*\d+\.\s+(.*?)$/gm)
103
+ ) {
104
+ result = result.replace(
105
+ line,
106
+ `<li>${line.replace(/^\s*\d+\.\s+(.*?)$/gm, "$1")}</li></ol>`
107
+ );
108
+ } else {
109
+ result = result.replace(
110
+ line,
111
+ `<li>${line.replace(/^\s*\d+\.\s+(.*?)$/gm, "$1")}</li>`
112
+ );
113
+ }
114
+ }
115
+ });
116
+
117
+ result = result.replace(/^\s*-\s+(.*?)$/gm, (match, text) => {
118
+ return `<li class="markdown_list_item">${text}</li>`;
119
+ });
120
+ result = result.replace(
121
+ /^\s*---\s*$/gm,
122
+ '<hr class="markdown_horizontal" />'
123
+ );
124
+
125
+ // Convert blockquotes (e.g., > Quote => <blockquote>Quote</blockquote>)
126
+ result = result.replace(/^\s*> (.*)$/gm, (match, text) => {
127
+ return `<blockquote class="markdown_blockquote">${text}</blockquote>`;
128
+ });
129
+
130
+ // Convert tables (e.g., | Header | Cell | => <table><thead><tr><th>Header</th><th>Cell</th></tr></thead></table>)
131
+ result = result.replace(
132
+ /((?: *\|.*?)+)\n((?: *\|.*?)+)/gm,
133
+ (match, header, cell) => {
134
+ const headerCells = header.split("|").slice(1, -1);
135
+ const cells = cell.split("|").slice(1, -1);
136
+ let table = '<table class="markdown_table">';
137
+ table +=
138
+ '<thead class="markdown_table_head"><tr class="markdown_table_row">';
139
+ headerCells.forEach((headerCell) => {
140
+ table += `<th class="markdown_table_header_cell">${headerCell}</th>`;
141
+ });
142
+ table +=
143
+ '</tr></thead><tbody class="markdown_table_body"><tr class="markdown_table_row">';
144
+ cells.forEach((cell) => {
145
+ table += `<td class="markdown_table_body_cell">${cell}</td>`;
146
+ });
147
+ table += "</tr></tbody></table>";
148
+ return table;
149
+ }
150
+ );
151
+
152
+ if (!result.includes("<body>")) {
153
+ throw new Error(
154
+ `Vader Error: You must enclose your html in a body tag for all components. \n\n${result}`
155
+ );
156
+ }
157
+ /**
158
+ * @type {string[]}
159
+ * @description - grabbing all className attributes and replace them with class
160
+ */
161
+ // @ts-ignore
162
+ result = result.replace(/classname/g, "class");
163
+ /**
164
+ * @type {string[]}
165
+ * @description - grabbing all image tags and replace the src attribute with the absolute path
166
+ */
167
+ // @ts-ignore
168
+ let images = result.match(/<img([^>]*)>/g);
169
+ if (images) {
170
+ for (let i = 0; i < images.length; i++) {
171
+ let image = images[i];
172
+ let src = image.match(/src="([^"]*)"/);
173
+ let alt = image.match(/alt="([^"]*)"/);
174
+
175
+ if (!alt && !result.includes("<!-- #vader-disable_accessibility -->")) {
176
+ throw new Error(
177
+ `Vader Error: You must include an alt attribute in the image tag \n\n${image} of class ${e.data.name}. `
178
+ );
179
+ }
180
+ if (src) {
181
+ src.forEach((s) => {
182
+ if (
183
+ !s.includes("http") &&
184
+ !result.includes("<!-- #vader-disable_relative-paths -->")
185
+ ) {
186
+ result = result.replace(`src="${s}"`, `src="${l}/${s}"`);
187
+ } else if (
188
+ !s.includes("http") &&
189
+ s.startsWith(".") &&
190
+ !result.includes("<!-- #vader-disable_relative-paths -->")
191
+ ) {
192
+ throw new Error(
193
+ `Vader Error: You cannot use absolute paths since relative paths are not disabled in ${e.data.file}. Use relative paths instead. \n\n${s}`
194
+ );
195
+ }
196
+ });
197
+ }
198
+ }
199
+ }
200
+
201
+ let href = result.match(/href="([^"]*)"/g);
202
+ if (href) {
203
+ while (href.length) {
204
+ let h = href.pop();
205
+ // @ts-ignore
206
+ h = h.replace('href="', "").replace('"', "");
207
+ if (
208
+ !h.includes("http") &&
209
+ !result.includes("<!-- #vader-disable_relative-paths -->")
210
+ ) {
211
+ result = result.replace(`href="${h}"`, `href="#${h}"`);
212
+ } else if (
213
+ !h.includes("http") &&
214
+ h.startsWith(".") &&
215
+ !result.includes("<!-- #vader-disable_relative-paths -->")
216
+ ) {
217
+ throw new Error(
218
+ `Vader Error: You cannot use absolute paths since relative paths are not disabled in ${e.data.file}. Use relative paths instead. \n\n${h}`
219
+ );
220
+ }
221
+ }
222
+ }
223
+
224
+ let time_ended = Date.now();
225
+ let time_taken = time_ended - time_started;
226
+ let hasran = false;
227
+ if (l.includes("localhost") || (l.includes("127.0.0.1") && !hasran)) {
228
+ hasran = true;
229
+ result += `\$\{console.log('%c${e.data.name} component rendered in ${time_taken}ms')\}`;
230
+ }
231
+
232
+ const d = result.split("<script>");
233
+
234
+ if (d) {
235
+ d.forEach((scriptTag, index) => {
236
+ if (index === 0) {
237
+ result = scriptTag;
238
+ } else {
239
+ if (scriptTag.includes("// <![CDATA[ <-- For SVG support")) {
240
+ return;
241
+ }
242
+ let script = scriptTag.split("</script>")[0];
243
+ js += script;
244
+ }
245
+ });
246
+ }
247
+
248
+ let jstemplates = result.match(/(\$\(.*?\))/gs);
249
+ if (jstemplates) {
250
+ while (jstemplates.length) {
251
+ let jstemplate = jstemplates.pop();
252
+ // @ts-ignore
253
+ result = result.replace(
254
+ // @ts-ignore
255
+ jstemplate,
256
+ // @ts-ignore
257
+ `$\{${jstemplate.replace("$(", "").replace(")", "")}\}`
258
+ );
259
+ }
260
+ }
261
+
262
+ let title = result.match(/@title '([^>]*)';/);
263
+ if (title) {
264
+ let t = title[1];
265
+ let ti = `{document.title = "${t}", ""}`;
266
+ result = result.replace(title[0], "$" + ti);
267
+ }
268
+ // @ts-ignore
269
+
270
+
271
+ let styles = result.match(/@style{([^>]*)};/gs);
272
+
273
+ if (styles) {
274
+ for (let i = 0; i < styles.length; i++) {
275
+ // make sure its in a tag
276
+
277
+ if (!styles[i].includes("style")) {
278
+ continue;
279
+ }
280
+ let style = styles[i];
281
+ console.log(style)
282
+
283
+ let css = style.replace("@style{", "").replace("};", "");
284
+ // @ts-ignore
285
+ css = css.replaceAll(",", ";");
286
+ // @ts-ignore
287
+ css = css.replaceAll(/[A-Z]/g, (match) => {
288
+ return `-${match.toLowerCase()}`;
289
+ }
290
+ );
291
+ //@ts-ignore
292
+ css = css.replaceAll(/'/g, " ");
293
+ result = result.replace(style, `style="${css}"`);
294
+
295
+
296
+ }
297
+ }
298
+
299
+ let stylsheet = result.match(/@stylesheet{([^>]*)};/);
300
+ if (stylsheet) {
301
+ let styles = stylsheet[1];
302
+ /**
303
+ * @stylesheet{
304
+ * body:{
305
+ * backgroundColor: red;
306
+ *
307
+ * }
308
+ * }
309
+ */
310
+
311
+ // @ts-ignore
312
+ let css = styles.replaceAll(" ", "");
313
+ css = css.replaceAll(",", ";");
314
+ css = css.replaceAll(/[A-Z]/g, (match) => {
315
+ return `-${match.toLowerCase()}`;
316
+ }
317
+ );
318
+ css = css.replaceAll(/'/g, " ");
319
+
320
+ result = result.replace(stylsheet[0], `<style>${css}</style>`);
321
+ }
322
+ postMessage({
323
+ template: `<div data-component=${e.data.name}>${result}</div>`,
324
+ js: js ? js : ""
325
+ });
326
+ };
327
+
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Document</title>
7
+ </head>
8
+ <body>
9
+ <div id="app"></div>
10
+ <script type="module">
11
+ import { VaderRouter} from './dist/vaderjs/index.js'
12
+ import { Index} from './src/pages/index.js'
13
+ let app = new VaderRouter('/')
14
+ app.get('/', async (req, res)=>{
15
+ res.send('#app', await new Index().render())
16
+ })
17
+ app.listen(3000, ()=> console.log('listening on port 3000'))
18
+ </script>
19
+ </body>
20
+ </html>
@@ -0,0 +1,2 @@
1
+ # Vaderjs v1.3.
2
+
@@ -0,0 +1,13 @@
1
+ import { include } from "../../dist/vaderjs/index.js";
2
+ import Vader from "../../dist/vaderjs/index.js";
3
+
4
+ export class Index extends Vader.Component{
5
+ constructor(){
6
+ super()
7
+ }
8
+
9
+ async render(){
10
+
11
+ return this.html(await include('/views/app.html'))
12
+ }
13
+ }
@@ -0,0 +1,16 @@
1
+ <body>
2
+ @title 'Vader.js';
3
+
4
+ <h1
5
+ @style{
6
+ position:fixed,
7
+ top: 0,
8
+ left: 0,
9
+ margin: 0,
10
+ padding:14px
11
+ };
12
+ >
13
+ Vader
14
+ </h1>
15
+
16
+ </body>
@@ -0,0 +1,20 @@
1
+ const commander = require('commander');
2
+
3
+ const fs = require('fs-extra');
4
+ const path = require('path');
5
+
6
+
7
+
8
+ const version = require('../package.json').version;
9
+
10
+ const program = new commander.Command('create-vader-app')
11
+
12
+ program
13
+ .version(version)
14
+ .arguments('<project-directory>')
15
+ .usage(`<project-directory> [options]`)
16
+ .action((name) => {
17
+ let projectName = name
18
+ console.log(`Creating a new Vader app in ${projectName}`)
19
+ })
20
+ .parse(process.argv)