UNPKG

@modern-kit/utils

Version:
1 lines 2.19 kB
{"version":3,"file":"index.cjs","sources":["../../../src/clipboard/copyClipboardText/index.ts"],"sourcesContent":["import { isClient } from '../../device';\nimport { copyFallbackClipboardText } from '../copyFallbackClipboardText';\n\n/**\n * @description 클립보드에 텍스트를 복사하는 함수입니다.\n * 클라이언트 환경에서만 실행 가능하며, `navigator.clipboard` API를 지원하는 경우 해당 API를 사용합니다.\n * 만약 `navigator.clipboard`를 지원하지 않는 경우, 폴백 함수(copyFallbackClipboardText)를 사용하여 텍스트를 복사합니다.\n *\n * @param {string} value - 클립보드에 복사할 텍스트 값입니다.\n * @returns {Promise<string>} 복사된 텍스트를 반환합니다.\n * @throws {Error} 클라이언트 환경이 아닌 경우 에러를 발생시킵니다.\n * @throws {Error} 클립보드에 텍스트를 복사하는 도중 에러가 발생할 경우 예외를 던집니다.\n *\n * @example\n * const copiedText = await copyClipboardText('Hello, World!');\n * console.log(`Copied text: ${copiedText}`);\n */\nexport async function copyClipboardText(value: string): Promise<string> {\n if (!isClient()) {\n throw new Error('Cannot be executed unless it is a client environment.');\n }\n\n try {\n const hasNavigatorClipboard = 'clipboard' in window.navigator;\n\n if (!hasNavigatorClipboard) {\n return copyFallbackClipboardText(value);\n }\n\n await navigator.clipboard.writeText(value);\n\n return value;\n } catch (err: any) {\n console.error(`Failed to copy to clipboard. message: ${err.message}`);\n throw err;\n }\n}\n"],"names":["isClient","copyFallbackClipboardText"],"mappings":";;;;;;AAiBA,eAAsB,kBAAkB,KAAA,EAAgC;AACtE,EAAA,IAAI,CAACA,yBAAS,EAAG;AACf,IAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,EACzE;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,qBAAA,GAAwB,eAAe,MAAA,CAAO,SAAA;AAEpD,IAAA,IAAI,CAAC,qBAAA,EAAuB;AAC1B,MAAA,OAAOC,6DAA0B,KAAK,CAAA;AAAA,IACxC;AAEA,IAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,KAAK,CAAA;AAEzC,IAAA,OAAO,KAAA;AAAA,EACT,SAAS,GAAA,EAAU;AACjB,IAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,sCAAA,EAAyC,GAAA,CAAI,OAAO,CAAA,CAAE,CAAA;AACpE,IAAA,MAAM,GAAA;AAAA,EACR;AACF;;;;"}