@tricoteuses/senat
Version:
Handle French Sénat's open data
24 lines (23 loc) • 773 B
JavaScript
import { sql } from "kysely";
import { STANDARD_DATE_FORMAT } from "../scripts/datautil";
export function concat(...exprs) {
return sql.join(exprs, sql `||`).$castTo();
}
export function expandToRows(expr, regexp) {
return sql `unnest(regexp_matches(${expr}, ${regexp}, 'g'))`;
}
export function nullIf(expr) {
return sql `nullif(trim(${expr}), '')`;
}
export function removeSubstring(expr, pattern) {
return replace(expr, pattern, sql.val(""));
}
export function replace(expr, pattern, replacement) {
return sql `replace(${expr}, ${pattern}, ${replacement})`;
}
export function rtrim(expr) {
return sql `rtrim(${expr})`;
}
export function toDateString(expr, format = sql.val(STANDARD_DATE_FORMAT)) {
return sql `to_char(${expr}, ${format})`;
}