mobx-autoform
Version:
Ridiculously simple form state management with mobx
72 lines (71 loc) • 2.89 kB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var util_exports = {};
__export(util_exports, {
ValidationError: () => ValidationError,
gatherFormValues: () => gatherFormValues,
safeJoinPaths: () => safeJoinPaths,
tokenizePath: () => tokenizePath
});
module.exports = __toCommonJS(util_exports);
var import_fp = __toESM(require("lodash/fp.js"), 1);
var import_futil = require("./futil.js");
let tokenizePath = (path) => {
if (import_fp.default.isNumber(path))
path = [import_fp.default.toString(path)];
else if (import_fp.default.isEmpty(path))
path = [];
else if (import_fp.default.isString(path))
path = path.split(/\.(?![^\[]+\])/g);
return import_fp.default.map(import_fp.default.toString, path);
};
let safeJoinPaths = import_fp.default.flow(
import_fp.default.map(import_fp.default.toString),
import_fp.default.map((x) => x.includes(".") && !x.includes("[") ? `["${x}"]` : x),
import_fp.default.join(".")
);
let gatherFormValues = (form) => (0, import_futil.reduceTreePost)((x) => x[form.keys.fields])(
(tree, x, ...xs) => (
// Only walk leaf nodes
!import_fp.default.isEmpty(x[form.keys.fields]) ? tree : import_fp.default.set((0, import_futil.treePath)(x, ...xs), x.value, tree)
)
)({})(form);
class ValidationError extends Error {
name = "ValidationError";
constructor(message, errors) {
super(message);
this.cause = errors;
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ValidationError,
gatherFormValues,
safeJoinPaths,
tokenizePath
});