Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gaubee/aot
change you code Ahead-of-time
https://github.com/gaubee/aot
Last synced: 10 days ago
JSON representation
change you code Ahead-of-time
- Host: GitHub
- URL: https://github.com/gaubee/aot
- Owner: Gaubee
- Created: 2018-10-05T00:19:59.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-10-05T01:24:03.000Z (about 6 years ago)
- Last Synced: 2024-11-05T16:05:06.180Z (12 days ago)
- Language: TypeScript
- Size: 72.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AOT
## usage
### Wait
wait some condition before do something.```ts
import { AOT_Placeholder, AOT } from 'aot';class DB_Base {
constructor(){
this._db_init = this.initConnect()
}
protected _db_init:Promise
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.```ts
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.