UNPKG

@iobroker/create-adapter

Version:

Command line utility to create customized ioBroker adapters

83 lines (77 loc) 2.38 kB
"use strict"; const templateFunction = answers => { const useTypeScript = answers.language === "TypeScript"; const useReact = answers.adminUi === "react"; if (!useReact) { return; } const template = `/* eslint-disable @typescript-eslint/no-require-imports */ import React from "react"; import { ${useTypeScript ? "type Theme, type StyleRules, " : ""}withStyles } from "@material-ui/core/styles"; import GenericApp from "@iobroker/adapter-react/GenericApp"; import Settings from "./components/settings"; ${useTypeScript ? `import type { GenericAppProps, GenericAppSettings } from "@iobroker/adapter-react/types"; ` : ""} ${useTypeScript ? `const styles = (_theme: Theme): StyleRules => ({ root: {}, });` : `/** * @type {(_theme: import("@material-ui/core/styles").Theme) => import("@material-ui/styles").StyleRules} */ const styles = (_theme) => ({ root: {}, });`} class App extends GenericApp { constructor(props${useTypeScript ? ": GenericAppProps" : ""}) { const extendedProps${useTypeScript ? ": GenericAppSettings" : ""} = { ...props, encryptedFields: [], translations: { en: require("./i18n/en.json"), de: require("./i18n/de.json"), ru: require("./i18n/ru.json"), pt: require("./i18n/pt.json"), nl: require("./i18n/nl.json"), fr: require("./i18n/fr.json"), it: require("./i18n/it.json"), es: require("./i18n/es.json"), pl: require("./i18n/pl.json"), uk: require("./i18n/uk.json"), "zh-cn": require("./i18n/zh-cn.json"), }, }; super(props, extendedProps); } onConnectionReady()${useTypeScript ? ": void" : ""} { // executed when connection is ready } render()${useTypeScript ? ": React.JSX.Element" : ""} { if (!this.state.loaded) { return super.render(); } return ( <div className="App"> <Settings native={this.state.native} onChange={(attr, value) => this.updateNativeValue(attr, value)} /> {this.renderError()} {this.renderToast()} {this.renderSaveCloseButtons()} </div> ); } } export default withStyles(styles)(App); `; return template; }; templateFunction.customPath = answers => { const useTypeScript = answers.language === "TypeScript"; return `admin/src/app.${useTypeScript ? "tsx" : "jsx"}`; }; module.exports = templateFunction; //# sourceMappingURL=app.tsx_jsx.js.map