@shopify/app-bridge-core
Version:
**[Join our team and work on libraries like this one.](https://www.shopify.ca/careers)**
49 lines (48 loc) • 2.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Action = void 0;
exports.validateProps = validateProps;
exports.validateAction = validateAction;
var ResourcePicker_1 = require("../../actions/ResourcePicker");
Object.defineProperty(exports, "Action", { enumerable: true, get: function () { return ResourcePicker_1.Action; } });
var type_validate_1 = require("../type-validate");
var utils_1 = require("../utils");
var resourceSelectionSchema = (0, type_validate_1.matchesArray)((0, type_validate_1.matchesObject)({
id: (0, type_validate_1.matchesString)(),
}));
var resourcePickerOptions = (0, type_validate_1.matchesObject)({
initialQuery: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()),
filterQuery: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesString)()),
initialSelectionIds: (0, type_validate_1.makeOptional)(resourceSelectionSchema),
selectMultiple: (0, type_validate_1.makeOptional)((0, type_validate_1.oneOf)((0, type_validate_1.matchesBoolean)(), (0, type_validate_1.matchesPositiveInteger)())),
showHidden: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()),
showVariants: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()),
showDraft: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()),
showArchived: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()),
showDraftBadge: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()),
showArchivedBadge: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesBoolean)()),
actionVerb: (0, type_validate_1.makeOptional)((0, type_validate_1.matchesEnum)(ResourcePicker_1.ActionVerb)),
});
var resourcePickerActionSchema = (0, type_validate_1.matchesObject)({
resourceType: (0, type_validate_1.matchesEnum)(ResourcePicker_1.ResourceType),
options: (0, type_validate_1.makeOptional)(resourcePickerOptions),
});
var selectionSchema = (0, type_validate_1.matchesObject)({
selection: resourceSelectionSchema,
});
function validateProps(props) {
return (0, type_validate_1.validate)(props, resourcePickerOptions);
}
function validateAction(action) {
switch (action.type) {
case ResourcePicker_1.Action.UPDATE:
case ResourcePicker_1.Action.OPEN:
return (0, type_validate_1.validate)(action, (0, utils_1.createActionValidator)(ResourcePicker_1.Action, resourcePickerActionSchema, false, true));
case ResourcePicker_1.Action.SELECT:
return (0, type_validate_1.validate)(action, (0, utils_1.createActionValidator)(ResourcePicker_1.Action, selectionSchema, true, true));
case ResourcePicker_1.Action.CANCEL:
case ResourcePicker_1.Action.CLOSE:
default:
return (0, type_validate_1.validate)(action, (0, utils_1.createActionValidator)(ResourcePicker_1.Action));
}
}