dotfiles

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

extract-color.js.map (9370B)


      1 {
      2   "version": 3,
      3   "sources": ["../src/extract-color.tsx", "swift:/Users/runner/work/extensions/extensions/extensions/color-picker/swift/extract-color"],
      4   "sourcesContent": ["import { Action, ActionPanel, getSelectedFinderItems, Grid, Icon, showToast, Toast } from \"@raycast/api\";\nimport { useEffect, useState } from \"react\";\nimport { extractColor } from \"swift:../swift/extract-color\";\n\ntype FinalColor = {\n  hex: string;\n  red: number;\n  green: number;\n  blue: number;\n  area: number;\n  hue: number;\n  saturation: number;\n  lightness: number;\n  intensity: number;\n};\n\nexport default function Command() {\n  const [columns, setColumns] = useState(3);\n  const [isLoading, setIsLoading] = useState(true);\n  const [colors, setColors] = useState<FinalColor[]>([]);\n  const [info, setInfo] = useState<{\n    title: string;\n    description: string;\n  }>({\n    title: \"No image found\",\n    description: \"Select an image from finder to extract colors\",\n  });\n\n  async function loadColors() {\n    const toast = await showToast({\n      style: Toast.Style.Animated,\n      title: \"Extracting colors\",\n    });\n    let path: string | undefined;\n\n    try {\n      const items = await getSelectedFinderItems();\n      if (items.length === 0) {\n        setIsLoading(false);\n      }\n      path = items[0].path;\n    } catch {\n      // did not find any selected items\n    }\n\n    if (path) {\n      extractColor(path, 40, false) // Set dominantOnly to true\n        .then((colors: FinalColor[]) => {\n          setColors(colors);\n          toast.style = Toast.Style.Success;\n          toast.title = \"Colors extracted\";\n          toast.message = `${colors.length} colors extracted from the image`;\n          setIsLoading(false);\n        })\n        .catch(() => {\n          setIsLoading(false);\n          toast.style = Toast.Style.Failure;\n          toast.title = \"Error extracting colors\";\n          toast.message = \"Please select a valid image file\";\n        });\n    } else {\n      setIsLoading(false);\n      setInfo({\n        title: \"No image selected\",\n        description: \"Please select an image from finder\",\n      });\n      toast.style = Toast.Style.Failure;\n      toast.title = \"No image selected\";\n      toast.message = \"Please select an image from finder\";\n    }\n  }\n\n  useEffect(() => {\n    loadColors();\n  }, []);\n\n  return (\n    <Grid\n      columns={columns}\n      inset={Grid.Inset.Zero}\n      isLoading={isLoading}\n      searchBarAccessory={\n        <Grid.Dropdown\n          tooltip=\"Grid Item Size\"\n          storeValue\n          onChange={(newValue) => {\n            setColumns(parseInt(newValue));\n            setIsLoading(false);\n          }}\n        >\n          <Grid.Dropdown.Item title=\"Large\" value=\"4\" />\n          <Grid.Dropdown.Item title=\"Medium\" value=\"6\" />\n          <Grid.Dropdown.Item title=\"Small\" value=\"8\" />\n        </Grid.Dropdown>\n      }\n    >\n      <Grid.EmptyView icon={Icon.Eye} title={info.title} description={info.description} />\n\n      {!isLoading &&\n        colors.map((color, i) => (\n          <Grid.Item\n            key={color.hex + i}\n            content={{ color: color.hex }}\n            title={`${color.hex.toUpperCase()}`}\n            actions={\n              <ActionPanel>\n                <Action.CopyToClipboard content={color.hex} />\n              </ActionPanel>\n            }\n          />\n        ))}\n    </Grid>\n  );\n}\n", "\nimport { environment } from \"@raycast/api\";\nimport { join } from \"path\";\nimport { chmod } from \"fs/promises\";\nimport { spawn } from \"child_process\";\n\nasync function runSwiftFunction(command, ...args) {\n  const swiftPath = join(environment.assetsPath, \"compiled_raycast_swift/extract-color\");\n  await chmod(swiftPath, \"755\");\n\n  return new Promise((resolve, reject) => {\n    const commandArgs = [command];\n    for (const arg of args) {\n      try {\n        commandArgs.push(JSON.stringify(arg, (k, v) => v === undefined ? null : v));\n      } catch (err) {\n        reject(new SwiftError(\"Failed to serialize input to JSON: \" + err.message));\n        return;\n      }\n    }\n    const child = spawn(swiftPath, commandArgs);\n    const stdout = [];\n    const stderr = [];\n\n    child.stdout?.on(\"data\", (data) => {\n      stdout.push(data.toString());\n    });\n    child.stderr?.on(\"data\", (data) => {\n      stderr.push(data.toString());\n    });\n\n    child.on(\"exit\", (code) => {\n      if (code === 0) {\n        try {\n          const result = stdout.join(\"\").trim();\n          if (result.length != 0) {\n            resolve(JSON.parse(result));\n          } else {\n            resolve(null);\n          }\n        } catch (err) {\n          const error = new SwiftError(\"Failed to deserialize result from JSON: \" + err.message);\n          error.stdout = stdout.join(\"\").trim();\n          error.stderr = stderr.join(\"\").trim();\n          reject(error);\n        }\n      } else {\n        const error = new SwiftError(stderr.join(\"\").trim() || stdout.join(\"\").trim() || \"Could not get any data\");\n        error.stdout = stdout.join(\"\").trim();\n        error.stderr = stderr.join(\"\").trim();\n        reject(error);\n      }\n    });\n\n    child.on(\"error\", (error) => {\n      reject(error);\n    });\n  });\n}\n\nexport async function extractColor(filePath, count, dominantOnly) {\n  return await runSwiftFunction(\"extractColor\", filePath, count, dominantOnly)\n}\n\nexport class SwiftError extends Error {\n  constructor(message) {\n    super(message);\n    this.name = \"SwiftError\";\n  }\n}\n"],
      5   "mappings": "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",
      6   "names": ["extract_color_exports", "__export", "Command", "__toCommonJS", "import_api", "import_react", "import_api", "import_path", "import_promises", "import_child_process", "runSwiftFunction", "command", "args", "swiftPath", "resolve", "reject", "commandArgs", "arg", "k", "v", "err", "SwiftError", "child", "stdout", "stderr", "data", "code", "result", "error", "extractColor", "filePath", "count", "dominantOnly", "message", "import_jsx_runtime", "Command", "columns", "setColumns", "isLoading", "setIsLoading", "colors", "setColors", "info", "setInfo", "loadColors", "toast", "path", "items", "extractColor", "newValue", "color", "i"]
      7 }