Hyprpanel config no longer resets if there is a parsing error. (#640)
This commit is contained in:
@@ -4,6 +4,7 @@ import { ensureDirectory } from './session';
|
||||
import Variable from 'astal/variable';
|
||||
import { monitorFile, readFile, writeFile } from 'astal/file';
|
||||
import GLib from 'gi://GLib?version=2.0';
|
||||
import { errorHandler } from './utils';
|
||||
|
||||
type OptProps = {
|
||||
persistent?: boolean;
|
||||
@@ -88,8 +89,8 @@ export class Opt<T = unknown> extends Variable<T> {
|
||||
if (rawData && rawData.trim() !== '') {
|
||||
try {
|
||||
cacheData = JSON.parse(rawData) as Record<string, unknown>;
|
||||
} catch {
|
||||
// do nuffin
|
||||
} catch (error) {
|
||||
errorHandler(error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,6 +179,7 @@ export function opt<T>(initial: T, props?: OptProps): Opt<T> {
|
||||
* @returns An array of all found `Opt` instances.
|
||||
*/
|
||||
function getOptions(object: Record<string, unknown>, path = '', arr: Opt[] = []): Opt[] {
|
||||
try {
|
||||
for (const key in object) {
|
||||
const value = object[key];
|
||||
const id = path ? `${path}.${key}` : key;
|
||||
@@ -191,6 +193,9 @@ function getOptions(object: Record<string, unknown>, path = '', arr: Opt[] = [])
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
} catch (error) {
|
||||
errorHandler(error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -10,7 +10,9 @@ declare global {
|
||||
}
|
||||
|
||||
export function ensureDirectory(path: string): void {
|
||||
if (!GLib.file_test(path, GLib.FileTest.EXISTS)) Gio.File.new_for_path(path).make_directory_with_parents(null);
|
||||
if (!GLib.file_test(path, GLib.FileTest.EXISTS)) {
|
||||
Gio.File.new_for_path(path).make_directory_with_parents(null);
|
||||
}
|
||||
}
|
||||
|
||||
export function ensureFile(path: string): void {
|
||||
|
||||
Reference in New Issue
Block a user