"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.JavaScriptPropTypesTargetLanguage = exports.javaScriptPropTypesLanguageConfig = exports.javaScriptPropTypesOptions = void 0;
const index_js_1 = require("../../RendererOptions/index.js");
const Acronyms_js_1 = require("../../support/Acronyms.js");
const Converters_js_1 = require("../../support/Converters.js");
const TargetLanguage_js_1 = require("../../TargetLanguage.js");
const JavaScriptPropTypesRenderer_js_1 = require("./JavaScriptPropTypesRenderer.js");
exports.javaScriptPropTypesOptions = {
    acronymStyle: (0, Acronyms_js_1.acronymOption)(Acronyms_js_1.AcronymStyleOptions.Pascal),
    converters: (0, Converters_js_1.convertersOption)(),
    moduleSystem: new index_js_1.EnumOption("module-system", "Which module system to use", {
        "common-js": false,
        es6: true,
    }, "es6"),
};
exports.javaScriptPropTypesLanguageConfig = {
    displayName: "JavaScript PropTypes",
    names: ["javascript-prop-types"],
    extension: "js",
};
class JavaScriptPropTypesTargetLanguage extends TargetLanguage_js_1.TargetLanguage {
    constructor() {
        super(exports.javaScriptPropTypesLanguageConfig);
    }
    getOptions() {
        return exports.javaScriptPropTypesOptions;
    }
    makeRenderer(renderContext, untypedOptionValues) {
        return new JavaScriptPropTypesRenderer_js_1.JavaScriptPropTypesRenderer(this, renderContext, (0, index_js_1.getOptionValues)(exports.javaScriptPropTypesOptions, untypedOptionValues));
    }
}
exports.JavaScriptPropTypesTargetLanguage = JavaScriptPropTypesTargetLanguage;
