@turnipxenon/pineapple 2.4.71 → 2.4.72

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/.gitignore CHANGED
@@ -14,5 +14,9 @@ dist
14
14
  /.vercel/
15
15
 
16
16
  # Prisma for debugging; need to migrate some Prisma function to Seaweed
17
- ./prisma
17
+ prisma
18
18
 
19
+ #/prisma/migrations/20240408050417_init/migration.sql
20
+ #/prisma/migrations/migration_lock.toml
21
+ #/src/lib/server-temp/prisma.ts
22
+ #/prisma/schema.prisma
@@ -4,7 +4,7 @@
4
4
  <option name="autoReloadType" value="SELECTIVE" />
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
- <list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="CreateUrlForm" comment="Fix bug with query params" />
7
+ <list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="CreateUrlForm" comment="Fix .gitignore" />
8
8
  <list id="a5282f93-c2bb-4265-921e-8b484677dd29" name="prisma" comment="" />
9
9
  <option name="SHOW_DIALOG" value="false" />
10
10
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -110,34 +110,34 @@
110
110
  <option name="hideEmptyMiddlePackages" value="true" />
111
111
  <option name="showLibraryContents" value="true" />
112
112
  </component>
113
- <component name="PropertiesComponent"><![CDATA[{
114
- "keyToString": {
115
- "DefaultHtmlFileTemplate": "HTML File",
116
- "RunOnceActivity.OpenProjectViewOnStart": "true",
117
- "RunOnceActivity.ShowReadmeOnStart": "true",
118
- "WebServerToolWindowFactoryState": "false",
119
- "git-widget-placeholder": "turnip/dev",
120
- "ignore.virus.scanning.warn.message": "true",
121
- "last_opened_file_path": "C:/Users/Pumpkin/Projects/Web/pineapple/src/lib",
122
- "list.type.of.created.stylesheet": "CSS",
123
- "node.js.detected.package.eslint": "true",
124
- "node.js.detected.package.tslint": "true",
125
- "node.js.selected.package.eslint": "(autodetect)",
126
- "node.js.selected.package.tslint": "(autodetect)",
127
- "nodejs_interpreter_path": "node",
128
- "nodejs_package_manager_path": "yarn",
129
- "npm.build.executor": "Run",
130
- "npm.dev (1).executor": "Run",
131
- "npm.dev --open.executor": "Run",
132
- "npm.dev offline.executor": "Run",
133
- "npm.dev-offline.executor": "Run",
134
- "npm.dev.executor": "Run",
135
- "npm.to-dev.executor": "Run",
136
- "settings.editor.selected.configurable": "settings.sync",
137
- "ts.external.directory.path": "C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib",
138
- "vue.rearranger.settings.migration": "true"
113
+ <component name="PropertiesComponent">{
114
+ &quot;keyToString&quot;: {
115
+ &quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
116
+ &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
117
+ &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
118
+ &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
119
+ &quot;git-widget-placeholder&quot;: &quot;turnip/dev&quot;,
120
+ &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
121
+ &quot;last_opened_file_path&quot;: &quot;C:/Users/Pumpkin/Projects/Web/pineapple/src/lib&quot;,
122
+ &quot;list.type.of.created.stylesheet&quot;: &quot;CSS&quot;,
123
+ &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
124
+ &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
125
+ &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
126
+ &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
127
+ &quot;nodejs_interpreter_path&quot;: &quot;node&quot;,
128
+ &quot;nodejs_package_manager_path&quot;: &quot;yarn&quot;,
129
+ &quot;npm.build.executor&quot;: &quot;Run&quot;,
130
+ &quot;npm.dev (1).executor&quot;: &quot;Run&quot;,
131
+ &quot;npm.dev --open.executor&quot;: &quot;Run&quot;,
132
+ &quot;npm.dev offline.executor&quot;: &quot;Run&quot;,
133
+ &quot;npm.dev-offline.executor&quot;: &quot;Run&quot;,
134
+ &quot;npm.dev.executor&quot;: &quot;Run&quot;,
135
+ &quot;npm.to-dev.executor&quot;: &quot;Run&quot;,
136
+ &quot;settings.editor.selected.configurable&quot;: &quot;settings.sync&quot;,
137
+ &quot;ts.external.directory.path&quot;: &quot;C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib&quot;,
138
+ &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
139
139
  }
140
- }]]></component>
140
+ }</component>
141
141
  <component name="RecentsManager">
142
142
  <key name="CopyFile.RECENT_KEYS">
143
143
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib" />
@@ -158,7 +158,7 @@
158
158
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\util\util.ts" />
159
159
  </key>
160
160
  </component>
161
- <component name="RunManager" selected="npm.dev --open">
161
+ <component name="RunManager" selected="npm.to-dev">
162
162
  <configuration name="dev --open" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
163
163
  <package-json value="$PROJECT_DIR$/package.json" />
164
164
  <command value="run" />
@@ -199,8 +199,8 @@
199
199
  </list>
200
200
  <recent_temporary>
201
201
  <list>
202
- <item itemvalue="npm.dev --open" />
203
202
  <item itemvalue="npm.to-dev" />
203
+ <item itemvalue="npm.dev --open" />
204
204
  <item itemvalue="npm.dev-offline" />
205
205
  <item itemvalue="npm.dev --open" />
206
206
  <item itemvalue="npm.to-dev" />
@@ -361,23 +361,8 @@
361
361
  <workItem from="1712779118025" duration="2950000" />
362
362
  <workItem from="1712782201465" duration="745000" />
363
363
  <workItem from="1712790206684" duration="453000" />
364
- <workItem from="1712941939083" duration="1159000" />
365
- </task>
366
- <task id="LOCAL-00141" summary="Implement cdktf for empty AppService">
367
- <option name="closed" value="true" />
368
- <created>1712396217629</created>
369
- <option name="number" value="00141" />
370
- <option name="presentableId" value="LOCAL-00141" />
371
- <option name="project" value="LOCAL" />
372
- <updated>1712396217629</updated>
373
- </task>
374
- <task id="LOCAL-00142" summary="WIP: cdktf">
375
- <option name="closed" value="true" />
376
- <created>1712398173694</created>
377
- <option name="number" value="00142" />
378
- <option name="presentableId" value="LOCAL-00142" />
379
- <option name="project" value="LOCAL" />
380
- <updated>1712398173694</updated>
364
+ <workItem from="1712941939083" duration="1372000" />
365
+ <workItem from="1712943458951" duration="763000" />
381
366
  </task>
382
367
  <task id="LOCAL-00143" summary="WIP: cdktf">
383
368
  <option name="closed" value="true" />
@@ -755,7 +740,23 @@
755
740
  <option name="project" value="LOCAL" />
756
741
  <updated>1712942987624</updated>
757
742
  </task>
758
- <option name="localTasksCounter" value="190" />
743
+ <task id="LOCAL-00190" summary="Pineapple v2.4.71">
744
+ <option name="closed" value="true" />
745
+ <created>1712943298855</created>
746
+ <option name="number" value="00190" />
747
+ <option name="presentableId" value="LOCAL-00190" />
748
+ <option name="project" value="LOCAL" />
749
+ <updated>1712943298856</updated>
750
+ </task>
751
+ <task id="LOCAL-00191" summary="Fix .gitignore">
752
+ <option name="closed" value="true" />
753
+ <created>1712944115604</created>
754
+ <option name="number" value="00191" />
755
+ <option name="presentableId" value="LOCAL-00191" />
756
+ <option name="project" value="LOCAL" />
757
+ <updated>1712944115604</updated>
758
+ </task>
759
+ <option name="localTasksCounter" value="192" />
759
760
  <servers />
760
761
  </component>
761
762
  <component name="TypeScriptGeneratedFilesManager">
@@ -813,8 +814,6 @@
813
814
  </option>
814
815
  </component>
815
816
  <component name="VcsManagerConfiguration">
816
- <MESSAGE value="Add logs to observe parseQtTerms in downstream package" />
817
- <MESSAGE value="Move parseQtTerm on afterUpdate" />
818
817
  <MESSAGE value="Change parseQueryTerm to parse during runtime on the DOM instead of on the raw svelte text" />
819
818
  <MESSAGE value="Add dynamic url adder UI" />
820
819
  <MESSAGE value="Add CreateUrl UI" />
@@ -838,6 +837,8 @@
838
837
  <MESSAGE value="Export GetLatestBlogs properly" />
839
838
  <MESSAGE value="Update description for ThisWebpage" />
840
839
  <MESSAGE value="Fix bug with query params" />
841
- <option name="LAST_COMMIT_MESSAGE" value="Fix bug with query params" />
840
+ <MESSAGE value="Pineapple v2.4.71" />
841
+ <MESSAGE value="Fix .gitignore" />
842
+ <option name="LAST_COMMIT_MESSAGE" value="Fix .gitignore" />
842
843
  </component>
843
844
  </project>
@@ -1 +1 @@
1
- ./server-temp
1
+ server-temp
@@ -10,63 +10,63 @@ const loadPageMeta = async () => {
10
10
  onMount(() => {
11
11
  loadPageMeta();
12
12
  });
13
- </script>
14
-
15
- <Card>
16
- <div slot="content" class="chum-bucket">
17
- <h2>More about me...</h2>
18
- <p>Check out the latest things I've been rambling about at
19
- <a href="https://turnipxenon.com" target="_blank">turnipxenon.com</a> or at
20
- <a href="https://turnipxenon.com/blogs/coding-chagrin" target="_blank">turnipxenon.com/blogs/coding-chagrin.</a>
21
- </p>
22
-
23
- {#if pageMetaList.length > 0}
24
- <h3><b>My latest blogs (sounds too fancy)</b></h3>
25
- {/if}
26
-
27
- <div class="chum-bucket-grid">
28
- {#each pageMetaList as pageMeta}
29
- <div class="chum-bucket-item">
30
- {#if pageMeta.imageUrl}
31
- <img src={`https://turnipxenon.com${pageMeta.imageUrl}`}
32
- class="chum-bucket-image"
33
- alt={pageMeta.imageAlt}>
34
- {/if}
35
- <div>
36
- <h3><a href={`https://turnipxenon.com/${pageMeta.relativeLink}`}>{pageMeta.title}</a></h3>
37
- <p>{pageMeta.description}</p>
38
- </div>
39
- </div>
40
- {/each}
41
- </div>
42
- </div>
43
- </Card>
44
-
45
- <style>
46
- .chum-bucket-item {
47
- width: 100%;
48
- display: flex;
49
- flex-direction: row;
50
- align-items: flex-start;
51
- }
52
-
53
- .chum-bucket-image {
54
- max-width: 10em;
55
- height: auto;
56
- margin-top: 0.5em;
57
- margin-inline-end: 1em;
58
- }
59
-
60
-
61
- .chum-bucket {
62
- padding: 1.5lh 2em;
63
- max-width: 600px;
64
- }
65
-
66
- .chum-bucket-grid {
67
- display: flex;
68
- flex-direction: column;
69
- margin-top: 0.5lh;
70
- gap: 0.5lh;
71
- }
72
- </style>
13
+ </script>
14
+
15
+ <Card>
16
+ <div slot="content" class="chum-bucket">
17
+ <h2>More about me...</h2>
18
+ <p>Check out the latest things I've been rambling about at
19
+ <a href="https://turnipxenon.com" target="_blank">turnipxenon.com</a> or at
20
+ <a href="https://turnipxenon.com/blogs/coding-chagrin" target="_blank">turnipxenon.com/blogs/coding-chagrin.</a>
21
+ </p>
22
+
23
+ {#if pageMetaList.length > 0}
24
+ <h3><b>My latest blogs (sounds too fancy)</b></h3>
25
+ {/if}
26
+
27
+ <div class="chum-bucket-grid">
28
+ {#each pageMetaList as pageMeta}
29
+ <div class="chum-bucket-item">
30
+ {#if pageMeta.imageUrl}
31
+ <img src={`https://turnipxenon.com${pageMeta.imageUrl}`}
32
+ class="chum-bucket-image"
33
+ alt={pageMeta.imageAlt}>
34
+ {/if}
35
+ <div>
36
+ <h3><a href={`https://turnipxenon.com/${pageMeta.relativeLink}`}>{pageMeta.title}</a></h3>
37
+ <p>{pageMeta.description}</p>
38
+ </div>
39
+ </div>
40
+ {/each}
41
+ </div>
42
+ </div>
43
+ </Card>
44
+
45
+ <style>
46
+ .chum-bucket-item {
47
+ width: 100%;
48
+ display: flex;
49
+ flex-direction: row;
50
+ align-items: flex-start;
51
+ }
52
+
53
+ .chum-bucket-image {
54
+ max-width: 10em;
55
+ height: auto;
56
+ margin-top: 0.5em;
57
+ margin-inline-end: 1em;
58
+ }
59
+
60
+
61
+ .chum-bucket {
62
+ padding: 1.5lh 2em;
63
+ max-width: 600px;
64
+ }
65
+
66
+ .chum-bucket-grid {
67
+ display: flex;
68
+ flex-direction: column;
69
+ margin-top: 0.5lh;
70
+ gap: 0.5lh;
71
+ }
72
+ </style>
@@ -214,12 +214,12 @@ $:
214
214
 
215
215
  <h2>Highlight</h2>
216
216
  <p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
217
- active users</b> at Twitch</p>
217
+ active users</b> at Twitch (an Amazon Web Services subsidiary)</p>
218
218
 
219
219
  <h2>Software Engineer</h2>
220
220
  <div class="two-column-separated">
221
221
  <div>July 2023 – January 2024</div>
222
- <div style="text-align: end">Twitch, Remote</div>
222
+ <div style="text-align: end">Twitch (Amazon Web Services), Remote</div>
223
223
  </div>
224
224
  <ul>
225
225
  <li>
@@ -245,7 +245,7 @@ $:
245
245
  <h2>Software Engineer Intern</h2>
246
246
  <div class="two-column-separated">
247
247
  <div>May 2022 – Aug 2022</div>
248
- <div style="text-align: end">Twitch, San Francisco</div>
248
+ <div style="text-align: end">Twitch (Amazon Web Services), San Francisco</div>
249
249
  </div>
250
250
  <ul>
251
251
  <li>
@@ -278,7 +278,7 @@ $:
278
278
  <h2>Software Engineer Intern</h2>
279
279
  <div class="two-column-separated">
280
280
  <div>May 2021 – Dec 2021</div>
281
- <div style="text-align: end">Twitch / Amazon Web Services Canada, Remote</div>
281
+ <div style="text-align: end">Twitch (Amazon Web Services), Remote</div>
282
282
  </div>
283
283
  <ul>
284
284
  <li>
package/dist/.gitignore CHANGED
@@ -1 +1 @@
1
- ./server-temp
1
+ server-temp
@@ -10,63 +10,63 @@ const loadPageMeta = async () => {
10
10
  onMount(() => {
11
11
  loadPageMeta();
12
12
  });
13
- </script>
14
-
15
- <Card>
16
- <div slot="content" class="chum-bucket">
17
- <h2>More about me...</h2>
18
- <p>Check out the latest things I've been rambling about at
19
- <a href="https://turnipxenon.com" target="_blank">turnipxenon.com</a> or at
20
- <a href="https://turnipxenon.com/blogs/coding-chagrin" target="_blank">turnipxenon.com/blogs/coding-chagrin.</a>
21
- </p>
22
-
23
- {#if pageMetaList.length > 0}
24
- <h3><b>My latest blogs (sounds too fancy)</b></h3>
25
- {/if}
26
-
27
- <div class="chum-bucket-grid">
28
- {#each pageMetaList as pageMeta}
29
- <div class="chum-bucket-item">
30
- {#if pageMeta.imageUrl}
31
- <img src={`https://turnipxenon.com${pageMeta.imageUrl}`}
32
- class="chum-bucket-image"
33
- alt={pageMeta.imageAlt}>
34
- {/if}
35
- <div>
36
- <h3><a href={`https://turnipxenon.com/${pageMeta.relativeLink}`}>{pageMeta.title}</a></h3>
37
- <p>{pageMeta.description}</p>
38
- </div>
39
- </div>
40
- {/each}
41
- </div>
42
- </div>
43
- </Card>
44
-
45
- <style>
46
- .chum-bucket-item {
47
- width: 100%;
48
- display: flex;
49
- flex-direction: row;
50
- align-items: flex-start;
51
- }
52
-
53
- .chum-bucket-image {
54
- max-width: 10em;
55
- height: auto;
56
- margin-top: 0.5em;
57
- margin-inline-end: 1em;
58
- }
59
-
60
-
61
- .chum-bucket {
62
- padding: 1.5lh 2em;
63
- max-width: 600px;
64
- }
65
-
66
- .chum-bucket-grid {
67
- display: flex;
68
- flex-direction: column;
69
- margin-top: 0.5lh;
70
- gap: 0.5lh;
71
- }
72
- </style>
13
+ </script>
14
+
15
+ <Card>
16
+ <div slot="content" class="chum-bucket">
17
+ <h2>More about me...</h2>
18
+ <p>Check out the latest things I've been rambling about at
19
+ <a href="https://turnipxenon.com" target="_blank">turnipxenon.com</a> or at
20
+ <a href="https://turnipxenon.com/blogs/coding-chagrin" target="_blank">turnipxenon.com/blogs/coding-chagrin.</a>
21
+ </p>
22
+
23
+ {#if pageMetaList.length > 0}
24
+ <h3><b>My latest blogs (sounds too fancy)</b></h3>
25
+ {/if}
26
+
27
+ <div class="chum-bucket-grid">
28
+ {#each pageMetaList as pageMeta}
29
+ <div class="chum-bucket-item">
30
+ {#if pageMeta.imageUrl}
31
+ <img src={`https://turnipxenon.com${pageMeta.imageUrl}`}
32
+ class="chum-bucket-image"
33
+ alt={pageMeta.imageAlt}>
34
+ {/if}
35
+ <div>
36
+ <h3><a href={`https://turnipxenon.com/${pageMeta.relativeLink}`}>{pageMeta.title}</a></h3>
37
+ <p>{pageMeta.description}</p>
38
+ </div>
39
+ </div>
40
+ {/each}
41
+ </div>
42
+ </div>
43
+ </Card>
44
+
45
+ <style>
46
+ .chum-bucket-item {
47
+ width: 100%;
48
+ display: flex;
49
+ flex-direction: row;
50
+ align-items: flex-start;
51
+ }
52
+
53
+ .chum-bucket-image {
54
+ max-width: 10em;
55
+ height: auto;
56
+ margin-top: 0.5em;
57
+ margin-inline-end: 1em;
58
+ }
59
+
60
+
61
+ .chum-bucket {
62
+ padding: 1.5lh 2em;
63
+ max-width: 600px;
64
+ }
65
+
66
+ .chum-bucket-grid {
67
+ display: flex;
68
+ flex-direction: column;
69
+ margin-top: 0.5lh;
70
+ gap: 0.5lh;
71
+ }
72
+ </style>
@@ -214,12 +214,12 @@ $:
214
214
 
215
215
  <h2>Highlight</h2>
216
216
  <p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
217
- active users</b> at Twitch</p>
217
+ active users</b> at Twitch (an Amazon Web Services subsidiary)</p>
218
218
 
219
219
  <h2>Software Engineer</h2>
220
220
  <div class="two-column-separated">
221
221
  <div>July 2023 – January 2024</div>
222
- <div style="text-align: end">Twitch, Remote</div>
222
+ <div style="text-align: end">Twitch (Amazon Web Services), Remote</div>
223
223
  </div>
224
224
  <ul>
225
225
  <li>
@@ -245,7 +245,7 @@ $:
245
245
  <h2>Software Engineer Intern</h2>
246
246
  <div class="two-column-separated">
247
247
  <div>May 2022 – Aug 2022</div>
248
- <div style="text-align: end">Twitch, San Francisco</div>
248
+ <div style="text-align: end">Twitch (Amazon Web Services), San Francisco</div>
249
249
  </div>
250
250
  <ul>
251
251
  <li>
@@ -278,7 +278,7 @@ $:
278
278
  <h2>Software Engineer Intern</h2>
279
279
  <div class="two-column-separated">
280
280
  <div>May 2021 – Dec 2021</div>
281
- <div style="text-align: end">Twitch / Amazon Web Services Canada, Remote</div>
281
+ <div style="text-align: end">Twitch (Amazon Web Services), Remote</div>
282
282
  </div>
283
283
  <ul>
284
284
  <li>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@turnipxenon/pineapple",
3
3
  "description": "personal package for base styling for other personal projects",
4
- "version": "2.4.71",
4
+ "version": "2.4.72",
5
5
  "scripts": {
6
6
  "dev": "vite dev",
7
7
  "build": "vite build && yarn package",
@@ -1 +1 @@
1
- ./server-temp
1
+ server-temp
@@ -1,7 +1,7 @@
1
- export const GetLatestBlogs = async () => {
2
- const resp = await fetch("http://turnipxenon.com/api/get-latest-blogs");
3
- if (!resp.ok) {
4
- return new Response(JSON.stringify([]));
5
- }
6
- return new Response(JSON.stringify(await resp.json()));
7
- };
1
+ export const GetLatestBlogs = async () => {
2
+ const resp = await fetch("http://turnipxenon.com/api/get-latest-blogs");
3
+ if (!resp.ok) {
4
+ return new Response(JSON.stringify([]));
5
+ }
6
+ return new Response(JSON.stringify(await resp.json()));
7
+ };
@@ -1,3 +1,3 @@
1
- // noinspection JSUnusedGlobalSymbols
2
-
3
- export * from "./GetLatestBlogs";
1
+ // noinspection JSUnusedGlobalSymbols
2
+
3
+ export * from "./GetLatestBlogs";
@@ -1,75 +1,75 @@
1
- <script lang="ts">
2
- import Card from "$pkg/components/Card.svelte";
3
- import { type PageMeta } from "$pkg";
4
- import { onMount } from "svelte";
5
-
6
- let pageMetaList: PageMeta[] = [];
7
- const loadPageMeta = async () => {
8
- fetch("/api/get-latest-blogs").then(resp => resp.json()).then(json => {
9
- pageMetaList = json as PageMeta[];
10
- });
11
- };
12
-
13
- onMount(() => {
14
- loadPageMeta();
15
- });
16
- </script>
17
-
18
- <Card>
19
- <div slot="content" class="chum-bucket">
20
- <h2>More about me...</h2>
21
- <p>Check out the latest things I've been rambling about at
22
- <a href="https://turnipxenon.com" target="_blank">turnipxenon.com</a> or at
23
- <a href="https://turnipxenon.com/blogs/coding-chagrin" target="_blank">turnipxenon.com/blogs/coding-chagrin.</a>
24
- </p>
25
-
26
- {#if pageMetaList.length > 0}
27
- <h3><b>My latest blogs (sounds too fancy)</b></h3>
28
- {/if}
29
-
30
- <div class="chum-bucket-grid">
31
- {#each pageMetaList as pageMeta}
32
- <div class="chum-bucket-item">
33
- {#if pageMeta.imageUrl}
34
- <img src={`https://turnipxenon.com${pageMeta.imageUrl}`}
35
- class="chum-bucket-image"
36
- alt={pageMeta.imageAlt}>
37
- {/if}
38
- <div>
39
- <h3><a href={`https://turnipxenon.com/${pageMeta.relativeLink}`}>{pageMeta.title}</a></h3>
40
- <p>{pageMeta.description}</p>
41
- </div>
42
- </div>
43
- {/each}
44
- </div>
45
- </div>
46
- </Card>
47
-
48
- <style lang="postcss">
49
- .chum-bucket-item {
50
- width: 100%;
51
- display: flex;
52
- flex-direction: row;
53
- align-items: flex-start;
54
- }
55
-
56
- .chum-bucket-image {
57
- max-width: 10em;
58
- height: auto;
59
- margin-top: 0.5em;
60
- margin-inline-end: 1em;
61
- }
62
-
63
-
64
- .chum-bucket {
65
- padding: 1.5lh 2em;
66
- max-width: 600px;
67
- }
68
-
69
- .chum-bucket-grid {
70
- display: flex;
71
- flex-direction: column;
72
- margin-top: 0.5lh;
73
- gap: 0.5lh;
74
- }
75
- </style>
1
+ <script lang="ts">
2
+ import Card from "$pkg/components/Card.svelte";
3
+ import { type PageMeta } from "$pkg";
4
+ import { onMount } from "svelte";
5
+
6
+ let pageMetaList: PageMeta[] = [];
7
+ const loadPageMeta = async () => {
8
+ fetch("/api/get-latest-blogs").then(resp => resp.json()).then(json => {
9
+ pageMetaList = json as PageMeta[];
10
+ });
11
+ };
12
+
13
+ onMount(() => {
14
+ loadPageMeta();
15
+ });
16
+ </script>
17
+
18
+ <Card>
19
+ <div slot="content" class="chum-bucket">
20
+ <h2>More about me...</h2>
21
+ <p>Check out the latest things I've been rambling about at
22
+ <a href="https://turnipxenon.com" target="_blank">turnipxenon.com</a> or at
23
+ <a href="https://turnipxenon.com/blogs/coding-chagrin" target="_blank">turnipxenon.com/blogs/coding-chagrin.</a>
24
+ </p>
25
+
26
+ {#if pageMetaList.length > 0}
27
+ <h3><b>My latest blogs (sounds too fancy)</b></h3>
28
+ {/if}
29
+
30
+ <div class="chum-bucket-grid">
31
+ {#each pageMetaList as pageMeta}
32
+ <div class="chum-bucket-item">
33
+ {#if pageMeta.imageUrl}
34
+ <img src={`https://turnipxenon.com${pageMeta.imageUrl}`}
35
+ class="chum-bucket-image"
36
+ alt={pageMeta.imageAlt}>
37
+ {/if}
38
+ <div>
39
+ <h3><a href={`https://turnipxenon.com/${pageMeta.relativeLink}`}>{pageMeta.title}</a></h3>
40
+ <p>{pageMeta.description}</p>
41
+ </div>
42
+ </div>
43
+ {/each}
44
+ </div>
45
+ </div>
46
+ </Card>
47
+
48
+ <style lang="postcss">
49
+ .chum-bucket-item {
50
+ width: 100%;
51
+ display: flex;
52
+ flex-direction: row;
53
+ align-items: flex-start;
54
+ }
55
+
56
+ .chum-bucket-image {
57
+ max-width: 10em;
58
+ height: auto;
59
+ margin-top: 0.5em;
60
+ margin-inline-end: 1em;
61
+ }
62
+
63
+
64
+ .chum-bucket {
65
+ padding: 1.5lh 2em;
66
+ max-width: 600px;
67
+ }
68
+
69
+ .chum-bucket-grid {
70
+ display: flex;
71
+ flex-direction: column;
72
+ margin-top: 0.5lh;
73
+ gap: 0.5lh;
74
+ }
75
+ </style>
@@ -274,12 +274,12 @@
274
274
 
275
275
  <h2>Highlight</h2>
276
276
  <p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
277
- active users</b> at Twitch</p>
277
+ active users</b> at Twitch (an Amazon Web Services subsidiary)</p>
278
278
 
279
279
  <h2>Software Engineer</h2>
280
280
  <div class="two-column-separated">
281
281
  <div>July 2023 – January 2024</div>
282
- <div style="text-align: end">Twitch, Remote</div>
282
+ <div style="text-align: end">Twitch (Amazon Web Services), Remote</div>
283
283
  </div>
284
284
  <ul>
285
285
  <li>
@@ -305,7 +305,7 @@
305
305
  <h2>Software Engineer Intern</h2>
306
306
  <div class="two-column-separated">
307
307
  <div>May 2022 – Aug 2022</div>
308
- <div style="text-align: end">Twitch, San Francisco</div>
308
+ <div style="text-align: end">Twitch (Amazon Web Services), San Francisco</div>
309
309
  </div>
310
310
  <ul>
311
311
  <li>
@@ -338,7 +338,7 @@
338
338
  <h2>Software Engineer Intern</h2>
339
339
  <div class="two-column-separated">
340
340
  <div>May 2021 – Dec 2021</div>
341
- <div style="text-align: end">Twitch / Amazon Web Services Canada, Remote</div>
341
+ <div style="text-align: end">Twitch (Amazon Web Services), Remote</div>
342
342
  </div>
343
343
  <ul>
344
344
  <li>
@@ -1,4 +1,4 @@
1
- import type { RequestHandler } from "./$types";
2
- import { GetLatestBlogs } from "$pkg/api/GetLatestBlogs";
3
-
4
- export const GET: RequestHandler = GetLatestBlogs;
1
+ import type { RequestHandler } from "./$types";
2
+ import { GetLatestBlogs } from "$pkg/api/GetLatestBlogs";
3
+
4
+ export const GET: RequestHandler = GetLatestBlogs;