@gorgo/medusa-feed-yandex
Version:
A Medusa plugin that generates a product feed in YML (Yandex Market Language) format
103 lines • 7.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createOperatorMap = exports.createFindParams = exports.createSelectParams = exports.createLinkBody = exports.createBatchBody = exports.WithAdditionalData = void 0;
const zod_1 = require("zod");
/**
* Wraps the original schema to a function to accept and merge
* additional_data schema
*/
const WithAdditionalData = (originalSchema, modifyCallback) => {
return (additionalDataValidator) => {
let schema;
if (!additionalDataValidator) {
schema = originalSchema.extend({
additional_data: zod_1.z.record(zod_1.z.unknown()).nullish(),
});
}
else {
schema = originalSchema.extend({
additional_data: additionalDataValidator,
});
}
return modifyCallback ? modifyCallback(schema) : schema;
};
};
exports.WithAdditionalData = WithAdditionalData;
const createBatchBody = (createValidator, updateValidator, deleteValidator = zod_1.z.string()) => {
return zod_1.z.object({
create: zod_1.z.array(createValidator).optional(),
update: zod_1.z.array(updateValidator).optional(),
delete: zod_1.z.array(deleteValidator).optional(),
});
};
exports.createBatchBody = createBatchBody;
const createLinkBody = () => {
return zod_1.z.object({
add: zod_1.z.array(zod_1.z.string()).optional(),
remove: zod_1.z.array(zod_1.z.string()).optional(),
});
};
exports.createLinkBody = createLinkBody;
const createSelectParams = () => {
return zod_1.z.object({
fields: zod_1.z.string().optional(),
});
};
exports.createSelectParams = createSelectParams;
const createFindParams = ({ offset, limit, order, } = {}) => {
const selectParams = (0, exports.createSelectParams)();
return selectParams.merge(zod_1.z.object({
offset: zod_1.z.preprocess((val) => {
if (val && typeof val === "string") {
return parseInt(val);
}
return val;
}, zod_1.z
.number()
.optional()
.default(offset ?? 0)),
limit: zod_1.z.preprocess((val) => {
if (val && typeof val === "string") {
return parseInt(val);
}
return val;
}, zod_1.z
.number()
.optional()
.default(limit ?? 20)),
order: order
? zod_1.z.string().optional().default(order)
: zod_1.z.string().optional(),
}));
};
exports.createFindParams = createFindParams;
const createOperatorMap = (type, valueParser) => {
if (!type) {
type = zod_1.z.string();
}
let simpleType = type.optional();
if (valueParser) {
simpleType = zod_1.z.preprocess(valueParser, type).optional();
}
const arrayType = zod_1.z.array(type).optional();
const unionType = zod_1.z.union([simpleType, arrayType]).optional();
return zod_1.z.union([
unionType,
zod_1.z.object({
$eq: unionType,
$ne: unionType,
$in: arrayType,
$nin: arrayType,
$like: simpleType,
$ilike: simpleType,
$re: simpleType,
$contains: simpleType,
$gt: simpleType,
$gte: simpleType,
$lt: simpleType,
$lte: simpleType,
}),
]);
};
exports.createOperatorMap = createOperatorMap;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdXRpbHMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBd0U7QUFFeEU7OztHQUdHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxjQUFpQixFQUNqQixjQUEwRSxFQUMxRSxFQUFFO0lBQ0YsT0FBTyxDQUNMLHVCQUF1RSxFQUN2RSxFQUFFO1FBQ0YsSUFBSSxNQUEyQixDQUFBO1FBRS9CLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQzdCLE1BQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO2dCQUM3QixlQUFlLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7YUFDakQsQ0FBQyxDQUFBO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztnQkFDN0IsZUFBZSxFQUFFLHVCQUF1QjthQUN6QyxDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0lBQzlELENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQXJCWSxRQUFBLGtCQUFrQixzQkFxQjlCO0FBRU0sTUFBTSxlQUFlLEdBQUcsQ0FDN0IsZUFBMEIsRUFDMUIsZUFBMEIsRUFDMUIsa0JBQTZCLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFDdkMsRUFBRTtJQUNGLE9BQU8sT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNkLE1BQU0sRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUMzQyxNQUFNLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxR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