@@ -2,7 +2,6 @@ const fs = require('fs')
22const path = require ( 'path' )
33const rimraf = require ( 'rimraf' )
44const mkdirp = require ( 'mkdirp' )
5- const arrify = require ( 'arrify' )
65const has = require ( 'lodash.has' )
76const readPkgUp = require ( 'read-pkg-up' )
87const which = require ( 'which' )
@@ -66,19 +65,42 @@ function resolveBin(
6665const fromRoot = ( /** @type {string[] } */ ...p ) => path . join ( appDirectory , ...p )
6766const hasFile = ( /** @type {string[] } */ ...p ) => fs . existsSync ( fromRoot ( ...p ) )
6867
69- const ifFile = (
70- /** @type {* } */ files ,
71- /** @type {* } */ t ,
72- /** @type {* } */ f ,
73- ) => ( arrify ( files ) . some ( ( /** @type {* } */ file ) => hasFile ( file ) ) ? t : f )
68+ /**
69+ * @param {string | string[] } stringOrArray
70+ */
71+ const liftStringArray = stringOrArray =>
72+ typeof stringOrArray === 'string' ? [ stringOrArray ] : stringOrArray
73+
74+ /**
75+ *
76+ * @template T
77+ * @template F
78+ *
79+ * @param {string | string[] } files
80+ * @param {T } t
81+ * @param {F } f
82+ */
83+ const ifFile = ( files , t , f ) =>
84+ liftStringArray ( files ) . some ( file => hasFile ( file ) ) ? t : f
7485
7586const getPkgName = ( ) => pkg . name
7687
77- const hasPkgProp = ( /** @type {* } */ props ) =>
78- arrify ( props ) . some ( ( /** @type {* } */ prop ) => has ( pkg , prop ) )
88+ /**
89+ * @param {string | string[] } props
90+ */
91+ const hasPkgProp = props => liftStringArray ( props ) . some ( prop => has ( pkg , prop ) )
7992
80- const hasPkgSubProp = ( /** @type {* } */ pkgProp ) => ( /** @type {* } */ props ) =>
81- hasPkgProp ( arrify ( props ) . map ( ( /** @type {* } */ p ) => `${ pkgProp } .${ p } ` ) )
93+ /**
94+ * @param {string } pkgProp
95+ */
96+ const hasPkgSubProp =
97+ pkgProp =>
98+ /**
99+ * @param {string | string[] } props
100+ * @returns
101+ */
102+ props =>
103+ hasPkgProp ( liftStringArray ( props ) . map ( p => `${ pkgProp } .${ p } ` ) )
82104
83105const ifPkgSubProp =
84106 ( /** @type {* } */ pkgProp ) =>
@@ -95,11 +117,17 @@ const hasAnyDep = (/** @type {*} */ args) =>
95117const ifPeerDep = ifPkgSubProp ( 'peerDependencies' )
96118const ifDep = ifPkgSubProp ( 'dependencies' )
97119const ifDevDep = ifPkgSubProp ( 'devDependencies' )
98- const ifAnyDep = (
99- /** @type {* } */ deps ,
100- /** @type {* } */ t ,
101- /** @type {* } */ f ,
102- ) => ( hasAnyDep ( arrify ( deps ) ) ? t : f )
120+
121+ /**
122+ * @template T
123+ * @template F
124+ *
125+ * @param {string | string[] } deps
126+ * @param {T } t
127+ * @param {F } f
128+ */
129+ const ifAnyDep = ( deps , t , f ) => ( hasAnyDep ( liftStringArray ( deps ) ) ? t : f )
130+
103131const ifScript = ifPkgSubProp ( 'scripts' )
104132
105133function parseEnv ( /** @type {string } */ name , /** @type {* } */ def ) {
0 commit comments