summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/web/src/components/Share.tsx14
-rw-r--r--packages/web/src/types/lang-map.d.ts27
2 files changed, 34 insertions, 7 deletions
diff --git a/packages/web/src/components/Share.tsx b/packages/web/src/components/Share.tsx
index 9b953bd2d..e8879c50a 100644
--- a/packages/web/src/components/Share.tsx
+++ b/packages/web/src/components/Share.tsx
@@ -85,7 +85,7 @@ function scrollToAnchor(id: string) {
el.scrollIntoView({ behavior: "smooth" })
}
-function stripWorkingDirectory(filePath: string, workingDir?: string) {
+function stripWorkingDirectory(filePath?: string, workingDir?: string) {
if (filePath === undefined || workingDir === undefined) return filePath
const prefix = workingDir.endsWith("/") ? workingDir : workingDir + "/"
@@ -1307,9 +1307,9 @@ export default function Share(props: {
const path = createMemo(() =>
toolData()?.args.path !== data().rootDir
? stripWorkingDirectory(
- toolData()?.args.path,
- data().rootDir,
- )
+ toolData()?.args.path,
+ data().rootDir,
+ )
: toolData()?.args.path,
)
@@ -1470,7 +1470,7 @@ export default function Share(props: {
{(_part) => {
const filePath = createMemo(() =>
stripWorkingDirectory(
- toolData()?.args.filePath,
+ toolData()?.args?.filePath,
data().rootDir,
),
)
@@ -1509,7 +1509,7 @@ export default function Share(props: {
<div data-part-tool-result>
<ErrorPart>
{formatErrorString(
- toolData()?.result,
+ toolData()?.result
)}
</ErrorPart>
</div>
@@ -1528,7 +1528,7 @@ export default function Share(props: {
<div data-part-tool-code>
<CodeBlock
lang={getShikiLang(filePath())}
- code={args.content}
+ code={toolData()?.args?.content}
/>
</div>
</Show>
diff --git a/packages/web/src/types/lang-map.d.ts b/packages/web/src/types/lang-map.d.ts
index e69de29bb..b21d2a005 100644
--- a/packages/web/src/types/lang-map.d.ts
+++ b/packages/web/src/types/lang-map.d.ts
@@ -0,0 +1,27 @@
+declare module "lang-map" {
+ /** Returned by calling `map()` */
+ export interface MapReturn {
+ /** All extensions keyed by language name */
+ extensions: Record<string, string[]>;
+ /** All languages keyed by file-extension */
+ languages: Record<string, string[]>;
+ }
+
+ /**
+ * Calling `map()` gives you the raw lookup tables:
+ *
+ * ```js
+ * const { extensions, languages } = map();
+ * ```
+ */
+ function map(): MapReturn;
+
+ /** Static method: get extensions for a given language */
+ namespace map {
+ function extensions(language: string): string[];
+ /** Static method: get languages for a given extension */
+ function languages(extension: string): string[];
+ }
+
+ export = map;
+}