feat: publish Dever core with project scaffolding and versioned AI skills
This commit is contained in:
1 parent
70fa73cdc2
commit
ac458ffa7f
960 files changed
+221319
-1163
No files matched your search
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"database": {
|
||||
"default": {
|
||||
"type": "sqlite",
|
||||
"path": "data/db/app.db",
|
||||
"max_connections": 1,
|
||||
"max_page_size": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
# 自包含后端示例:随机回环端口,只请求一次,然后排空并关闭。
|
||||
|
||||
type Context {
|
||||
prefix: Text
|
||||
requests: Channel<Int>
|
||||
}
|
||||
|
||||
route(request: dever.http.Request, context: Context) (
|
||||
response: dever.http.Response
|
||||
) {
|
||||
send(context.requests, 1)
|
||||
response = dever.http.Response {
|
||||
status = 200
|
||||
headers = [dever.http.header("Content-Type", "text/plain; charset=utf-8")]
|
||||
body = dever.bytes.from_text(context.prefix + request.target)
|
||||
}
|
||||
}
|
||||
|
||||
serve(listener: dever.system.Listener, context: Context) () {
|
||||
dever.system.http_serve(route, listener, dever.http.default_limits(), context)
|
||||
}
|
||||
|
||||
expired() () {
|
||||
blocking(dever.io.println("服务排空超时,剩余任务已停止"))
|
||||
}
|
||||
|
||||
count(value: Int) (text: Text) {
|
||||
text = "requests = " + int.to_text(value)
|
||||
}
|
||||
|
||||
count(value: null) (text: Text) {
|
||||
text = "request channel ended"
|
||||
}
|
||||
|
||||
main() () {
|
||||
listener = dever.net.listen("127.0.0.1", 0)
|
||||
port = dever.net.port(listener)
|
||||
requests = channel(Int, 1)
|
||||
server = run(
|
||||
serve(
|
||||
listener,
|
||||
Context {
|
||||
prefix = "Hello "
|
||||
requests = requests
|
||||
}
|
||||
)
|
||||
)
|
||||
client = dever.http.client(
|
||||
"http://127.0.0.1:" + int.to_text(port),
|
||||
dever.tls.system(),
|
||||
dever.http.default_limits(),
|
||||
dever.http.default_pool_limits()
|
||||
)
|
||||
response = dever.http.request(
|
||||
client,
|
||||
dever.http.Request {
|
||||
method = "GET"
|
||||
target = "/Dever"
|
||||
headers = []
|
||||
body = dever.bytes.from_text("")
|
||||
}
|
||||
)
|
||||
blocking(dever.io.println(dever.bytes.to_text(response.body)))
|
||||
dever.net.close_listener(listener)
|
||||
timeout(server, 2000, expired)
|
||||
dever.http.close_client(client)
|
||||
close(requests)
|
||||
blocking(dever.io.println(count(receive(requests))))
|
||||
}
|
||||
Reference in new issue
Block a user