"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.JSONSchemaTargetLanguage = exports.JSONSchemaLanguageConfig = void 0;
const TargetLanguage_js_1 = require("../../TargetLanguage.js");
const TypeBuilderUtils_js_1 = require("../../Type/TypeBuilderUtils.js");
const JSONSchemaRenderer_js_1 = require("./JSONSchemaRenderer.js");
exports.JSONSchemaLanguageConfig = {
    displayName: "JSON Schema",
    names: ["schema", "json-schema"],
    extension: "schema",
};
class JSONSchemaTargetLanguage extends TargetLanguage_js_1.TargetLanguage {
    constructor() {
        super(exports.JSONSchemaLanguageConfig);
    }
    getOptions() {
        return {};
    }
    get stringTypeMapping() {
        return (0, TypeBuilderUtils_js_1.getNoStringTypeMapping)();
    }
    get supportsOptionalClassProperties() {
        return true;
    }
    get supportsFullObjectType() {
        return true;
    }
    makeRenderer(renderContext, _untypedOptionValues) {
        return new JSONSchemaRenderer_js_1.JSONSchemaRenderer(this, renderContext);
    }
}
exports.JSONSchemaTargetLanguage = JSONSchemaTargetLanguage;
