[mod] caching
This commit is contained in:
parent
834953b635
commit
c96a0aef4a
|
|
@ -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>;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue