import "./install-service-worker.js";
import { createApp, onMounted, reactive, toRaw, watch } from "vue";
import { settings } from "./composables/playground-settings.js";
import { worker } from "./composables/prettier-worker.js";
import { setVersion, version } from "./composables/use-version.js";
import Header from "./header.vue";
import Playground from "./Playground.jsx";
import { formatVersion } from "./utilities.js";
const App = {
name: "App",
setup() {
const state = reactive({
loaded: false,
});
const updateMetadata = async () => {
const { supportInfo, version: versionData } = await worker.getMetadata(
version.value,
);
Object.assign(state, {
loaded: true,
availableOptions: supportInfo.options.map(augmentOption),
version: formatVersion(versionData),
});
};
watch(() => version.value, updateMetadata);
const render = () => {
const { loaded, availableOptions, version } = state;
if (!loaded) {
return "Loading...";
}
return (
<>
>
);
};
onMounted(() => updateMetadata());
return render;
},
};
function augmentOption(option) {
if (option.type === "boolean" && option.default === true) {
option.inverted = true;
}
option.cliName =
"--" +
(option.inverted ? "no-" : "") +
option.name.replaceAll(/(?<=[a-z])(?=[A-Z])/g, "-").toLowerCase();
return option;
}
const container = document.getElementById("root");
const root = createApp(App);
root.mount(container);