@dpkit/table
Version:
Data Package implementation in TypeScript.
15 lines • 2.47 kB
JavaScript
import { col } from "nodejs-polars";
export function checkCellPattern(field, errorTable) {
if (field.type === "string") {
const pattern = field.constraints?.pattern;
if (pattern) {
const target = col(`target:${field.name}`);
const errorName = `error:cell/pattern:${field.name}`;
errorTable = errorTable
.withColumn(target.str.contains(pattern).not().alias(errorName))
.withColumn(col("error").or(col(errorName)).alias("error"));
}
}
return errorTable;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ZpZWxkL2NoZWNrcy9wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbkMsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQVksRUFBRSxVQUFpQjtJQUM5RCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUE7UUFFMUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxVQUFVLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzFDLE1BQU0sU0FBUyxHQUFHLHNCQUFzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7WUFFcEQsVUFBVSxHQUFHLFVBQVU7aUJBQ3BCLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9ELFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUE7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tIFwiQGRwa2l0L2NvcmVcIlxuaW1wb3J0IHsgY29sIH0gZnJvbSBcIm5vZGVqcy1wb2xhcnNcIlxuaW1wb3J0IHR5cGUgeyBUYWJsZSB9IGZyb20gXCIuLi8uLi90YWJsZS9pbmRleC50c1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0NlbGxQYXR0ZXJuKGZpZWxkOiBGaWVsZCwgZXJyb3JUYWJsZTogVGFibGUpIHtcbiAgaWYgKGZpZWxkLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gZmllbGQuY29uc3RyYWludHM/LnBhdHRlcm5cblxuICAgIGlmIChwYXR0ZXJuKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBjb2woYHRhcmdldDoke2ZpZWxkLm5hbWV9YClcbiAgICAgIGNvbnN0IGVycm9yTmFtZSA9IGBlcnJvcjpjZWxsL3BhdHRlcm46JHtmaWVsZC5uYW1lfWBcblxuICAgICAgZXJyb3JUYWJsZSA9IGVycm9yVGFibGVcbiAgICAgICAgLndpdGhDb2x1bW4odGFyZ2V0LnN0ci5jb250YWlucyhwYXR0ZXJuKS5ub3QoKS5hbGlhcyhlcnJvck5hbWUpKVxuICAgICAgICAud2l0aENvbHVtbihjb2woXCJlcnJvclwiKS5vcihjb2woZXJyb3JOYW1lKSkuYWxpYXMoXCJlcnJvclwiKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXJyb3JUYWJsZVxufVxuIl19