# Typescript ve macOS ile clipboard yonetimi, copy paste

```typescript
import { execSync } from 'child_process';

/**
 * Copies text to the clipboard.
 * @param text The text to be copied to the clipboard.
 */
export function copy(text: string): void {
    execSync(`echo "${text.replace(/"/g, '\\"')}" | pbcopy`);
}

/**
 * Returns the text from the clipboard.
 * @returns The text from the clipboard.
 */
export function paste(): string {
    return execSync('pbpaste').toString();
}
```

* Bu kod, **macOS** işletim sistemi için bir clipboard yönetim aracıdır
* İki fonksiyonu bulunur: `copy` ve `paste`
* `copy` fonksiyonu bir metni parametre olarak alır ve bu metni clipboard'a kopyalar
* `paste` fonksiyonu ise clipboard'daki metni geri döndürür
* Bu kod, `child_process` modülünün `execSync` fonksiyonunu kullanarak bu işlemleri gerçekleştirir

<details>

<summary>`"${text.replace(/"/g, '\\"')}"` aciklamasi.</summary>

\- Bu ifade içerisinde \`text.replace(/"/g, '\\\\\\\\"')\` kısmı, \`text\` değişkenindeki tüm çift tırnak (\`"\`) karakterlerini ters tırnak (\`\\\\"\`) ile değiştirir. - Bu, çift tırnak karakterinin metin içinde özel bir karakter olarak kabul edilmesini önler ve bu karakterlerin düzgün bir şekilde kopyalanmasını sağlar. - \`'\\\\'\` karakteri, sonraki karakterin özel bir karakter olarak algılanmasını önler (bu durumda çift tırnak). - Sonuç olarak, \`text\` değişkenindeki tüm metin, çift tırnak işaretleri arasına yerleştirilir ve clipboard'a kopyalanır.

</details>
