@stryker-mutator/core
Version:
The extendable JavaScript mutation testing framework
30 lines • 1.07 kB
JavaScript
import { commonTokens, tokens } from '@stryker-mutator/api/plugin';
import { coreTokens } from '../di/index.js';
export class MetaSchemaBuilder {
schema;
log;
static inject = tokens(coreTokens.validationSchema, commonTokens.logger);
constructor(schema, log) {
this.schema = schema;
this.log = log;
}
buildMetaSchema(pluginSchemaContributions) {
this.log.debug('Contributing %s schemas from plugins to options validation.', pluginSchemaContributions.length);
return mergedSchema(this.schema, pluginSchemaContributions);
}
}
function mergedSchema(mainSchema, additionalSchemas) {
const schema = {
...mainSchema,
properties: {
...mainSchema.properties,
},
definitions: {
...mainSchema.definitions,
},
};
Object.assign(schema.properties, ...additionalSchemas.map((s) => s.properties));
Object.assign(schema.definitions, ...additionalSchemas.map((s) => s.definitions));
return schema;
}
//# sourceMappingURL=meta-schema-builder.js.map