--- /dev/null
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.assignDefaults = void 0;
+const codegen_1 = require("../codegen");
+const util_1 = require("../util");
+function assignDefaults(it, ty) {
+ const { properties, items } = it.schema;
+ if (ty === "object" && properties) {
+ for (const key in properties) {
+ assignDefault(it, key, properties[key].default);
+ }
+ }
+ else if (ty === "array" && Array.isArray(items)) {
+ items.forEach((sch, i) => assignDefault(it, i, sch.default));
+ }
+}
+exports.assignDefaults = assignDefaults;
+function assignDefault(it, prop, defaultValue) {
+ const { gen, compositeRule, data, opts } = it;
+ if (defaultValue === undefined)
+ return;
+ const childData = codegen_1._ `${data}${codegen_1.getProperty(prop)}`;
+ if (compositeRule) {
+ util_1.checkStrictMode(it, `default is ignored for: ${childData}`);
+ return;
+ }
+ let condition = codegen_1._ `${childData} === undefined`;
+ if (opts.useDefaults === "empty") {
+ condition = codegen_1._ `${condition} || ${childData} === null || ${childData} === ""`;
+ }
+ // `${childData} === undefined` +
+ // (opts.useDefaults === "empty" ? ` || ${childData} === null || ${childData} === ""` : "")
+ gen.if(condition, codegen_1._ `${childData} = ${codegen_1.stringify(defaultValue)}`);
+}
+//# sourceMappingURL=defaults.js.map
\ No newline at end of file