wikibase-edit
Version:
Edit Wikibase from NodeJS
42 lines • 1.35 kB
JavaScript
import { newError } from './error.js';
import { fetchUsedPropertiesDatatypes } from './properties/fetch_used_properties_datatypes.js';
import { validateAndEnrichConfig } from './validate_and_enrich_config.js';
// Can't use API type definition, as that would trigger "TS2502 API is referenced directly or indirectly in its own type annotation"
export function bundleWrapper(fn, generalConfig, API) {
return async function (params, reqConfig) {
validateParams(params);
const config = validateAndEnrichConfig(generalConfig, reqConfig);
await fetchUsedPropertiesDatatypes(params, config);
// @ts-expect-error
return fn(params, config, API);
};
}
function validateParams(params) {
for (const parameter in params) {
if (!validParametersKeysSet.has(parameter)) {
throw newError(`invalid parameter: ${parameter}`, { parameter, validParametersKeys });
}
}
}
const validParametersKeys = [
'baserevid',
'guid',
'hash',
'id',
'newProperty',
'newValue',
'oldProperty',
'oldValue',
'property',
'propertyClaimsId',
'qualifiers',
'rank',
'reconciliation',
'references',
'summary',
'value',
'site',
'badges',
];
const validParametersKeysSet = new Set(validParametersKeys);
//# sourceMappingURL=bundle_wrapper.js.map