SQL-IDE File Access API

Ist die Embedded-Version der SQL-IDE ohne <iframe>-Tag in einer Webseite eingebunden, so können andere Skripte auf der Webseite über das global sichtbare OnlineIDEAccess-Objekt window.sql_ide_access auf die Quelltexte aller IDEs zugreifen, für die das Attribut enableFileAccess auf true gesetzt ist, also

    <div class="sql-online" style="width: calc(100% - 10px); height: 600px; margin-left: 5px" data-sql-online="{
        'id': 'abcd',
        'databaseURL': 'assets/databases/world1.sqLite',
        'enableFileAccess': true
    }">
        <script type="text/plain" title="Test1.sql" data-type="sql">
select * from test;
                    </script>
    </div>

Das folgende Skript gibt die Quelltexte aller Programme in der IDE mit der id "abcd" aus:

let ide = window.sql_ide_access.getIDE('abcd');
let files = ide.getFiles();
for(let i = 0; i < files.length; i++){
   let file = files[i];
   console.log('Name: ' + file.getName());
   console.log('Quelltext:' + file.getText());
}

Spezifikation der API

Hier die in Typescript formulierte Spezifikation der API:

interface OnlineIDEAccess {
    getIDE(id: string): SingleIDEAccess | undefined;
}
 
interface SingleIDEAccess {
    getFiles(): IDEFileAccess[];
}
 
interface IDEFileAccess {
    getName(): string;
    getText(): string;
}