regedit
Version:
Read, Write, List and do all sorts of funky stuff to the windows registry using node.js and windows script host
125 lines (101 loc) • 5.65 kB
TypeScript
export interface REG_SZ_Value {
value: string;
type: "REG_SZ";
}
export interface REG_EXPAND_SZ_Value {
value: string;
type: "REG_EXPAND_SZ";
}
export interface REG_DWORD_Value {
value: number;
type: "REG_DWORD";
}
export interface REG_QWORD_Value {
value: number;
type: "REG_QWORD";
}
export interface REG_MULTI_SZ_Value {
value: string[];
type: "REG_MULTI_SZ";
}
export interface REG_BINARY_Value {
value: number[];
type: "REG_SZ";
}
export interface REG_DEFAULT_Value {
value: string;
type: "REG_DEFAULT";
}
export type RegistryItemValue = REG_SZ_Value | REG_EXPAND_SZ_Value | REG_DWORD_Value | REG_QWORD_Value | REG_MULTI_SZ_Value | REG_BINARY_Value | REG_DEFAULT_Value;
export interface RegistryItem {
exists: boolean;
keys: string[];
values: {
[name: string]: RegistryItemValue;
};
}
export type RegistryItemCollection<T extends readonly string[], U = { [key in T[number]]: RegistryItem }> = U;
export interface RegistryPutItem {
[name: string]: RegistryItemValue;
}
export type RegistryItemPutCollection = {
[key: string]: RegistryPutItem;
};
export const OS_ARCH_AGNOSTIC = "A";
export const OS_ARCH_SPECIFIC = "S";
export const OS_ARCH_32BIT = "32";
export const OS_ARCH_64BIT = "64";
type Architecture = (typeof OS_ARCH_AGNOSTIC | typeof OS_ARCH_SPECIFIC | typeof OS_ARCH_32BIT | typeof OS_ARCH_64BIT);
type ErrResCallback<T extends readonly string[]> = (err: Error | undefined, res: RegistryItemCollection<T>) => void;
export function list<K extends string>(keys: readonly K[], callback: ErrResCallback<typeof keys>): void;
export function list<K extends string>(keys: readonly K[], architecture: Architecture, callback?: ErrResCallback<typeof keys>): void;
export function setExternalVBSLocation(newLocation: string): string;
interface ErrorWithCode extends Error {
code: number;
description: string;
}
type ErrCallback = (err: ErrorWithCode | undefined) => void;
export function createKey<K extends string>(keys: readonly K[], callback: ErrCallback): void;
export function createKey<K extends string>(keys: readonly K[], architecture: Architecture, callback?: ErrCallback): void;
export function deleteKey(keys: readonly string[], callback: ErrCallback): void;
export function deleteKey(keys: readonly string[], architecture: Architecture, callback?: ErrCallback): void;
export function putValue(map: RegistryItemPutCollection, callback: ErrCallback): void;
export function putValue(map: RegistryItemPutCollection, architecture: Architecture, callback?: ErrCallback): void;
export namespace arch {
export function list<K extends string>(keys: readonly K[], callback: ErrResCallback<typeof keys>): void;
export function list32<K extends string>(keys: readonly K[], callback: ErrResCallback<typeof keys>): void;
export function list64<K extends string>(keys: readonly K[], callback: ErrResCallback<typeof keys>): void;
export function createKey(keys: readonly string[], callback: ErrCallback): void;
export function createKey32(keys: readonly string[], callback: ErrCallback): void;
export function createKey64(keys: readonly string[], callback: ErrCallback): void;
export function deleteKey(keys: readonly string[], callback: ErrCallback): void;
export function deleteKey32(keys: readonly string[], callback: ErrCallback): void;
export function deleteKey64(keys: readonly string[], callback: ErrCallback): void;
export function putValue(map: RegistryItemPutCollection, callback: ErrCallback): void;
export function putValue32(map: RegistryItemPutCollection, callback: ErrCallback): void;
export function putValue64(map: RegistryItemPutCollection, callback: ErrCallback): void;
}
export namespace promisified {
export function list<K extends string>(keys: readonly K[]): Promise<RegistryItemCollection<typeof keys>>;
export function list<K extends string>(keys: readonly K[], architecture: Architecture): Promise<RegistryItemCollection<typeof keys>>;
export function createKey(keys: readonly string[]): Promise<void>;
export function createKey(keys: readonly string[], architecture: Architecture): Promise<void>;
export function deleteKey(keys: readonly string[]): Promise<void>;
export function deleteKey(keys: readonly string[], architecture: Architecture): Promise<void>;
export function putValue(map: RegistryItemPutCollection): Promise<void>;
export function putValue(map: RegistryItemPutCollection, architecture: Architecture): Promise<void>;
export namespace arch {
export function list<K extends string>(keys: readonly K[]): Promise<RegistryItemCollection<typeof keys>>;
export function list32<K extends string>(keys: readonly K[]): Promise<RegistryItemCollection<typeof keys>>;
export function list64<K extends string>(keys: readonly K[]): Promise<RegistryItemCollection<typeof keys>>;
export function createKey(keys: readonly string[]): Promise<void>;
export function createKey32(keys: readonly string[]): Promise<void>;
export function createKey64(keys: readonly string[]): Promise<void>;
export function deleteKey(keys: readonly string[]): Promise<void>;
export function deleteKey32(keys: readonly string[]): Promise<void>;
export function deleteKey64(keys: readonly string[]): Promise<void>;
export function putValue(map: RegistryItemPutCollection): Promise<void>;
export function putValue32(map: RegistryItemPutCollection): Promise<void>;
export function putValue64(map: RegistryItemPutCollection): Promise<void>;
}
}