From 9228b1fa3024ba3b35a5eef8260a295183f9514e Mon Sep 17 00:00:00 2001 From: TANAKA Koichi Date: Sat, 19 Mar 2016 21:36:06 +0900 Subject: [PATCH 1/2] fs-extra: fix argument of copy and copySync function - Allow options object as 3rd argument of copy and copySync - Allow RegExp as a filter for copy and copySync --- fs-extra/fs-extra-tests.ts | 31 +++++++++++++++++++++++++++++++ fs-extra/fs-extra.d.ts | 18 ++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/fs-extra/fs-extra-tests.ts b/fs-extra/fs-extra-tests.ts index 32fc34d76d..c1785f851d 100644 --- a/fs-extra/fs-extra-tests.ts +++ b/fs-extra/fs-extra-tests.ts @@ -51,10 +51,41 @@ fs.copy(src, dest, errorCallback); fs.copy(src, dest, (src: string) => { return false; }, errorCallback); +fs.copy(src, dest, + { + clobber: true, + preserveTimestamps: true, + filter: (src: string) => {return false} + }, + errorCallback +); +fs.copy(src, dest, + { + clobber: true, + preserveTimestamps: true, + filter: /.*/ + }, + errorCallback +); fs.copySync(src, dest); fs.copySync(src, dest, (src: string) => { return false; }); +fs.copySync(src, dest, /.*/); +fs.copySync(src, dest, + { + clobber: true, + preserveTimestamps: true, + filter: (src: string) => {return false} + } +); +fs.copySync(src, dest, + { + clobber: true, + preserveTimestamps: true, + filter: /.*/ + } +); fs.createFile(file, errorCallback); fs.createFileSync(file); diff --git a/fs-extra/fs-extra.d.ts b/fs-extra/fs-extra.d.ts index 2813fac56b..d372a84a70 100644 --- a/fs-extra/fs-extra.d.ts +++ b/fs-extra/fs-extra.d.ts @@ -42,10 +42,12 @@ declare module "fs-extra" { //extended methods export function copy(src: string, dest: string, callback?: (err: Error) => void): void; - export function copy(src: string, dest: string, filter: (src: string) => boolean, callback?: (err: Error) => void): void; + export function copy(src: string, dest: string, filter: CopyFilter, callback?: (err: Error) => void): void; + export function copy(src: string, dest: string, options: CopyOptions, callback?: (err: Error) => void): void; export function copySync(src: string, dest: string): void; - export function copySync(src: string, dest: string, filter: (src: string) => boolean): void; + export function copySync(src: string, dest: string, filter: CopyFilter): void; + export function copySync(src: string, dest: string, options: CopyOptions): void; export function createFile(file: string, callback?: (err: Error) => void): void; export function createFileSync(file: string): void; @@ -177,6 +179,18 @@ declare module "fs-extra" { export function emptyDir(path: string, callback?: (err: Error) => void): void; export function emptyDirSync(path: string): boolean; + export interface CopyFilterFunction { + (src: string): boolean + } + + export type CopyFilter = CopyFilterFunction | RegExp; + + export interface CopyOptions { + clobber: boolean + preserveTimestamps: boolean + filter: CopyFilter + } + export interface OpenOptions { encoding?: string; flag?: string; From 92c93bde1b77bc0a3159d161a7483d54b5f9326d Mon Sep 17 00:00:00 2001 From: TANAKA Koichi Date: Sat, 19 Mar 2016 21:41:12 +0900 Subject: [PATCH 2/2] fs-extra: change CopyOptions properties optional --- fs-extra/fs-extra.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs-extra/fs-extra.d.ts b/fs-extra/fs-extra.d.ts index d372a84a70..b133047dec 100644 --- a/fs-extra/fs-extra.d.ts +++ b/fs-extra/fs-extra.d.ts @@ -186,9 +186,9 @@ declare module "fs-extra" { export type CopyFilter = CopyFilterFunction | RegExp; export interface CopyOptions { - clobber: boolean - preserveTimestamps: boolean - filter: CopyFilter + clobber?: boolean + preserveTimestamps?: boolean + filter?: CopyFilter } export interface OpenOptions {