mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-17 00:37:49 +00:00
First iteration for internationalization of the loader
This commit is contained in:
Generated
+932
-548
File diff suppressed because it is too large
Load Diff
+12
-15
@@ -1,30 +1,27 @@
|
||||
import commonjs from '@rollup/plugin-commonjs';
|
||||
import json from '@rollup/plugin-json';
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||
import externalGlobals from "rollup-plugin-external-globals";
|
||||
import del from 'rollup-plugin-delete'
|
||||
import replace from '@rollup/plugin-replace';
|
||||
import typescript from '@rollup/plugin-typescript';
|
||||
import { defineConfig } from 'rollup';
|
||||
import del from 'rollup-plugin-delete';
|
||||
import externalGlobals from 'rollup-plugin-external-globals';
|
||||
|
||||
const hiddenWarnings = [
|
||||
"THIS_IS_UNDEFINED",
|
||||
"EVAL"
|
||||
];
|
||||
const hiddenWarnings = ['THIS_IS_UNDEFINED', 'EVAL'];
|
||||
|
||||
export default defineConfig({
|
||||
input: 'src/index.tsx',
|
||||
plugins: [
|
||||
del({ targets: "../backend/static/*", force: true }),
|
||||
del({ targets: '../backend/static/*', force: true }),
|
||||
commonjs(),
|
||||
nodeResolve(),
|
||||
externalGlobals({
|
||||
react: 'SP_REACT',
|
||||
'react-dom': 'SP_REACTDOM',
|
||||
// hack to shut up react-markdown
|
||||
'process': '{cwd: () => {}}',
|
||||
'path': '{dirname: () => {}, join: () => {}, basename: () => {}, extname: () => {}}',
|
||||
'url': '{fileURLToPath: (f) => f}'
|
||||
process: '{cwd: () => {}}',
|
||||
path: '{dirname: () => {}, join: () => {}, basename: () => {}, extname: () => {}}',
|
||||
url: '{fileURLToPath: (f) => f}',
|
||||
}),
|
||||
typescript(),
|
||||
json(),
|
||||
@@ -38,11 +35,11 @@ export default defineConfig({
|
||||
dir: '../backend/static',
|
||||
format: 'esm',
|
||||
chunkFileNames: (chunkInfo) => {
|
||||
return 'chunk-[hash].js'
|
||||
}
|
||||
return 'chunk-[hash].js';
|
||||
},
|
||||
},
|
||||
onwarn: function ( message, handleWarning ) {
|
||||
if (hiddenWarnings.some(warning => message.code === warning)) return;
|
||||
onwarn: function (message, handleWarning) {
|
||||
if (hiddenWarnings.some((warning) => message.code === warning)) return;
|
||||
handleWarning(message);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -38,5 +38,5 @@ export default function SettingsPage() {
|
||||
route: '/decky/settings/developer',
|
||||
});
|
||||
|
||||
return <SidebarNavigation title={t('settings_navbar') as string}showTitle pages={pages} />;
|
||||
return <SidebarNavigation title={t('settings_navbar') as string} showTitle pages={pages} />;
|
||||
}
|
||||
|
||||
@@ -19,8 +19,7 @@ export default function DeveloperSettings() {
|
||||
label={t('label_valve_internal')}
|
||||
description={
|
||||
<span style={{ whiteSpace: 'pre-line' }}>
|
||||
{t('valve_internal_desc1')}{' '}
|
||||
<span style={{ color: 'red' }}>{t('valve_internal_desc2')}</span>
|
||||
{t('valve_internal_desc1')} <span style={{ color: 'red' }}>{t('valve_internal_desc2')}</span>
|
||||
</span>
|
||||
}
|
||||
icon={<FaSteamSymbol style={{ display: 'block' }} />}
|
||||
@@ -60,9 +59,7 @@ export default function DeveloperSettings() {
|
||||
label={t('react_devtools_label')}
|
||||
description={
|
||||
<>
|
||||
<span style={{ whiteSpace: 'pre-line' }}>
|
||||
{t('react_devtools_desc')}
|
||||
</span>
|
||||
<span style={{ whiteSpace: 'pre-line' }}>{t('react_devtools_desc')}</span>
|
||||
<div ref={textRef}>
|
||||
<TextField label={'IP'} value={reactDevtoolsIP} onChange={(e) => setReactDevtoolsIP(e?.target.value)} />
|
||||
</div>
|
||||
|
||||
@@ -11,11 +11,7 @@ export default function RemoteDebuggingSettings() {
|
||||
return (
|
||||
<Field
|
||||
label={t('remote_cef_label')}
|
||||
description={
|
||||
<span style={{ whiteSpace: 'pre-line' }}>
|
||||
{t('remote_cef_desc')}
|
||||
</span>
|
||||
}
|
||||
description={<span style={{ whiteSpace: 'pre-line' }}>{t('remote_cef_desc')}</span>}
|
||||
icon={<FaBug style={{ display: 'block' }} />}
|
||||
>
|
||||
<Toggle
|
||||
|
||||
@@ -47,7 +47,7 @@ function PatchNotesModal({ versionInfo, closeModal }: { versionInfo: VerInfo | n
|
||||
<MarkdownRenderer onDismiss={closeModal}>{versionInfo.all[id].body}</MarkdownRenderer>
|
||||
</WithSuspense>
|
||||
) : (
|
||||
t("no_patch_notes_desc")
|
||||
t('no_patch_notes_desc')
|
||||
)}
|
||||
</div>
|
||||
</Focusable>
|
||||
@@ -142,7 +142,7 @@ export default function UpdaterSettings() {
|
||||
bottomSeparator="none"
|
||||
nProgress={updateProgress}
|
||||
indeterminate={reloading}
|
||||
sOperationText={reloading ? t("updates_reloading") : t("updates_updating")}
|
||||
sOperationText={reloading ? t('updates_reloading') : t('updates_updating')}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
|
||||
@@ -26,8 +26,8 @@ export default function GeneralSettings({
|
||||
<StoreSelect />
|
||||
<RemoteDebuggingSettings />
|
||||
<Field
|
||||
label={t("developer_mode_label")}
|
||||
description={<span style={{ whiteSpace: 'pre-line' }}>{t("developer_mode_desc")}</span>}
|
||||
label={t('developer_mode_label')}
|
||||
description={<span style={{ whiteSpace: 'pre-line' }}>{t('developer_mode_desc')}</span>}
|
||||
icon={<FaTools style={{ display: 'block' }} />}
|
||||
>
|
||||
<Toggle
|
||||
@@ -38,12 +38,12 @@ export default function GeneralSettings({
|
||||
/>
|
||||
</Field>
|
||||
<Field
|
||||
label={t("manual_plugin_label")}
|
||||
label={t('manual_plugin_label')}
|
||||
description={<TextField label={'URL'} value={pluginURL} onChange={(e) => setPluginURL(e?.target.value)} />}
|
||||
icon={<FaShapes style={{ display: 'block' }} />}
|
||||
>
|
||||
<DialogButton disabled={pluginURL.length == 0} onClick={() => installFromURL(pluginURL)}>
|
||||
{t("manual_plugin_install_button")}
|
||||
{t('manual_plugin_install_button')}
|
||||
</DialogButton>
|
||||
</Field>
|
||||
</div>
|
||||
|
||||
@@ -51,7 +51,9 @@ export default function PluginList() {
|
||||
<MenuItem onSelected={() => window.DeckyPluginLoader.importPlugin(name, version)}>
|
||||
{t('reload')}
|
||||
</MenuItem>
|
||||
<MenuItem onSelected={() => window.DeckyPluginLoader.uninstallPlugin(name)}>{t('uninstall')}</MenuItem>
|
||||
<MenuItem onSelected={() => window.DeckyPluginLoader.uninstallPlugin(name)}>
|
||||
{t('uninstall')}
|
||||
</MenuItem>
|
||||
</Menu>,
|
||||
e.currentTarget ?? window,
|
||||
)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'i18n.ts';
|
||||
|
||||
import {
|
||||
ReactRouter,
|
||||
Router,
|
||||
@@ -22,8 +24,6 @@ import { FaReact } from 'react-icons/fa';
|
||||
import Logger from './logger';
|
||||
import { getSetting } from './utils/settings';
|
||||
|
||||
import "i18n.ts";
|
||||
|
||||
const logger = new Logger('DeveloperMode');
|
||||
|
||||
let removeSettingsObserver: () => void = () => {};
|
||||
|
||||
+27
-28
@@ -1,32 +1,31 @@
|
||||
import i18next from "i18next";
|
||||
import { initReactI18next } from "react-i18next";
|
||||
import i18next from 'i18next';
|
||||
import Backend from 'i18next-fs-backend';
|
||||
import { initReactI18next } from 'react-i18next';
|
||||
|
||||
i18next
|
||||
.use(initReactI18next)
|
||||
.use(Backend)
|
||||
.init({
|
||||
backend:
|
||||
{
|
||||
// path where resources get loaded from, or a function
|
||||
// returning a path:
|
||||
// function(lngs, namespaces) { return customPath; }
|
||||
// the returned path will interpolate lng, ns if provided like giving a static path
|
||||
loadPath: '/locales/{{lng}}/{{ns}}.json',
|
||||
|
||||
// path to post missing resources
|
||||
// addPath: '/locales/{{lng}}/{{ns}}.missing.json',
|
||||
|
||||
// if you use i18next-fs-backend as caching layer in combination with i18next-chained-backend, you can optionally set an expiration time
|
||||
// an example on how to use it as cache layer can be found here: https://github.com/i18next/i18next-fs-backend/blob/master/example/caching/app.js
|
||||
// expirationTime: 60 * 60 * 1000
|
||||
},
|
||||
fallbackLng:"en",
|
||||
fallbackNS:"Common",
|
||||
lng: "en",
|
||||
interpolation: {
|
||||
escapeValue: false,
|
||||
},
|
||||
});
|
||||
.use(initReactI18next)
|
||||
.use(Backend)
|
||||
.init({
|
||||
backend: {
|
||||
// path where resources get loaded from, or a function
|
||||
// returning a path:
|
||||
// function(lngs, namespaces) { return customPath; }
|
||||
// the returned path will interpolate lng, ns if provided like giving a static path
|
||||
loadPath: '/locales/{{lng}}/{{ns}}.json',
|
||||
|
||||
export default i18next;
|
||||
// path to post missing resources
|
||||
// addPath: '/locales/{{lng}}/{{ns}}.missing.json',
|
||||
|
||||
// if you use i18next-fs-backend as caching layer in combination with i18next-chained-backend, you can optionally set an expiration time
|
||||
// an example on how to use it as cache layer can be found here: https://github.com/i18next/i18next-fs-backend/blob/master/example/caching/app.js
|
||||
// expirationTime: 60 * 60 * 1000
|
||||
},
|
||||
fallbackLng: 'en',
|
||||
fallbackNS: 'Common',
|
||||
lng: 'en',
|
||||
interpolation: {
|
||||
escapeValue: false,
|
||||
},
|
||||
});
|
||||
|
||||
export default i18next;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'i18n.ts';
|
||||
|
||||
import PluginLoader from './plugin-loader';
|
||||
import { DeckyUpdater } from './updater';
|
||||
import "i18n.ts";
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"update_channel_label": "Update Channel"
|
||||
}
|
||||
"update_channel_label": "Update Channel"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"reload": "Reload",
|
||||
"uninstall": "Uninstall"
|
||||
}
|
||||
"reload": "Reload",
|
||||
"uninstall": "Uninstall"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"valve_internal_label": "Enable Valve Internal",
|
||||
"valve_internal_desc1": "Enables the Valve internal developer menu.",
|
||||
"valve_internal_desc2": "Do not touch anything in this menu unless you know what it does.",
|
||||
"react_devtools_label": "Enable React DevTools",
|
||||
"react_devtools_desc": "Enables connection to a computer running React DevTools. Changing this setting will reload Steam. Set the IP address before enabling."
|
||||
}
|
||||
"valve_internal_label": "Enable Valve Internal",
|
||||
"valve_internal_desc1": "Enables the Valve internal developer menu.",
|
||||
"valve_internal_desc2": "Do not touch anything in this menu unless you know what it does.",
|
||||
"react_devtools_label": "Enable React DevTools",
|
||||
"react_devtools_desc": "Enables connection to a computer running React DevTools. Changing this setting will reload Steam. Set the IP address before enabling."
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"select_version": "Select a version"
|
||||
}
|
||||
"select_version": "Select a version"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"list_no_plugin": "No plugins installed!",
|
||||
"list_update_to": "Update to {{name}}",
|
||||
"list_plug_actions_label": "Plugin Actions"
|
||||
}
|
||||
"list_no_plugin": "No plugins installed!",
|
||||
"list_update_to": "Update to {{name}}",
|
||||
"list_plug_actions_label": "Plugin Actions"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"remote_cef_label": "Allow Remote CEF Debugging",
|
||||
"remote_cef_desc": "Allow unauthenticated access to the CEF debugger to anyone in your network"
|
||||
}
|
||||
"remote_cef_label": "Allow Remote CEF Debugging",
|
||||
"remote_cef_desc": "Allow unauthenticated access to the CEF debugger to anyone in your network"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"developer_mode_label": "Developer mode",
|
||||
"developer_mode_desc": "Enables Decky's developer settings.",
|
||||
"manual_plugin_label": "Manual plugin install",
|
||||
"manual_plugin_install_button": "Install"
|
||||
}
|
||||
"developer_mode_label": "Developer mode",
|
||||
"developer_mode_desc": "Enables Decky's developer settings.",
|
||||
"manual_plugin_label": "Manual plugin install",
|
||||
"manual_plugin_install_button": "Install"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"general_title": "General",
|
||||
"plugins_title": "Plugins",
|
||||
"developer_title": "Developer",
|
||||
"navbar_settings": "Decky Settings"
|
||||
}
|
||||
"general_title": "General",
|
||||
"plugins_title": "Plugins",
|
||||
"developer_title": "Developer",
|
||||
"navbar_settings": "Decky Settings"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"store_channel_label": "Store Channel",
|
||||
"custom_store_label": "Custom Store"
|
||||
}
|
||||
"store_channel_label": "Store Channel",
|
||||
"custom_store_label": "Custom Store"
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"no_patch_notes_desc": "no patch notes for this version",
|
||||
"decky_updates": "Decky Updates",
|
||||
|
||||
"updates_label": "Updates",
|
||||
"updates_cur_version": "Current version: {{ver}}",
|
||||
"updates_lat_version": "Latest version: {{ver}}",
|
||||
"no_patch_notes_desc": "no patch notes for this version",
|
||||
"decky_updates": "Decky Updates",
|
||||
|
||||
"updates_checking": "'Checking",
|
||||
"updates_check_button": "Check For Updates",
|
||||
"updates_install_button": "Install Update",
|
||||
"updates_reloading": "Reloading",
|
||||
"updates_updating": "Updating"
|
||||
}
|
||||
"updates_label": "Updates",
|
||||
"updates_cur_version": "Current version: {{ver}}",
|
||||
"updates_lat_version": "Latest version: {{ver}}",
|
||||
|
||||
"updates_checking": "'Checking",
|
||||
"updates_check_button": "Check For Updates",
|
||||
"updates_install_button": "Install Update",
|
||||
"updates_reloading": "Reloading",
|
||||
"updates_updating": "Updating"
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"enabling":"Enabling",
|
||||
"disabling":"Disabling",
|
||||
"decky_update_available":"Update to {{tag_name}} available!",
|
||||
"plugin_update_one":"Updates available for 1 plugin!",
|
||||
"plugin_update_other":"Updates available for {{number}} plugins!",
|
||||
"plugin_uninstall":"Uninstall {{name}}?",
|
||||
"plugin_load_error":"Error loading plugin {{name}}",
|
||||
"plugin_load_error_toast": "Error loading {{name}}",
|
||||
"error":"Error",
|
||||
"plugin_error_uninstall":"Please go to {{-icon}} in the Decky menu if you need to uninstall this plugin.",
|
||||
"file_picker_cancel_text": "User canceled"
|
||||
}
|
||||
"enabling": "Enabling",
|
||||
"disabling": "Disabling",
|
||||
"decky_update_available": "Update to {{tag_name}} available!",
|
||||
"plugin_update_one": "Updates available for 1 plugin!",
|
||||
"plugin_update_other": "Updates available for {{number}} plugins!",
|
||||
"plugin_uninstall": "Uninstall {{name}}?",
|
||||
"plugin_load_error": "Error loading plugin {{name}}",
|
||||
"plugin_load_error_toast": "Error loading {{name}}",
|
||||
"error": "Error",
|
||||
"plugin_error_uninstall": "Please go to {{-icon}} in the Decky menu if you need to uninstall this plugin.",
|
||||
"file_picker_cancel_text": "User canceled"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"update_channel_label": "Canale di aggiornamento"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"reload": "Ricarica",
|
||||
"uninstall": "Rimuovi"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"valve_internal_label": "Abilita Menu Sviluppatore",
|
||||
"valve_internal_desc1": "Abilita il menu interno di sviluppo di Valve.",
|
||||
"valve_internal_desc2": "Non toccare nulla in questo menu se non sai quello che fa.",
|
||||
"react_devtools_label": "Abilita i DevTools di React",
|
||||
"react_devtools_desc": "Abilita la connessione ad un computer che esegue i DevTools di React. Cambiando questa impostazione ricaricherà Steam. Imposta l'indirizzo IP prima di abilitarlo."
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"select_version": "Seleziona una versione"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"list_no_plugin": "Nessun plugin installato!",
|
||||
"list_update_to": "Aggiornamento a {{name}}",
|
||||
"list_plug_actions_label": "Operazioni sui plugins"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"remote_cef_label": "Permetti il debug remoto di CEF",
|
||||
"remote_cef_desc": "Permetti l'accesso non autenticato a chiunque sulla tua rete locale al debugger di CEF."
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"developer_mode_label": "Modalità sviluppatore",
|
||||
"developer_mode_desc": "Abilità le impostazioni di sviluppo di Decky.",
|
||||
"manual_plugin_label": "Installazione manuale plugins",
|
||||
"manual_plugin_install_button": "Installa"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"general_title": "Generali",
|
||||
"plugins_title": "Plugins",
|
||||
"developer_title": "Sviluppatore",
|
||||
"navbar_settings": "Impostazioni Decky"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"store_channel_label": "Canale del negozio",
|
||||
"custom_store_label": "Negozio custom"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"no_patch_notes_desc": "nessuna patch notes per questa versione",
|
||||
"decky_updates": "Aggiornamenti di Decky",
|
||||
|
||||
"updates_label": "Aggiornamenti",
|
||||
"updates_cur_version": "Versione attuale: {{ver}}",
|
||||
"updates_lat_version": "Ultima versione: {{ver}}",
|
||||
|
||||
"updates_checking": "Controllando",
|
||||
"updates_check_button": "Cerca aggiornamenti",
|
||||
"updates_install_button": "Installa aggiornamento",
|
||||
"updates_reloading": "Ricaricando",
|
||||
"updates_updating": "Aggiornando"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"enabling": "Abilitando",
|
||||
"disabling": "Disabilitando",
|
||||
"decky_update_available": "Disponibile aggiornamento a {{tag_name}}!",
|
||||
"plugin_update_one": "Aggiornamento disponibile per un plugin!",
|
||||
"plugin_update_other": "Aggiornamento disponibile per {{number}} plugins!",
|
||||
"plugin_uninstall": "Rimuovo {{name}}?",
|
||||
"plugin_load_error": "Errore caricando il plugin {{name}}",
|
||||
"plugin_load_error_toast": "Errore caricando {{name}}",
|
||||
"error": "Errore",
|
||||
"plugin_error_uninstall": "Per rimuovere questo plugin vai su {{-icon}} nel menu di Decky.",
|
||||
"file_picker_cancel_text": "Annullato dall'utente"
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
staticClasses,
|
||||
} from 'decky-frontend-lib';
|
||||
import { FC, lazy } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { FaCog, FaExclamationCircle, FaPlug } from 'react-icons/fa';
|
||||
|
||||
import { DeckyState, DeckyStateContextProvider, useDeckyState } from './components/DeckyState';
|
||||
@@ -27,7 +28,6 @@ import OldTabsHook from './tabs-hook.old';
|
||||
import Toaster from './toaster';
|
||||
import { VerInfo, callUpdaterMethod } from './updater';
|
||||
import { getSetting } from './utils/settings';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
const StorePage = lazy(() => import('./components/store/Store'));
|
||||
const SettingsPage = lazy(() => import('./components/settings'));
|
||||
@@ -133,7 +133,7 @@ class PluginLoader extends Logger {
|
||||
this.toaster.toast({
|
||||
title: 'Decky',
|
||||
//body: `Updates available for ${updates.size} plugin${updates.size > 1 ? 's' : ''}!`,
|
||||
body: t('plugin_update', updates.size.toString(10), {count: updates.size}),
|
||||
body: t('plugin_update', updates.size.toString(10), { count: updates.size }),
|
||||
onClick: () => Router.Navigate('/decky/settings/plugins'),
|
||||
});
|
||||
}
|
||||
@@ -251,13 +251,11 @@ class PluginLoader extends Logger {
|
||||
this.error(t('plugin_load_error', name), e);
|
||||
const TheError: FC<{}> = () => (
|
||||
<>
|
||||
{t("error")}:{' '}
|
||||
{t('error')}:{' '}
|
||||
<pre>
|
||||
<code>{e instanceof Error ? e.stack : JSON.stringify(e)}</code>
|
||||
</pre>
|
||||
<>
|
||||
{t('plugin_error_uninstall', <FaCog style={{ display: 'inline' }} />)}
|
||||
</>
|
||||
<>{t('plugin_error_uninstall', <FaCog style={{ display: 'inline' }} />)}</>
|
||||
</>
|
||||
);
|
||||
this.plugins.push({
|
||||
@@ -266,7 +264,11 @@ class PluginLoader extends Logger {
|
||||
content: <TheError />,
|
||||
icon: <FaExclamationCircle />,
|
||||
});
|
||||
this.toaster.toast({ title: t('error_loading_plugin_toast', name), body: '' + e, icon: <FaExclamationCircle /> });
|
||||
this.toaster.toast({
|
||||
title: t('error_loading_plugin_toast', name),
|
||||
body: '' + e,
|
||||
icon: <FaExclamationCircle />,
|
||||
});
|
||||
}
|
||||
} else throw new Error(`${name} frontend_bundle not OK`);
|
||||
}
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
../prettier/bin-prettier.js
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "decky-loader",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"node_modules/prettier": {
|
||||
"version": "2.8.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz",
|
||||
"integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+6000
File diff suppressed because it is too large
Load Diff
+109
@@ -0,0 +1,109 @@
|
||||

|
||||
|
||||
<h2 align="center">Opinionated Code Formatter</h2>
|
||||
|
||||
<p align="center">
|
||||
<em>
|
||||
JavaScript
|
||||
· TypeScript
|
||||
· Flow
|
||||
· JSX
|
||||
· JSON
|
||||
</em>
|
||||
<br />
|
||||
<em>
|
||||
CSS
|
||||
· SCSS
|
||||
· Less
|
||||
</em>
|
||||
<br />
|
||||
<em>
|
||||
HTML
|
||||
· Vue
|
||||
· Angular
|
||||
</em>
|
||||
<br />
|
||||
<em>
|
||||
GraphQL
|
||||
· Markdown
|
||||
· YAML
|
||||
</em>
|
||||
<br />
|
||||
<em>
|
||||
<a href="https://prettier.io/docs/en/plugins.html">
|
||||
Your favorite language?
|
||||
</a>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/prettier/prettier/actions?query=workflow%3AProd+branch%3Amain">
|
||||
<img alt="Github Actions Build Status" src="https://img.shields.io/github/actions/workflow/status/prettier/prettier/prod-test.yml?label=Prod&style=flat-square"></a>
|
||||
<a href="https://github.com/prettier/prettier/actions?query=workflow%3ADev+branch%3Amain">
|
||||
<img alt="Github Actions Build Status" src="https://img.shields.io/github/actions/workflow/status/prettier/prettier/dev-test.yml?label=Dev&style=flat-square"></a>
|
||||
<a href="https://github.com/prettier/prettier/actions?query=workflow%3ALint+branch%3Amain">
|
||||
<img alt="Github Actions Build Status" src="https://img.shields.io/github/actions/workflow/status/prettier/prettier/lint.yml?label=Lint&style=flat-square"></a>
|
||||
<a href="https://codecov.io/gh/prettier/prettier">
|
||||
<img alt="Codecov Coverage Status" src="https://img.shields.io/codecov/c/github/prettier/prettier.svg?style=flat-square"></a>
|
||||
<a href="https://twitter.com/acdlite/status/974390255393505280">
|
||||
<img alt="Blazing Fast" src="https://img.shields.io/badge/speed-blazing%20%F0%9F%94%A5-brightgreen.svg?style=flat-square"></a>
|
||||
<br/>
|
||||
<a href="https://www.npmjs.com/package/prettier">
|
||||
<img alt="npm version" src="https://img.shields.io/npm/v/prettier.svg?style=flat-square"></a>
|
||||
<a href="https://www.npmjs.com/package/prettier">
|
||||
<img alt="weekly downloads from npm" src="https://img.shields.io/npm/dw/prettier.svg?style=flat-square"></a>
|
||||
<a href="#badge">
|
||||
<img alt="code style: prettier" src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square"></a>
|
||||
<a href="https://twitter.com/PrettierCode">
|
||||
<img alt="Follow Prettier on Twitter" src="https://img.shields.io/twitter/follow/prettiercode.svg?label=follow+prettier&style=flat-square"></a>
|
||||
</p>
|
||||
|
||||
## Intro
|
||||
|
||||
Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
|
||||
|
||||
### Input
|
||||
|
||||
<!-- prettier-ignore -->
|
||||
```js
|
||||
foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());
|
||||
```
|
||||
|
||||
### Output
|
||||
|
||||
```js
|
||||
foo(
|
||||
reallyLongArg(),
|
||||
omgSoManyParameters(),
|
||||
IShouldRefactorThis(),
|
||||
isThereSeriouslyAnotherOne()
|
||||
);
|
||||
```
|
||||
|
||||
Prettier can be run [in your editor](https://prettier.io/docs/en/editors.html) on-save, in a [pre-commit hook](https://prettier.io/docs/en/precommit.html), or in [CI environments](https://prettier.io/docs/en/cli.html#list-different) to ensure your codebase has a consistent style without devs ever having to post a nit-picky comment on a code review ever again!
|
||||
|
||||
---
|
||||
|
||||
**[Documentation](https://prettier.io/docs/en/)**
|
||||
|
||||
<!-- prettier-ignore -->
|
||||
[Install](https://prettier.io/docs/en/install.html) ·
|
||||
[Options](https://prettier.io/docs/en/options.html) ·
|
||||
[CLI](https://prettier.io/docs/en/cli.html) ·
|
||||
[API](https://prettier.io/docs/en/api.html)
|
||||
|
||||
**[Playground](https://prettier.io/playground/)**
|
||||
|
||||
---
|
||||
|
||||
## Badge
|
||||
|
||||
Show the world you're using _Prettier_ → [](https://github.com/prettier/prettier)
|
||||
|
||||
```md
|
||||
[](https://github.com/prettier/prettier)
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env node
|
||||
"use strict";
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __commonJS = function(cb, mod) {
|
||||
return function __require() {
|
||||
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
||||
};
|
||||
};
|
||||
|
||||
// node_modules/semver-compare/index.js
|
||||
var require_semver_compare = __commonJS({
|
||||
"node_modules/semver-compare/index.js": function(exports2, module2) {
|
||||
module2.exports = function cmp(a, b) {
|
||||
var pa = a.split(".");
|
||||
var pb = b.split(".");
|
||||
for (var i = 0; i < 3; i++) {
|
||||
var na = Number(pa[i]);
|
||||
var nb = Number(pb[i]);
|
||||
if (na > nb)
|
||||
return 1;
|
||||
if (nb > na)
|
||||
return -1;
|
||||
if (!isNaN(na) && isNaN(nb))
|
||||
return 1;
|
||||
if (isNaN(na) && !isNaN(nb))
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// node_modules/please-upgrade-node/index.js
|
||||
var require_please_upgrade_node = __commonJS({
|
||||
"node_modules/please-upgrade-node/index.js": function(exports2, module2) {
|
||||
var semverCompare = require_semver_compare();
|
||||
module2.exports = function pleaseUpgradeNode2(pkg, opts) {
|
||||
var opts = opts || {};
|
||||
var requiredVersion = pkg.engines.node.replace(">=", "");
|
||||
var currentVersion = process.version.replace("v", "");
|
||||
if (semverCompare(currentVersion, requiredVersion) === -1) {
|
||||
if (opts.message) {
|
||||
console.error(opts.message(requiredVersion));
|
||||
} else {
|
||||
console.error(
|
||||
pkg.name + " requires at least version " + requiredVersion + " of Node, please upgrade"
|
||||
);
|
||||
}
|
||||
if (opts.hasOwnProperty("exitCode")) {
|
||||
process.exit(opts.exitCode);
|
||||
} else {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// bin/prettier.js
|
||||
var pleaseUpgradeNode = require_please_upgrade_node();
|
||||
var packageJson = require("./package.json");
|
||||
pleaseUpgradeNode(packageJson);
|
||||
var cli = require("./cli.js");
|
||||
module.exports = cli.run(process.argv.slice(2));
|
||||
+15364
File diff suppressed because it is too large
Load Diff
+1473
File diff suppressed because one or more lines are too long
+2
File diff suppressed because one or more lines are too long
+29
File diff suppressed because one or more lines are too long
+26
File diff suppressed because one or more lines are too long
+35
File diff suppressed because one or more lines are too long
+27
File diff suppressed because one or more lines are too long
+15
File diff suppressed because one or more lines are too long
+36
File diff suppressed because one or more lines are too long
+76
File diff suppressed because one or more lines are too long
+19
File diff suppressed because one or more lines are too long
+76
File diff suppressed because one or more lines are too long
+257
File diff suppressed because one or more lines are too long
+150
File diff suppressed because one or more lines are too long
+116
File diff suppressed because one or more lines are too long
+38222
File diff suppressed because one or more lines are too long
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "prettier",
|
||||
"version": "2.8.2",
|
||||
"description": "Prettier is an opinionated code formatter",
|
||||
"bin": "./bin-prettier.js",
|
||||
"repository": "prettier/prettier",
|
||||
"funding": "https://github.com/prettier/prettier?sponsor=1",
|
||||
"homepage": "https://prettier.io",
|
||||
"author": "James Long",
|
||||
"license": "MIT",
|
||||
"main": "./index.js",
|
||||
"browser": "./standalone.js",
|
||||
"unpkg": "./standalone.js",
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
},
|
||||
"files": [
|
||||
"*.js",
|
||||
"esm/*.mjs"
|
||||
]
|
||||
}
|
||||
+2
File diff suppressed because one or more lines are too long
+29
File diff suppressed because one or more lines are too long
+26
File diff suppressed because one or more lines are too long
+35
File diff suppressed because one or more lines are too long
+27
File diff suppressed because one or more lines are too long
+15
File diff suppressed because one or more lines are too long
+36
File diff suppressed because one or more lines are too long
+76
File diff suppressed because one or more lines are too long
+19
File diff suppressed because one or more lines are too long
+76
File diff suppressed because one or more lines are too long
+257
File diff suppressed because one or more lines are too long
+150
File diff suppressed because one or more lines are too long
+116
File diff suppressed because one or more lines are too long
+8978
File diff suppressed because it is too large
Load Diff
Generated
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "decky-loader",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"devDependencies": {
|
||||
"prettier": "2.8.2"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.8.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz",
|
||||
"integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"prettier": {
|
||||
"version": "2.8.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz",
|
||||
"integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"prettier": "2.8.2"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user