@brizy/media-gallery
Version:
176 lines (175 loc) • 7.35 kB
JavaScript
function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _object_spread(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === "function") {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function(key) {
_define_property(target, key, source[key]);
});
}
return target;
}
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) {
symbols = symbols.filter(function(sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
}
keys.push.apply(keys, symbols);
}
return keys;
}
function _object_spread_props(target, source) {
source = source != null ? source : {};
if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function(key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
return target;
}
import { InsertFilesTypes } from "../types/Context";
import { isT, mPipe, optional, parse, pass } from "fp-utilities";
import { always, pipe, prop } from "ramda";
import * as Str from "./string";
import * as Colors from "./colors";
import { is } from "./function";
import { onNothing } from "./maybe/onNothing";
export var contextFromRecord = function(config) {
try {
var baseProperties = {
__type: always("context"),
development: pipe(prop("development"), Boolean),
locale: pipe(function(v) {
var _v_locale;
return (_v_locale = v.locale) !== null && _v_locale !== void 0 ? _v_locale : "default";
}, function(v) {
return v;
}),
origin: pipe(prop("origin"), Str.read, onNothing("origin")),
acceptableTypes: pipe(prop("acceptableTypes"), onNothing("acceptableTypes"), function(v) {
return v.map(Str.read);
}, function(v) {
return v.filter(isT);
}),
height: optional(mPipe(function(v) {
return v.height;
}, Str.read)),
colors: pipe(function(v) {
return v.colors;
}, Colors.read),
mediaLibrary: pipe(prop("mediaLibrary"), parse({
getItems: pipe(prop("getItems"), pass(is), function(v) {
return v;
}, onNothing("mediaLibrary.getItems")),
uploadItem: pipe(prop("uploadItem"), pass(is), function(v) {
return v;
}, onNothing("mediaLibrary.uploadItem")),
removeItems: pipe(prop("removeItems"), pass(is), function(v) {
return v;
}, onNothing("mediaLibrary.removeItems")),
updateItem: pipe(prop("updateItem"), pass(is), function(v) {
return v;
}, onNothing("mediaLibrary.updateItem"))
}), onNothing("mediaLibrary")),
stockPhotos: pipe(prop("stockPhotos"), parse({
getItems: pipe(prop("getItems"), pass(is), function(v) {
return v;
}, onNothing("stockPhotos.getItems")),
downloadItem: pipe(prop("downloadItem"), pass(is), function(v) {
return v;
}, onNothing("stockPhotos.downloadItem"))
}), onNothing("stockPhotos")),
aiGenerated: pipe(prop("aiGenerated"), parse({
generateFromText: pipe(prop("generateFromText"), pass(is), function(v) {
return v;
}, onNothing("aiGenerated.generateFromText")),
generateFromTextAndImage: pipe(prop("generateFromTextAndImage"), pass(is), function(v) {
return v;
}, onNothing("aiGenerated.generateFromTextAndImage")),
isApiKeyProvided: pipe(prop("isApiKeyProvided"), pass(is), function(v) {
return v;
}, onNothing("aiGenerated.isApiKeyProvided")),
goToApiKeyTab: pipe(prop("goToApiKeyTab"), pass(is), function(v) {
return v;
}, onNothing("aiGenerated.goToApiKeyTab")),
aspectRatioOptions: optional(mPipe(function(v) {
return v.aspectRatioOptions;
}, function(v) {
return v;
})),
styleOptions: optional(mPipe(function(v) {
return v.styleOptions;
}, function(v) {
return v;
})),
resolutionOptions: optional(mPipe(function(v) {
return v.resolutionOptions;
}, function(v) {
return v;
})),
thinkingModeOptions: optional(mPipe(function(v) {
return v.thinkingModeOptions;
}, function(v) {
return v;
})),
countOfGenerationsOptions: optional(mPipe(function(v) {
return v.countOfGenerationsOptions;
}, function(v) {
return v;
}))
}), onNothing("aiGenerated")),
onClose: pipe(prop("onClose"), pass(is), function(v) {
return v;
}, onNothing("onClose"))
};
switch(config.insertFilesType){
case "multiple":
return parse(_object_spread_props(_object_spread({}, baseProperties), {
onInsertFiles: pipe(prop("onInsertFiles"), pass(is), function(v) {
return v;
}, onNothing("onInsertFiles")),
insertFilesType: always(InsertFilesTypes.MULTIPLE)
}))(config);
case "single":
return parse(_object_spread_props(_object_spread({}, baseProperties), {
onInsertFiles: pipe(prop("onInsertFiles"), pass(is), function(v) {
return v;
}, onNothing("onInsertFiles")),
insertFilesType: always(InsertFilesTypes.SINGLE)
}))(config);
case undefined:
case "none":
return parse(_object_spread_props(_object_spread({}, baseProperties), {
insertFilesType: always(InsertFilesTypes.NONE)
}))(config);
}
} catch (message) {
return {
__type: "error",
message: message
};
}
};