[mod] caching

This commit is contained in:
fenris 2025-09-25 16:41:17 +02:00
parent 834953b635
commit c96a0aef4a
3 changed files with 44 additions and 34 deletions

View file

@ -3,6 +3,16 @@ namespace _zeitbild
/** /**
*/ */
export var cache : lib_plankton.cache.type_cache<any>; export var cache_regular : lib_plankton.cache.type_subject<any>;
/**
*/
export var cache_external_resources : lib_plankton.cache.type_subject<any>;
/**
*/
export var cache_templates : lib_plankton.cache.type_subject<string>;
} }

View file

@ -60,22 +60,17 @@ namespace _zeitbild.helpers
/** /**
*/ */
var _template_cache : Record<string, string> = {};
/**
* @todo caching
*/
export async function template_coin( export async function template_coin(
name : string, name : string,
data : Record<string, string> data : Record<string, string>
) : Promise<string> ) : Promise<string>
{ {
let content : string; const content : string = await lib_plankton.cache.get<string>(
if (! (name in _template_cache)) { _zeitbild.cache_templates,
content = ( name,
( null,
await lib_plankton.file.read( () => (
lib_plankton.file.read(
lib_plankton.string.coin( lib_plankton.string.coin(
"templates/{{name}}.html.tpl", "templates/{{name}}.html.tpl",
{ {
@ -83,14 +78,11 @@ namespace _zeitbild.helpers
} }
) )
) )
.then(
x => Promise.resolve<string>(x.toString())
)
) )
.toString()
); );
_template_cache[name] = content;
}
else {
content = _template_cache[name];
}
return Promise.resolve<string>( return Promise.resolve<string>(
lib_plankton.string.coin( lib_plankton.string.coin(
content, content,

View file

@ -258,7 +258,10 @@ async function main(
"name": "help", "name": "help",
}), }),
}); });
const args : Record<string, any> = arg_handler.read(lib_plankton.args.enum_environment.cli, args_raw.join(" ")); const args : Record<string, any> = arg_handler.read(
lib_plankton.args.enum_environment.cli,
args_raw.join(" ")
);
// init2 // init2
await _zeitbild.conf.init( await _zeitbild.conf.init(
@ -313,17 +316,21 @@ async function main(
break; break;
} }
} }
)
)
);
_zeitbild.cache = lib_plankton.cache.chest.implementation<any>(
lib_plankton.cache.chest.make<any>(
{
"chest": lib_plankton.storage.memory.implementation_chest<any>({}),
} }
) )
); );
await _zeitbild.cache.init(); {
_zeitbild.cache_regular = lib_plankton.cache.make<any>();
await lib_plankton.cache.init(_zeitbild.cache_regular);
}
{
_zeitbild.cache_external_resources = lib_plankton.cache.make<any>();
await lib_plankton.cache.init(_zeitbild.cache_external_resources);
}
{
_zeitbild.cache_templates = lib_plankton.cache.make<any>();
await lib_plankton.cache.init(_zeitbild.cache_templates);
}
// exec // exec
if (args["help"]) { if (args["help"]) {
@ -443,6 +450,7 @@ async function main(
"checklevel_restriction": lib_plankton.api.enum_checklevel.hard, "checklevel_restriction": lib_plankton.api.enum_checklevel.hard,
// "checklevel_input": lib_plankton.api.enum_checklevel.soft, // "checklevel_input": lib_plankton.api.enum_checklevel.soft,
// "checklevel_output": lib_plankton.api.enum_checklevel.soft, // "checklevel_output": lib_plankton.api.enum_checklevel.soft,
"set_content_length": false,
} }
); );
const output : string = lib_plankton.http.encode_response(http_response); const output : string = lib_plankton.http.encode_response(http_response);