Skip to content

Instantly share code, notes, and snippets.

@alpgul
Created March 14, 2025 18:41
Show Gist options
  • Select an option

  • Save alpgul/e531ea69deb1afcbc3d99387a7a947c9 to your computer and use it in GitHub Desktop.

Select an option

Save alpgul/e531ea69deb1afcbc3d99387a7a947c9 to your computer and use it in GitHub Desktop.

Revisions

  1. alpgul created this gist Mar 14, 2025.
    69 changes: 69 additions & 0 deletions json-modules-proposal.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,69 @@
    # JSON Modules Proposal'ı: JSON Dosyalarını Modül Olarak İçe Aktarma

    ---

    ## Makale Detaylı Anlatımı ve Örnek Kullanımı

    ### JSON Modules Nedir?
    JSON Modules, JavaScript modül sistemine JSON dosyalarını doğrudan içe aktarma (import) desteği ekler. Bu sayede, JSON dosyaları bir modül olarak kullanılabilir ve içerdikleri verilere doğrudan erişilebilir. Bu özellik, özellikle yapılandırma dosyaları, statik veri setleri veya API yanıtları gibi JSON verilerini kullanırken büyük kolaylık sağlar.

    ### Örnek Kullanım

    #### JSON Dosyasını İçe Aktarma
    Bir JSON dosyasını doğrudan modül olarak içe aktarabilirsiniz. Örneğin, `config.json` adında bir dosyamız olsun:

    ```json
    {
    "appName": "MyApp",
    "version": "1.0.0",
    "settings": {
    "theme": "dark",
    "language": "en"
    }
    }
    ```

    Bu JSON dosyasını bir JavaScript modülü olarak içe aktarabiliriz:

    ```javascript
    import x from 'data:application/json,{"foo":42}' with { type: "json" };
    import config from './config.json' with { type: 'json' };

    console.log(config.appName); // "MyApp"
    console.log(config.settings.theme); // "dark"
    ```

    #### Dinamik İçe Aktarma (Dynamic Import)
    JSON dosyalarını dinamik olarak da içe aktarabilirsiniz:

    ```javascript
    const loadConfig = async () => {
    const config = await import('./config.json', { with : { type: 'json' } });
    console.log(config.default.appName); // "MyApp"
    };

    loadConfig();
    ```

    #### Modül Olarak Kullanım
    JSON dosyaları, modül olarak içe aktarıldığında, bir nesne olarak kullanılabilir. Bu, özellikle büyük veri setleri veya yapılandırma dosyaları için kullanışlıdır.

    ```javascript
    import data from './data.json' with { type: 'json' };

    data.users.forEach(user => {
    console.log(user.name);
    });
    ```

    ### Avantajlar
    1. **Kolaylık**: JSON dosyalarını doğrudan içe aktarma imkanı.
    2. **Okunabilirlik**: JSON verilerine doğrudan erişim sağlayarak kodun daha okunabilir olması.
    3. **Performans**: JSON verilerinin modül olarak yüklenmesi, veri işleme süreçlerini hızlandırabilir.

    ---

    ## Referanslar ve Linkler
    - [TC39 Proposal: JSON Modules](https://github.com/tc39/proposal-json-modules)
    - [MDN Web Docs: import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import)
    - [JavaScript.info: Modules](https://javascript.info/modules)