aot
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

AOT

usage

Wait

wait some condition before do something.

import { AOT_Placeholder, AOT } from 'aot';
 
class DB_Base {
    constructor(){
        this._db_init = this.initConnect()
    }
    protected _db_init:Promise<void>
    async initConnect(){
        // connect database in async
    }
}
 
class MyDB extends DB_Base {
    private _init_aot = new AOT("init my db");
    constructor(){
        super();
        // replace the placeholder, function now in JIT mode.
        this._init_aot.autoRegister(this);
 
        this._db_init.then(()=>{
            // complie the code Ahead-of-time
            this._init_aot.compile(true);
        });
    }
 
    @AOT_Placeholder.Wait("_db_init") // the insert code would run after this._db_init resolved.
    async insert(){
        // do something
    }
}

Then

replace some function if condition is false.

class FileSystem_Shim {
    private async _writeFile_idb(){
        // write file from indexeddb 
    }
}
 
class FileSystem extends FileSystem_Shim{
    private _can_fs = new AOT('RequestFileSystem');
    constructor(){
        super();
        this._can_fs.autoRegister(this);
 
        this._can_fs.compile('webkitRequestFileSystem' in self||'requestFileSystem' in self);
    }
    @AOT_Placeholder.Then('_writeFile_idb')// if condition is false, use the 'Then' function
    async writeFile(){
        // write file by using fileSystem API
    }
}

you can use Wait before Then. have fun.

Readme

Keywords

none

Package Sidebar

Install

npm i aot

Weekly Downloads

44

Version

0.0.3

License

MIT

Unpacked Size

21.7 kB

Total Files

15

Last publish

Collaborators

  • kezhaofeng