Split out serve function in @syndicate-lang/fs

This commit is contained in:
Tony Garnock-Jones 2022-04-28 23:14:59 +03:00
parent 8052ee00b5
commit 148868da83
1 changed files with 18 additions and 15 deletions

View File

@ -8,23 +8,26 @@ import fs from 'fs';
export function main(_argv: string[]) {
service(args => {
const config = asConfig(args);
at config.dataspace {
during Observe({
"pattern": :pattern File({
"label": config.label,
"path": \Q.lit($relativePath: string),
"encoding": \Q.lit($encoding0),
"contents": \_,
}),
}) => {
const encoding = toEncoding(encoding0);
if (encoding !== void 0 && !path.isAbsolute(relativePath)) {
trackFile(config, relativePath, encoding);
}
serve(asConfig(args));
});
}
export function serve(config: Config<Ref>) {
at config.dataspace {
during Observe({
"pattern": :pattern File({
"label": config.label,
"path": \Q.lit($relativePath: string),
"encoding": \Q.lit($encoding0),
"contents": \_,
}),
}) => {
const encoding = toEncoding(encoding0);
if (encoding !== void 0 && !path.isAbsolute(relativePath)) {
trackFile(config, relativePath, encoding);
}
}
});
}
}
function trackFile(config: Config<Ref>, relativePath: string, encoding: Encoding) {