From 47c98ec4bc70b215cf7560d10ab3915df880c89a Mon Sep 17 00:00:00 2001 From: Kevin Gruber Date: Tue, 28 May 2024 13:44:31 +0200 Subject: [PATCH 1/2] feat(types): export types feat(types): add default export --- TEMP_TEST_TS.ts | 5 +++++ index.d.ts | 36 ++++++++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 TEMP_TEST_TS.ts diff --git a/TEMP_TEST_TS.ts b/TEMP_TEST_TS.ts new file mode 100644 index 00000000..31a40dc8 --- /dev/null +++ b/TEMP_TEST_TS.ts @@ -0,0 +1,5 @@ +import nodemon from './index'; + +const test = nodemon({ + script: '' +}); diff --git a/index.d.ts b/index.d.ts index 4b146e5d..69a5351e 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,4 +1,4 @@ -type NodemonEventHandler = +export type NodemonEventHandler = | 'start' | 'crash' | 'exit' @@ -10,7 +10,7 @@ type NodemonEventHandler = | 'stdout' | 'stderr'; -type NodemonEventListener = { +export type NodemonEventListener = { on(event: 'start' | 'crash' | 'readable', listener: () => void): Nodemon; on(event: 'log', listener: (e: NodemonEventLog) => void): Nodemon; on(event: 'stdout' | 'stderr', listener: (e: string) => void): Nodemon; @@ -23,7 +23,7 @@ type NodemonEventListener = { ): Nodemon; }; -type Nodemon = { +export type Nodemon = { (options?: NodemonSettings): Nodemon; on(event: 'start' | 'crash', listener: () => void): Nodemon; on(event: 'log', listener: (e: NodemonEventLog) => void): Nodemon; @@ -72,10 +72,11 @@ type Nodemon = { emit(type: NodemonEventHandler, event?: any): Nodemon; reset(callback: Function): Nodemon; restart(): Nodemon; + // TODO remy is that now only the config or does it also include the other stuff liek script? config: NodemonSettings; }; -type NodemonEventLog = { +export type NodemonEventLog = { /** detail*: what you get with nodemon --verbose. status: subprocess starting, restarting. @@ -89,20 +90,20 @@ type NodemonEventLog = { colour: String; }; -interface NodemonEventRestart { +export interface NodemonEventRestart { matched?: { result: string[]; total: number; }; } -type NodemonEventQuit = 143 | 130; -type NodemonEventExit = number; +export type NodemonEventQuit = 143 | 130; +export type NodemonEventExit = number; // TODO: Define the type of NodemonEventConfig -type NodemonEventConfig = any; +export type NodemonEventConfig = any; -interface NodemonSettings { +export interface NodemonConfig { /* restartable defaults to "rs" as a string the user enters */ restartable?: false | String; colours?: Boolean; @@ -117,10 +118,25 @@ interface NodemonSettings { watchOptions?: WatchOptions; } -interface WatchOptions { +export interface NodemonSettings extends NodemonConfig { + script: string; + ext?: string; // "js,mjs" etc (should really support an array of strings, but I don't think it does right now) + events?: { [key: string]: string }; + env?: { [key: string]: string }; + exec?: string; // node, python, etc + execArgs?: string[]; // args passed to node, etc, + + // TODO remy check if that is correct i have that in my code configured + nodeArgs?: string[]; // args passed to node, etc, + delay?: number; +} + +export interface WatchOptions { ignorePermissionErrors: boolean; ignored: string; persistent: boolean; usePolling: boolean; interval: number; } + +export default function nodemon(settings: NodemonSettings): Nodemon; \ No newline at end of file From d65cc51c4499563c0d716a0759f4fa3554c93961 Mon Sep 17 00:00:00 2001 From: Kevin Gruber Date: Tue, 28 May 2024 14:23:27 +0200 Subject: [PATCH 2/2] chore(files): remove TEMP_TEST_TS.ts file chore(types): remove Questions comments --- TEMP_TEST_TS.ts | 5 ----- index.d.ts | 3 --- 2 files changed, 8 deletions(-) delete mode 100644 TEMP_TEST_TS.ts diff --git a/TEMP_TEST_TS.ts b/TEMP_TEST_TS.ts deleted file mode 100644 index 31a40dc8..00000000 --- a/TEMP_TEST_TS.ts +++ /dev/null @@ -1,5 +0,0 @@ -import nodemon from './index'; - -const test = nodemon({ - script: '' -}); diff --git a/index.d.ts b/index.d.ts index 69a5351e..190a1326 100644 --- a/index.d.ts +++ b/index.d.ts @@ -72,7 +72,6 @@ export type Nodemon = { emit(type: NodemonEventHandler, event?: any): Nodemon; reset(callback: Function): Nodemon; restart(): Nodemon; - // TODO remy is that now only the config or does it also include the other stuff liek script? config: NodemonSettings; }; @@ -125,8 +124,6 @@ export interface NodemonSettings extends NodemonConfig { env?: { [key: string]: string }; exec?: string; // node, python, etc execArgs?: string[]; // args passed to node, etc, - - // TODO remy check if that is correct i have that in my code configured nodeArgs?: string[]; // args passed to node, etc, delay?: number; }