Index
Modules:
prologue/core/application
,
prologue/core/beast/request
,
prologue/core/beast/server
,
prologue/core/configure
,
prologue/core/constants
,
prologue/core/context
,
prologue/core/encode
,
prologue/core/form
,
prologue/core/httpexception
,
prologue/core/middlewaresbase
,
prologue/core/naive/request
,
prologue/core/naive/server
,
prologue/core/nativesettings
,
prologue/core/pages
,
prologue/core/response
,
prologue/core/route
,
prologue/core/types
,
prologue/core/urandom
,
prologue/core/utils
.
API symbols
`$`:
configure: `$`(env: Env): string
response: `$`(response: Response): string
types: `$`(secretKey: SecretKey): string
types: `$`(session: Session): string
`[]=`:
route: `[]=`(router: Router; path: Path; pathHandler: PathHandler)
types: `[]=`(formPart: FormPart; key: string; body: string)
types: `[]=`(session: Session; key, value: string)
`[]`:
configure: `[]`(env: Env; key: string): string
nativesettings: `[]`(settings: Settings; key: string): JsonNode
route: `[]`(router: Router; path: Path): PathHandler
types: `[]`(formPart: FormPart; key: string): tuple[params: StringTableRef, body: string]
types: `[]`(session: Session; key: string): string
abort:
response: abort(code = Http401; body = ""; headers = newHttpHeaders(); version = HttpVer11): Response
AbortError:
httpexception: AbortError
abortExit:
context: abortExit(ctx: Context; code = Http401; body = ""; headers = newHttpHeaders(); version = HttpVer11)
add:
route: add(reRouter: ReRouter; pairs: (RePath, PathHandler))
addHeader:
context: addHeader(request: var Request; key, value: string)
response: addHeader(response: var Response; key, value: string)
addRoute:
application: addRoute(app: Prologue; route: Regex; handler: HandlerAsync; httpMethod = HttpGet; middlewares: seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
application: addRoute(app: Prologue; route: Regex; handler: HandlerAsync; httpMethod: seq[HttpMethod]; middlewares: seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
application: addRoute(app: Prologue; patterns: seq[UrlPattern]; baseRoute = ""; settings: LocalSettings = nil)
application: addRoute(app: Prologue; route: string; handler: HandlerAsync; httpMethod: seq[HttpMethod]; name = ""; middlewares: seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
application: addRoute(app: Prologue; route: string; handler: HandlerAsync; httpMethod = HttpGet; name = ""; middlewares: seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
all:
application: all(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
appAddress:
application: appAddress(app: Prologue): string
appDebug:
application: appDebug(app: Prologue): bool
appName:
application: appName(app: Prologue): string
appPort:
application: appPort(app: Prologue): Port
AsyncEvent:
context: AsyncEvent
attachment:
context: attachment(ctx: Context; downloadName = ""; charset = "utf-8")
BadSecretKeyError:
types: BadSecretKeyError
base64Decode:
encode: base64Decode(s: string): string
base64Encode:
encode: base64Encode[T: SomeInteger | char](s: openArray[T]): string
encode: base64Encode(s: string): string
BaseType:
types: BaseType
beforeApi:
utils: beforeApi(version, body: untyped)
body:
request: body(request: Request): string
request: body(request: Request): string
charset:
request: charset(request: Request): string
request: charset(request: Request): string
clear:
types: clear(session: Session)
close:
request: close(request: Request)
request: close(request: Request)
connect:
application: connect(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
contains:
configure: contains(env: Env; key: string): bool
contentType:
request: contentType(request: Request): string
request: contentType(request: Request): string
Context:
context: Context
CtxSettings:
nativesettings: CtxSettings
default404Handler:
context: default404Handler(ctx: Context): owned(Future[void])
default500Handler:
context: default500Handler(ctx: Context): owned(Future[void])
DefaultEntropy:
urandom: DefaultEntropy
defaultHandler:
context: defaultHandler(ctx: Context): owned(Future[void])
del:
types: del(session: Session; key: string)
delete:
application: delete(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
deleteCookie:
context: deleteCookie(ctx: Context; key: string; path = ""; domain = "")
response: deleteCookie(response: var Response; key: string; value = ""; path = ""; domain = "")
delPrologueEnv:
configure: delPrologueEnv(key: string; prefix: string)
doNothingClosureMiddleware:
middlewaresbase: doNothingClosureMiddleware(): HandlerAsync
dumps:
types: dumps(session: Session): string
DuplicatedReversedRouteError:
route: DuplicatedReversedRouteError
DuplicatedRouteError:
route: DuplicatedRouteError
EmptySecretKeyError:
types: EmptySecretKeyError
Env:
configure: Env
EnvError:
configure: EnvError
EnvWrongFormatError:
configure: EnvWrongFormatError
error404:
response: error404(code = Http404; body = "<h1>404 Not Found!</h1>"; headers = newHttpHeaders(); version = HttpVer11): Response
ErrorHandler:
context: ErrorHandler
ErrorHandlerTable:
context: ErrorHandlerTable
errorPage:
pages: errorPage(errorMsg: string; version: string): string
Event:
context: Event
existsPrologueEnv:
configure: existsPrologueEnv(key: string; prefix: string): bool
findHandler:
route: findHandler(ctx: Context): PathHandler
first:
context: first(ctx: Context): bool
first=:
context: first=(ctx: Context; first: bool)
FormPart:
types: FormPart
get:
application: get(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
configure: get(env: Env; key: string): string
getAllPrologueEnv:
configure: getAllPrologueEnv(prefix: string): OrderedTableRef[string, string]
getCookie:
request: getCookie(request: Request; key: string; default: string): string
context: getCookie(ctx: Context; key: string; default: string = ""): string
request: getCookie(request: Request; key: string; default: string = ""): string
getOrDefault:
configure: getOrDefault[T: BaseType](env: Env; key: sink string; default: T): T
nativesettings: getOrDefault(settings: Settings; key: string): JsonNode
types: getOrDefault(session: Session; key: string; default = ""): string
getPathParams:
context: getPathParams[T: BaseType](ctx: Context; key: sink string; default: T): T
context: getPathParams(ctx: Context; key: string): string
getPostParams:
context: getPostParams(ctx: Context; key: string; default = ""): string
getPrologueEnv:
configure: getPrologueEnv(key: string; prefix: string; default = ""): string
getQueryParams:
context: getQueryParams(ctx: Context; key: string; default = ""): string
getSettings:
context: getSettings(ctx: Context; key: string): JsonNode
getUploadFile:
context: getUploadFile(ctx: Context; name: string): UploadFile
GlobalScope:
context: GlobalScope
gScope:
context: gScope(ctx: Context): lent GlobalScope
handle:
context: handle(ctx: Context): Future[void]
HandlerAsync:
context: HandlerAsync
hash:
route: hash(x: Path): Hash
hasHeader:
context: hasHeader(request: var Request; key: string): bool
response: hasHeader(response: Response; key: string): bool
hasKey:
configure: hasKey(env: Env; key: string): bool
nativesettings: hasKey(settings: Settings; key: string): bool
route: hasKey(router: Router; path: Path): bool
head:
application: head(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
headers:
request: headers(request: Request): HttpHeaders
request: headers(request: Request): HttpHeaders
hostName:
request: hostName(request: Request): string
request: hostName(request: Request): string
htmlResponse:
response: htmlResponse(text: string; code = Http200; headers = newHttpHeaders(); version = HttpVer11): Response
HttpError:
httpexception: HttpError
incSize:
context: incSize(ctx: Context; num = 1)
initEnv:
configure: initEnv(): Env
initEvent:
context: initEvent(handler: AsyncEvent): Event
context: initEvent(handler: SyncEvent): Event
initFormPart:
types: initFormPart(): FormPart
initPath:
route: initPath(route: string; httpMethod = HttpGet): Path
initRePath:
route: initRePath(route: Regex; httpMethod = HttpGet): RePath
initRequest:
request: initRequest(nativeRequest: NativeRequest; cookies = initCookieJar(); pathParams = newStringTable(modeCaseSensitive); queryParams = newStringTable(modeCaseSensitive); postParams = newStringTable(modeCaseSensitive)): Request
request: initRequest(nativeRequest: NativeRequest; cookies = initCookieJar(); pathParams = newStringTable(modeCaseSensitive); queryParams = newStringTable(modeCaseSensitive); postParams = newStringTable(modeCaseSensitive)): Request
initResponse:
response: initResponse(httpVersion: HttpVersion; code: HttpCode; headers = [ ("Content-Type", "text/html; charset=UTF-8")].newHttpHeaders; body = ""): Response
initSession:
types: initSession(data: StringTableRef; newCreated = false; modified = false; accessed = false): Session
initUploadFile:
context: initUploadFile(filename, body: string): UploadFile
internalServerErrorPage:
pages: internalServerErrorPage(): string
isStaticFile:
utils: isStaticFile(path: string; dirs: openArray[string]): tuple[hasValue: bool, filename, dir: string]
items:
route: items(reRouter: ReRouter): (RePath, PathHandler)
jsonResponse:
response: jsonResponse(text: JsonNode; code = Http200; headers = newHttpHeaders(); version = HttpVer11): Response
keys:
configure: keys(env: Env): string
len:
types: len(secretKey: SecretKey): int
types: len(session: Session): int
loadPrologueEnv:
configure: loadPrologueEnv(filename: string): Env
loads:
types: loads(session: Session; s: string)
LocalSettings:
nativesettings: LocalSettings
loginPage:
pages: loginPage(): string
multiMatch:
context: multiMatch(s: string; replacements: StringTableRef): string
context: multiMatch(s: string; replacements: varargs[(string, string)]): string
multiPartPage:
pages: multiPartPage(): string
NativeRequest:
request: NativeRequest
request: NativeRequest
newApp:
application: newApp(settings: Settings; middlewares: sink seq[HandlerAsync] = @[]; startup: sink seq[Event] = @[]; shutdown: sink seq[Event] = @[]; errorHandlerTable = DefaultErrorHandler; appData = newStringTable(mode = modeCaseSensitive)): Prologue
newContext:
context: newContext(request: Request; response: Response; gScope: GlobalScope): Context
newCtxSettings:
nativesettings: newCtxSettings(): CtxSettings
newErrorHandlerTable:
context: newErrorHandlerTable(initialSize = defaultInitialSize): ErrorHandlerTable
context: newErrorHandlerTable(pairs: openArray[(HttpCode, ErrorHandler)]): ErrorHandlerTable
newLocalSettings:
nativesettings: newLocalSettings(data: JsonNode): LocalSettings
nativesettings: newLocalSettings(configPath: string): LocalSettings
newPathHandler:
route: newPathHandler(handler: HandlerAsync; middlewares: sink seq[HandlerAsync] = @[]; settings: Settings = nil): PathHandler
newPrologue:
server: newPrologue(settings: Settings; ctxSettings: CtxSettings; router: Router; reversedRouter: ReversedRouter; reRouter: ReRouter; middlewares: seq[HandlerAsync]; startup: seq[Event]; shutdown: seq[Event]; errorHandlerTable: ErrorHandlerTable; appData: StringTableRef): Prologue
server: newPrologue(settings: Settings; ctxSettings: CtxSettings; router: Router; reversedRouter: ReversedRouter; reRouter: ReRouter; middlewares: seq[HandlerAsync]; startup: seq[Event]; shutdown: seq[Event]; errorHandlerTable: ErrorHandlerTable; appData: StringTableRef): Prologue
newPrologueServer:
server: newPrologueServer(reuseAddr = true; reusePort = false; maxBody = 8388608): Server
newReRouter:
route: newReRouter(): ReRouter
newReversedRouter:
context: newReversedRouter(): ReversedRouter
newRouter:
route: newRouter(): Router
newSettings:
application: newSettings(settings: Settings; localSettings: LocalSettings): Settings
nativesettings: newSettings(data: JsonNode; address = ""; port = Port(8080); debug = true; reusePort = true; staticDirs: openArray[string] = ["static"]; appName = ""): Settings
nativesettings: newSettings(address = ""; port = Port(8080); debug = true; reusePort = true; staticDirs: openArray[string] = ["static"]; secretKey = randomString(8); appName = ""): Settings
nativesettings: newSettings(configPath: string; address = ""; port = Port(8080); debug = true; reusePort = true; staticDirs: openArray[string] = ["static"]; appName = ""): Settings
options:
application: options(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
pairs:
configure: pairs(env: Env): (string, string)
route: pairs(router: Router): (Path, PathHandler)
parseFormParams:
form: parseFormParams(request: var Request; contentType: string)
parseFormPart:
form: parseFormPart(body, contentType: string): FormPart
parseStringTable:
types: parseStringTable(s: string): StringTableRef
types: parseStringTable(tabs: StringTableRef; s: string)
parseValue:
types: parseValue[T: BaseType](value: string; default: T): T
patch:
application: patch(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
path:
request: path(request: Request): string
Path:
context: Path
path:
request: path(request: Request): string
PathHandler:
context: PathHandler
pattern:
route: pattern(route: string; handler: HandlerAsync; httpMethod: sink seq[HttpMethod]; name = ""; middlewares: sink seq[HandlerAsync] = @[]): UrlPattern
route: pattern(route: string; handler: HandlerAsync; httpMethod = HttpGet; name = ""; middlewares: sink seq[HandlerAsync] = @[]): UrlPattern
plainTextResponse:
response: plainTextResponse(text: string; code = Http200; headers = newHttpHeaders(); version = HttpVer11): Response
port:
request: port(request: Request): string
request: port(request: Request): string
post:
application: post(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
printRoute:
application: printRoute(app: Prologue)
Prologue:
server: Prologue
server: Prologue
PrologueError:
route: PrologueError
ProloguePrefix:
constants: ProloguePrefix
PrologueVersion:
constants: PrologueVersion
put:
application: put(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
putPrologueEnv:
configure: putPrologueEnv(key, val: string; prefix: string)
query:
request: query(request: Request): string
request: query(request: Request): string
randomBytesSeq:
urandom: randomBytesSeq(size = DefaultEntropy): seq[byte]
randomSecretKey:
urandom: randomSecretKey(size = DefaultEntropy): SecretKey
randomString:
urandom: randomString(size = DefaultEntropy): string
redirect:
response: redirect(url: string; code = Http301; body = ""; delay = 0; headers = newHttpHeaders(); version = HttpVer11): Response
registerErrorHandler:
application: registerErrorHandler(app: Prologue; code: HttpCode; handler: ErrorHandler)
application: registerErrorHandler(app: Prologue; code: openArray[HttpCode]; handler: ErrorHandler)
application: registerErrorHandler(app: Prologue; code: set[HttpCode]; handler: ErrorHandler)
RePath:
context: RePath
reqMethod:
request: reqMethod(request: Request): HttpMethod
request: reqMethod(request: Request): HttpMethod
Request:
request: Request
request: Request
ReRouter:
context: ReRouter
resp:
response: resp(response: Response)
response: resp(body: string; code = Http200)
respond:
request: respond(request: Request; code: HttpCode; body: string; headers: HttpHeaders = newHttpHeaders()): Future[void]
request: respond(request: Request; response: Response): Future[void]
context: respond(ctx: Context; code: HttpCode; body: string; headers: HttpHeaders = newHttpHeaders()): Future[void]
request: respond(request: Request; code: HttpCode; body: string; headers: HttpHeaders = newHttpHeaders()): Future[void]
request: respond(request: Request; response: Response): Future[void]
Response:
response: Response
ReversedRouter:
context: ReversedRouter
RouteError:
route: RouteError
Router:
context: Router
RouteResetError:
route: RouteResetError
run:
application: run(app: Prologue)
save:
context: save(uploadFile: UploadFile; dir: string; filename = "")
scheme:
request: scheme(request: Request): string
request: scheme(request: Request): string
SecretKey:
types: SecretKey
SecretUrl:
types: SecretUrl
secure:
request: secure(request: Request): bool
request: secure(request: Request): bool
send:
request: send(request: Request; content: string): Future[void]
context: send(ctx: Context; content: string): Future[void]
request: send(request: Request; content: string): Future[void]
serve:
server: serve(app: Prologue; port: Port; callback: proc (request: NativeRequest): Future[void] {.closure, gcsafe.}; address = ""; numThreads = 0)
server: serve(app: Prologue; port: Port; callback: proc (request: NativeRequest): Future[void] {.closure, gcsafe.}; address = "")
Server:
server: Server
Session:
types: Session
setCookie:
context: setCookie(ctx: Context; key, value: string; expires: DateTime | Time; maxAge: Option[int] = none(int); domain = ""; path = ""; secure = false; httpOnly = false; sameSite = Lax)
context: setCookie(ctx: Context; key, value: string; expires = ""; maxAge: Option[int] = none(int); domain = ""; path = ""; secure = false; httpOnly = false; sameSite = Lax)
response: setCookie(response: var Response; key, value: string; expires: DateTime | Time; maxAge: Option[int] = none(int); domain = ""; path = ""; secure = false; httpOnly = false; sameSite = Lax)
response: setCookie(response: var Response; key, value: string; expires = ""; maxAge: Option[int] = none(int); domain = ""; path = ""; secure = false; httpOnly = false; sameSite = Lax)
setHeader:
context: setHeader(request: var Request; key: string; value: sink seq[string])
context: setHeader(request: var Request; key, value: string)
response: setHeader(response: var Response; key: string; value: sink seq[string])
response: setHeader(response: var Response; key, value: string)
setPrologueEnv:
configure: setPrologueEnv(env: Env; key, value: string)
setResponse:
context: setResponse(ctx: Context; code: HttpCode; httpHeaders = [ ("Content-Type", "text/html; charset=UTF-8")].newHttpHeaders; body = ""; version = HttpVer11)
context: setResponse(ctx: Context; response: Response)
setScheme:
request: setScheme(request: var Request; value: string)
request: setScheme(request: var Request; value: string)
Settings:
nativesettings: Settings
since:
utils: since(version, body: untyped)
sinceApi:
utils: sinceApi(version, body: untyped)
size:
context: size(ctx: Context): int
staticFileResponse:
context: staticFileResponse(ctx: Context; filename, dir: string; mimetype = ""; downloadName = ""; charset = "utf-8"; headers = newHttpHeaders()): owned( Future[void])
stripPath:
request: stripPath(request: var Request)
request: stripPath(request: var Request)
stripRoute:
route: stripRoute(route: string): string
switch:
middlewaresbase: switch(ctx: Context): owned(Future[void])
SyncEvent:
context: SyncEvent
trace:
application: trace(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil)
update:
types: update(session: Session)
UploadFile:
context: UploadFile
url:
request: url(request: Request): Uri
request: url(request: Request): Uri
urlFor:
context: urlFor(ctx: Context; handler: string; parameters: openArray[(string, string)] = @[]; queryParams: openArray[(string, string)] = @[]; usePlus = true; omitEq = true): string
UrlPattern:
route: UrlPattern
urlsafeBase64Decode:
encode: urlsafeBase64Decode(s: string): string
urlsafeBase64Encode:
encode: urlsafeBase64Encode[T: SomeInteger | char](s: openArray[T]): string
encode: urlsafeBase64Encode(s: string): string
values:
configure: values(env: Env): string
writePrologueEnv:
configure: writePrologueEnv(filename: string; env: Env)