@react-native-community/cli-config 7.0.1 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018 react-native-community
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAa,MAAM,mCAAmC,CAAC;;;;;;AAuBrE,wBAME"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAmB,MAAM,mCAAmC,CAAC;;;;;;AAoB3E,wBAME"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
 
8
8
  function isValidRNDependency(config) {
9
- return Object.keys(config.platforms).filter(key => Boolean(config.platforms[key])).length !== 0 || config.hooks && Object.keys(config.hooks).length !== 0 || config.assets && config.assets.length !== 0 || config.params && config.params.length !== 0;
9
+ return Object.keys(config.platforms).filter(key => Boolean(config.platforms[key])).length !== 0;
10
10
  }
11
11
 
12
12
  function filterConfig(config) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/config.ts"],"names":["isValidRNDependency","config","Object","keys","platforms","filter","key","Boolean","length","hooks","assets","params","filterConfig","filtered","dependencies","forEach","item","name","description","func","_argv","ctx","console","log","JSON","stringify"],"mappings":";;;;;;;AAEA,SAASA,mBAAT,CAA6BC,MAA7B,EAAiD;AAC/C,SACEC,MAAM,CAACC,IAAP,CAAYF,MAAM,CAACG,SAAnB,EAA8BC,MAA9B,CAAsCC,GAAD,IACnCC,OAAO,CAACN,MAAM,CAACG,SAAP,CAAiBE,GAAjB,CAAD,CADT,EAEEE,MAFF,KAEa,CAFb,IAGCP,MAAM,CAACQ,KAAP,IAAgBP,MAAM,CAACC,IAAP,CAAYF,MAAM,CAACQ,KAAnB,EAA0BD,MAA1B,KAAqC,CAHtD,IAICP,MAAM,CAACS,MAAP,IAAiBT,MAAM,CAACS,MAAP,CAAcF,MAAd,KAAyB,CAJ3C,IAKCP,MAAM,CAACU,MAAP,IAAiBV,MAAM,CAACU,MAAP,CAAcH,MAAd,KAAyB,CAN7C;AAQD;;AAED,SAASI,YAAT,CAAsBX,MAAtB,EAAsC;AACpC,QAAMY,QAAQ,GAAG,EAAC,GAAGZ;AAAJ,GAAjB;AACAC,EAAAA,MAAM,CAACC,IAAP,CAAYU,QAAQ,CAACC,YAArB,EAAmCC,OAAnC,CAA4CC,IAAD,IAAU;AACnD,QAAI,CAAChB,mBAAmB,CAACa,QAAQ,CAACC,YAAT,CAAsBE,IAAtB,CAAD,CAAxB,EAAuD;AACrD,aAAOH,QAAQ,CAACC,YAAT,CAAsBE,IAAtB,CAAP;AACD;AACF,GAJD;AAKA,SAAOH,QAAP;AACD;;eAEc;AACbI,EAAAA,IAAI,EAAE,QADO;AAEbC,EAAAA,WAAW,EAAE,yBAFA;AAGbC,EAAAA,IAAI,EAAE,OAAOC,KAAP,EAAwBC,GAAxB,KAAwC;AAC5CC,IAAAA,OAAO,CAACC,GAAR,CAAYC,IAAI,CAACC,SAAL,CAAeb,YAAY,CAACS,GAAD,CAA3B,EAAkC,IAAlC,EAAwC,CAAxC,CAAZ;AACD;AALY,C","sourcesContent":["import {Config, Dependency} from '@react-native-community/cli-types';\n\nfunction isValidRNDependency(config: Dependency) {\n return (\n Object.keys(config.platforms).filter((key) =>\n Boolean(config.platforms[key]),\n ).length !== 0 ||\n (config.hooks && Object.keys(config.hooks).length !== 0) ||\n (config.assets && config.assets.length !== 0) ||\n (config.params && config.params.length !== 0)\n );\n}\n\nfunction filterConfig(config: Config) {\n const filtered = {...config};\n Object.keys(filtered.dependencies).forEach((item) => {\n if (!isValidRNDependency(filtered.dependencies[item])) {\n delete filtered.dependencies[item];\n }\n });\n return filtered;\n}\n\nexport default {\n name: 'config',\n description: 'Print CLI configuration',\n func: async (_argv: string[], ctx: Config) => {\n console.log(JSON.stringify(filterConfig(ctx), null, 2));\n },\n};\n"]}
1
+ {"version":3,"sources":["../../src/commands/config.ts"],"names":["isValidRNDependency","config","Object","keys","platforms","filter","key","Boolean","length","filterConfig","filtered","dependencies","forEach","item","name","description","func","_argv","ctx","console","log","JSON","stringify"],"mappings":";;;;;;;AAEA,SAASA,mBAAT,CAA6BC,MAA7B,EAAuD;AACrD,SACEC,MAAM,CAACC,IAAP,CAAYF,MAAM,CAACG,SAAnB,EAA8BC,MAA9B,CAAsCC,GAAD,IACnCC,OAAO,CAACN,MAAM,CAACG,SAAP,CAAiBE,GAAjB,CAAD,CADT,EAEEE,MAFF,KAEa,CAHf;AAKD;;AAED,SAASC,YAAT,CAAsBR,MAAtB,EAAsC;AACpC,QAAMS,QAAQ,GAAG,EAAC,GAAGT;AAAJ,GAAjB;AACAC,EAAAA,MAAM,CAACC,IAAP,CAAYO,QAAQ,CAACC,YAArB,EAAmCC,OAAnC,CAA4CC,IAAD,IAAU;AACnD,QAAI,CAACb,mBAAmB,CAACU,QAAQ,CAACC,YAAT,CAAsBE,IAAtB,CAAD,CAAxB,EAAuD;AACrD,aAAOH,QAAQ,CAACC,YAAT,CAAsBE,IAAtB,CAAP;AACD;AACF,GAJD;AAKA,SAAOH,QAAP;AACD;;eAEc;AACbI,EAAAA,IAAI,EAAE,QADO;AAEbC,EAAAA,WAAW,EAAE,yBAFA;AAGbC,EAAAA,IAAI,EAAE,OAAOC,KAAP,EAAwBC,GAAxB,KAAwC;AAC5CC,IAAAA,OAAO,CAACC,GAAR,CAAYC,IAAI,CAACC,SAAL,CAAeb,YAAY,CAACS,GAAD,CAA3B,EAAkC,IAAlC,EAAwC,CAAxC,CAAZ;AACD;AALY,C","sourcesContent":["import {Config, DependencyConfig} from '@react-native-community/cli-types';\n\nfunction isValidRNDependency(config: DependencyConfig) {\n return (\n Object.keys(config.platforms).filter((key) =>\n Boolean(config.platforms[key]),\n ).length !== 0\n );\n}\n\nfunction filterConfig(config: Config) {\n const filtered = {...config};\n Object.keys(filtered.dependencies).forEach((item) => {\n if (!isValidRNDependency(filtered.dependencies[item])) {\n delete filtered.dependencies[item];\n }\n });\n return filtered;\n}\n\nexport default {\n name: 'config',\n description: 'Print CLI configuration',\n func: async (_argv: string[], ctx: Config) => {\n console.log(JSON.stringify(filterConfig(ctx), null, 2));\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../src/loadConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,MAAM,EACP,MAAM,mCAAmC,CAAC;AAoD3C;;GAEG;AACH,iBAAS,UAAU,CAAC,WAAW,GAAE,MAA0B,GAAG,MAAM,CA2FnE;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../src/loadConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,MAAM,EACP,MAAM,mCAAmC,CAAC;AAgD3C;;GAEG;AACH,iBAAS,UAAU,CAAC,WAAW,GAAE,MAA0B,GAAG,MAAM,CAwFnE;AAED,eAAe,UAAU,CAAC"}
@@ -39,8 +39,6 @@ var _findDependencies = _interopRequireDefault(require("./findDependencies"));
39
39
 
40
40
  var _resolveReactNativePath = _interopRequireDefault(require("./resolveReactNativePath"));
41
41
 
42
- var _findAssets = _interopRequireDefault(require("./findAssets"));
43
-
44
42
  var _readConfigFromDisk = require("./readConfigFromDisk");
45
43
 
46
44
  var _assign = _interopRequireDefault(require("./assign"));
@@ -58,10 +56,7 @@ function getDependencyConfig(root, dependencyName, finalConfig, config, userConf
58
56
  dependency[platform] = // Linking platforms is not supported
59
57
  isPlatform || !platformConfig ? null : platformConfig.dependencyConfig(root, config.dependency.platforms[platform]);
60
58
  return dependency;
61
- }, {}),
62
- assets: (0, _findAssets.default)(root, config.dependency.assets),
63
- hooks: config.dependency.hooks,
64
- params: config.dependency.params
59
+ }, {})
65
60
  }, userConfig.dependencies[dependencyName] || {});
66
61
  }
67
62
  /**
@@ -81,11 +76,6 @@ function loadConfig(projectRoot = (0, _cliTools().findProjectRoot)()) {
81
76
 
82
77
  dependencies: userConfig.dependencies,
83
78
  commands: userConfig.commands,
84
-
85
- get assets() {
86
- return (0, _findAssets.default)(projectRoot, userConfig.assets);
87
- },
88
-
89
79
  healthChecks: [],
90
80
  platforms: userConfig.platforms,
91
81
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/loadConfig.ts"],"names":["getDependencyConfig","root","dependencyName","finalConfig","config","userConfig","isPlatform","name","platforms","Object","keys","reduce","dependency","platform","platformConfig","dependencyConfig","assets","hooks","params","dependencies","loadConfig","projectRoot","lazyProject","initialConfig","reactNativePath","path","resolve","commands","healthChecks","project","projectConfig","Array","from","Set","acc","localDependencyRoot","error","logger","warn","chalk","bold","dim","message","length"],"mappings":"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","sourcesContent":["import path from 'path';\nimport chalk from 'chalk';\nimport {\n UserDependencyConfig,\n ProjectConfig,\n Dependency,\n UserConfig,\n Config,\n} from '@react-native-community/cli-types';\nimport {\n logger,\n inlineString,\n findProjectRoot,\n resolveNodeModuleDir,\n} from '@react-native-community/cli-tools';\nimport findDependencies from './findDependencies';\nimport resolveReactNativePath from './resolveReactNativePath';\nimport findAssets from './findAssets';\nimport {\n readConfigFromDisk,\n readDependencyConfigFromDisk,\n} from './readConfigFromDisk';\nimport assign from './assign';\nimport merge from './merge';\n\nfunction getDependencyConfig(\n root: string,\n dependencyName: string,\n finalConfig: Config,\n config: UserDependencyConfig,\n userConfig: UserConfig,\n isPlatform: boolean,\n): Dependency {\n return merge(\n {\n root,\n name: dependencyName,\n platforms: Object.keys(finalConfig.platforms).reduce(\n (dependency, platform) => {\n const platformConfig = finalConfig.platforms[platform];\n dependency[platform] =\n // Linking platforms is not supported\n isPlatform || !platformConfig\n ? null\n : platformConfig.dependencyConfig(\n root,\n config.dependency.platforms[platform],\n );\n return dependency;\n },\n {} as Config['platforms'],\n ),\n assets: findAssets(root, config.dependency.assets),\n hooks: config.dependency.hooks,\n params: config.dependency.params,\n },\n userConfig.dependencies[dependencyName] || {},\n ) as Dependency;\n}\n\n/**\n * Loads CLI configuration\n */\nfunction loadConfig(projectRoot: string = findProjectRoot()): Config {\n let lazyProject: ProjectConfig;\n const userConfig = readConfigFromDisk(projectRoot);\n\n const initialConfig: Config = {\n root: projectRoot,\n get reactNativePath() {\n return userConfig.reactNativePath\n ? path.resolve(projectRoot, userConfig.reactNativePath)\n : resolveReactNativePath(projectRoot);\n },\n dependencies: userConfig.dependencies,\n commands: userConfig.commands,\n get assets() {\n return findAssets(projectRoot, userConfig.assets);\n },\n healthChecks: [],\n platforms: userConfig.platforms,\n get project() {\n if (lazyProject) {\n return lazyProject;\n }\n\n lazyProject = {};\n for (const platform in finalConfig.platforms) {\n const platformConfig = finalConfig.platforms[platform];\n if (platformConfig) {\n lazyProject[platform] = platformConfig.projectConfig(\n projectRoot,\n userConfig.project[platform] || {},\n );\n }\n }\n\n return lazyProject;\n },\n };\n\n const finalConfig = Array.from(\n new Set([\n ...Object.keys(userConfig.dependencies),\n ...findDependencies(projectRoot),\n ]),\n ).reduce((acc: Config, dependencyName) => {\n const localDependencyRoot =\n userConfig.dependencies[dependencyName] &&\n userConfig.dependencies[dependencyName].root;\n let root: string;\n let config: UserDependencyConfig;\n try {\n root =\n localDependencyRoot ||\n resolveNodeModuleDir(projectRoot, dependencyName);\n config = readDependencyConfigFromDisk(root);\n } catch (error) {\n logger.warn(\n inlineString(`\n Package ${chalk.bold(\n dependencyName,\n )} has been ignored because it contains invalid configuration.\n\n Reason: ${chalk.dim(error.message)}`),\n );\n return acc;\n }\n\n const isPlatform = Object.keys(config.platforms).length > 0;\n\n return assign({}, acc, {\n dependencies: assign({}, acc.dependencies, {\n get [dependencyName](): Dependency {\n return getDependencyConfig(\n root,\n dependencyName,\n finalConfig,\n config,\n userConfig,\n isPlatform,\n );\n },\n }),\n commands: [...acc.commands, ...config.commands],\n platforms: {\n ...acc.platforms,\n ...config.platforms,\n },\n healthChecks: [...acc.healthChecks, ...config.healthChecks],\n }) as Config;\n }, initialConfig);\n\n return finalConfig;\n}\n\nexport default loadConfig;\n"]}
1
+ {"version":3,"sources":["../src/loadConfig.ts"],"names":["getDependencyConfig","root","dependencyName","finalConfig","config","userConfig","isPlatform","name","platforms","Object","keys","reduce","dependency","platform","platformConfig","dependencyConfig","dependencies","loadConfig","projectRoot","lazyProject","initialConfig","reactNativePath","path","resolve","commands","healthChecks","project","projectConfig","Array","from","Set","acc","localDependencyRoot","error","logger","warn","chalk","bold","dim","message","length"],"mappings":"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","sourcesContent":["import path from 'path';\nimport chalk from 'chalk';\nimport {\n UserDependencyConfig,\n ProjectConfig,\n DependencyConfig,\n UserConfig,\n Config,\n} from '@react-native-community/cli-types';\nimport {\n logger,\n inlineString,\n findProjectRoot,\n resolveNodeModuleDir,\n} from '@react-native-community/cli-tools';\nimport findDependencies from './findDependencies';\nimport resolveReactNativePath from './resolveReactNativePath';\nimport {\n readConfigFromDisk,\n readDependencyConfigFromDisk,\n} from './readConfigFromDisk';\nimport assign from './assign';\nimport merge from './merge';\n\nfunction getDependencyConfig(\n root: string,\n dependencyName: string,\n finalConfig: Config,\n config: UserDependencyConfig,\n userConfig: UserConfig,\n isPlatform: boolean,\n): DependencyConfig {\n return merge(\n {\n root,\n name: dependencyName,\n platforms: Object.keys(finalConfig.platforms).reduce(\n (dependency, platform) => {\n const platformConfig = finalConfig.platforms[platform];\n dependency[platform] =\n // Linking platforms is not supported\n isPlatform || !platformConfig\n ? null\n : platformConfig.dependencyConfig(\n root,\n config.dependency.platforms[platform],\n );\n return dependency;\n },\n {} as Config['platforms'],\n ),\n },\n userConfig.dependencies[dependencyName] || {},\n ) as DependencyConfig;\n}\n\n/**\n * Loads CLI configuration\n */\nfunction loadConfig(projectRoot: string = findProjectRoot()): Config {\n let lazyProject: ProjectConfig;\n const userConfig = readConfigFromDisk(projectRoot);\n\n const initialConfig: Config = {\n root: projectRoot,\n get reactNativePath() {\n return userConfig.reactNativePath\n ? path.resolve(projectRoot, userConfig.reactNativePath)\n : resolveReactNativePath(projectRoot);\n },\n dependencies: userConfig.dependencies,\n commands: userConfig.commands,\n healthChecks: [],\n platforms: userConfig.platforms,\n get project() {\n if (lazyProject) {\n return lazyProject;\n }\n\n lazyProject = {};\n for (const platform in finalConfig.platforms) {\n const platformConfig = finalConfig.platforms[platform];\n if (platformConfig) {\n lazyProject[platform] = platformConfig.projectConfig(\n projectRoot,\n userConfig.project[platform] || {},\n );\n }\n }\n\n return lazyProject;\n },\n };\n\n const finalConfig = Array.from(\n new Set([\n ...Object.keys(userConfig.dependencies),\n ...findDependencies(projectRoot),\n ]),\n ).reduce((acc: Config, dependencyName) => {\n const localDependencyRoot =\n userConfig.dependencies[dependencyName] &&\n userConfig.dependencies[dependencyName].root;\n let root: string;\n let config: UserDependencyConfig;\n try {\n root =\n localDependencyRoot ||\n resolveNodeModuleDir(projectRoot, dependencyName);\n config = readDependencyConfigFromDisk(root);\n } catch (error) {\n logger.warn(\n inlineString(`\n Package ${chalk.bold(\n dependencyName,\n )} has been ignored because it contains invalid configuration.\n\n Reason: ${chalk.dim(error.message)}`),\n );\n return acc;\n }\n\n const isPlatform = Object.keys(config.platforms).length > 0;\n\n return assign({}, acc, {\n dependencies: assign({}, acc.dependencies, {\n get [dependencyName](): DependencyConfig {\n return getDependencyConfig(\n root,\n dependencyName,\n finalConfig,\n config,\n userConfig,\n isPlatform,\n );\n },\n }),\n commands: [...acc.commands, ...config.commands],\n platforms: {\n ...acc.platforms,\n ...config.platforms,\n },\n healthChecks: [...acc.healthChecks, ...config.healthChecks],\n }) as Config;\n }, initialConfig);\n\n return finalConfig;\n}\n\nexport default loadConfig;\n"]}
@@ -74,10 +74,7 @@ function readDependencyConfigFromDisk(rootFolder) {
74
74
 
75
75
  const emptyDependencyConfig = {
76
76
  dependency: {
77
- platforms: {},
78
- assets: [],
79
- hooks: {},
80
- params: []
77
+ platforms: {}
81
78
  },
82
79
  commands: [],
83
80
  platforms: {}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/readConfigFromDisk.ts"],"names":["searchPlaces","readConfigFromDisk","rootFolder","explorer","stopDir","searchResult","searchSync","config","undefined","result","schema","projectConfig","validate","error","JoiError","value","readDependencyConfigFromDisk","emptyDependencyConfig","dependencyConfig","dependency","platforms","assets","hooks","params","commands"],"mappings":";;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AACA;;;;;;;;AAMA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,CAAC,wBAAD,CAArB;AAEA;AACA;AACA;AACA;;AACO,SAASC,kBAAT,CAA4BC,UAA5B,EAA4D;AACjE,QAAMC,QAAQ,GAAG,4BAAY,cAAZ,EAA4B;AAC3CH,IAAAA,YAD2C;AAE3CI,IAAAA,OAAO,EAAEF;AAFkC,GAA5B,CAAjB;AAKA,QAAMG,YAAY,GAAGF,QAAQ,CAACG,UAAT,CAAoBJ,UAApB,CAArB;AACA,QAAMK,MAAM,GAAGF,YAAY,GAAGA,YAAY,CAACE,MAAhB,GAAyBC,SAApD;AACA,QAAMC,MAAM,GAAGC,MAAM,CAACC,aAAP,CAAqBC,QAArB,CAA8BL,MAA9B,CAAf;;AAEA,MAAIE,MAAM,CAACI,KAAX,EAAkB;AAChB,UAAM,IAAIC,gBAAJ,CAAaL,MAAM,CAACI,KAApB,CAAN;AACD;;AAED,SAAOJ,MAAM,CAACM,KAAd;AACD;AAED;AACA;AACA;AACA;;;AACO,SAASC,4BAAT,CACLd,UADK,EAEiB;AACtB,QAAMC,QAAQ,GAAG,4BAAY,cAAZ,EAA4B;AAC3CC,IAAAA,OAAO,EAAEF,UADkC;AAE3CF,IAAAA;AAF2C,GAA5B,CAAjB;AAKA,QAAMK,YAAY,GAAGF,QAAQ,CAACG,UAAT,CAAoBJ,UAApB,CAArB;AACA,QAAMK,MAAM,GAAGF,YAAY,GAAGA,YAAY,CAACE,MAAhB,GAAyBU,qBAApD;AAEA,QAAMR,MAAM,GAAGC,MAAM,CAACQ,gBAAP,CAAwBN,QAAxB,CAAiCL,MAAjC,CAAf;;AAEA,MAAIE,MAAM,CAACI,KAAX,EAAkB;AAChB,UAAM,IAAIC,gBAAJ,CAAaL,MAAM,CAACI,KAApB,CAAN;AACD;;AAED,SAAOJ,MAAM,CAACM,KAAd;AACD;;AAED,MAAME,qBAAqB,GAAG;AAC5BE,EAAAA,UAAU,EAAE;AACVC,IAAAA,SAAS,EAAE,EADD;AAEVC,IAAAA,MAAM,EAAE,EAFE;AAGVC,IAAAA,KAAK,EAAE,EAHG;AAIVC,IAAAA,MAAM,EAAE;AAJE,GADgB;AAO5BC,EAAAA,QAAQ,EAAE,EAPkB;AAQ5BJ,EAAAA,SAAS,EAAE;AARiB,CAA9B","sourcesContent":["import cosmiconfig from 'cosmiconfig';\nimport {JoiError} from './errors';\nimport * as schema from './schema';\nimport {\n UserConfig,\n UserDependencyConfig,\n} from '@react-native-community/cli-types';\n\n/**\n * Places to look for the configuration file.\n */\nconst searchPlaces = ['react-native.config.js'];\n\n/**\n * Reads a project configuration as defined by the user in the current\n * workspace.\n */\nexport function readConfigFromDisk(rootFolder: string): UserConfig {\n const explorer = cosmiconfig('react-native', {\n searchPlaces,\n stopDir: rootFolder,\n });\n\n const searchResult = explorer.searchSync(rootFolder);\n const config = searchResult ? searchResult.config : undefined;\n const result = schema.projectConfig.validate(config);\n\n if (result.error) {\n throw new JoiError(result.error);\n }\n\n return result.value as UserConfig;\n}\n\n/**\n * Reads a dependency configuration as defined by the developer\n * inside `node_modules`.\n */\nexport function readDependencyConfigFromDisk(\n rootFolder: string,\n): UserDependencyConfig {\n const explorer = cosmiconfig('react-native', {\n stopDir: rootFolder,\n searchPlaces,\n });\n\n const searchResult = explorer.searchSync(rootFolder);\n const config = searchResult ? searchResult.config : emptyDependencyConfig;\n\n const result = schema.dependencyConfig.validate(config);\n\n if (result.error) {\n throw new JoiError(result.error);\n }\n\n return result.value as UserDependencyConfig;\n}\n\nconst emptyDependencyConfig = {\n dependency: {\n platforms: {},\n assets: [],\n hooks: {},\n params: [],\n },\n commands: [],\n platforms: {},\n};\n"]}
1
+ {"version":3,"sources":["../src/readConfigFromDisk.ts"],"names":["searchPlaces","readConfigFromDisk","rootFolder","explorer","stopDir","searchResult","searchSync","config","undefined","result","schema","projectConfig","validate","error","JoiError","value","readDependencyConfigFromDisk","emptyDependencyConfig","dependencyConfig","dependency","platforms","commands"],"mappings":";;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AACA;;;;;;;;AAMA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,CAAC,wBAAD,CAArB;AAEA;AACA;AACA;AACA;;AACO,SAASC,kBAAT,CAA4BC,UAA5B,EAA4D;AACjE,QAAMC,QAAQ,GAAG,4BAAY,cAAZ,EAA4B;AAC3CH,IAAAA,YAD2C;AAE3CI,IAAAA,OAAO,EAAEF;AAFkC,GAA5B,CAAjB;AAKA,QAAMG,YAAY,GAAGF,QAAQ,CAACG,UAAT,CAAoBJ,UAApB,CAArB;AACA,QAAMK,MAAM,GAAGF,YAAY,GAAGA,YAAY,CAACE,MAAhB,GAAyBC,SAApD;AACA,QAAMC,MAAM,GAAGC,MAAM,CAACC,aAAP,CAAqBC,QAArB,CAA8BL,MAA9B,CAAf;;AAEA,MAAIE,MAAM,CAACI,KAAX,EAAkB;AAChB,UAAM,IAAIC,gBAAJ,CAAaL,MAAM,CAACI,KAApB,CAAN;AACD;;AAED,SAAOJ,MAAM,CAACM,KAAd;AACD;AAED;AACA;AACA;AACA;;;AACO,SAASC,4BAAT,CACLd,UADK,EAEiB;AACtB,QAAMC,QAAQ,GAAG,4BAAY,cAAZ,EAA4B;AAC3CC,IAAAA,OAAO,EAAEF,UADkC;AAE3CF,IAAAA;AAF2C,GAA5B,CAAjB;AAKA,QAAMK,YAAY,GAAGF,QAAQ,CAACG,UAAT,CAAoBJ,UAApB,CAArB;AACA,QAAMK,MAAM,GAAGF,YAAY,GAAGA,YAAY,CAACE,MAAhB,GAAyBU,qBAApD;AAEA,QAAMR,MAAM,GAAGC,MAAM,CAACQ,gBAAP,CAAwBN,QAAxB,CAAiCL,MAAjC,CAAf;;AAEA,MAAIE,MAAM,CAACI,KAAX,EAAkB;AAChB,UAAM,IAAIC,gBAAJ,CAAaL,MAAM,CAACI,KAApB,CAAN;AACD;;AAED,SAAOJ,MAAM,CAACM,KAAd;AACD;;AAED,MAAME,qBAAqB,GAAG;AAC5BE,EAAAA,UAAU,EAAE;AACVC,IAAAA,SAAS,EAAE;AADD,GADgB;AAI5BC,EAAAA,QAAQ,EAAE,EAJkB;AAK5BD,EAAAA,SAAS,EAAE;AALiB,CAA9B","sourcesContent":["import cosmiconfig from 'cosmiconfig';\nimport {JoiError} from './errors';\nimport * as schema from './schema';\nimport {\n UserConfig,\n UserDependencyConfig,\n} from '@react-native-community/cli-types';\n\n/**\n * Places to look for the configuration file.\n */\nconst searchPlaces = ['react-native.config.js'];\n\n/**\n * Reads a project configuration as defined by the user in the current\n * workspace.\n */\nexport function readConfigFromDisk(rootFolder: string): UserConfig {\n const explorer = cosmiconfig('react-native', {\n searchPlaces,\n stopDir: rootFolder,\n });\n\n const searchResult = explorer.searchSync(rootFolder);\n const config = searchResult ? searchResult.config : undefined;\n const result = schema.projectConfig.validate(config);\n\n if (result.error) {\n throw new JoiError(result.error);\n }\n\n return result.value as UserConfig;\n}\n\n/**\n * Reads a dependency configuration as defined by the developer\n * inside `node_modules`.\n */\nexport function readDependencyConfigFromDisk(\n rootFolder: string,\n): UserDependencyConfig {\n const explorer = cosmiconfig('react-native', {\n stopDir: rootFolder,\n searchPlaces,\n });\n\n const searchResult = explorer.searchSync(rootFolder);\n const config = searchResult ? searchResult.config : emptyDependencyConfig;\n\n const result = schema.dependencyConfig.validate(config);\n\n if (result.error) {\n throw new JoiError(result.error);\n }\n\n return result.value as UserDependencyConfig;\n}\n\nconst emptyDependencyConfig = {\n dependency: {\n platforms: {},\n },\n commands: [],\n platforms: {},\n};\n"]}
package/build/schema.d.ts CHANGED
@@ -1,10 +1,17 @@
1
+ /**
2
+ * This schema is used by `cli-config` to validate the structure. Make sure
3
+ * this file stays up to date with `cli-types` package.
4
+ *
5
+ * In the future, it would be great to generate this file automatically from the
6
+ * Typescript types.
7
+ */
1
8
  import t from 'joi';
2
9
  /**
3
- * Schema for UserDependencyConfigT
10
+ * Schema for UserDependencyConfig
4
11
  */
5
12
  export declare const dependencyConfig: t.ObjectSchema<any>;
6
13
  /**
7
- * Schema for ProjectConfigT
14
+ * Schema for ProjectConfig
8
15
  */
9
16
  export declare const projectConfig: t.ObjectSchema<any>;
10
17
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAe,MAAM,KAAK,CAAC;AAoDlC;;GAEG;AACH,eAAO,MAAM,gBAAgB,qBAuDjB,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,aAAa,qBAqFd,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,CAAe,MAAM,KAAK,CAAC;AAoDlC;;GAEG;AACH,eAAO,MAAM,gBAAgB,qBA0CjB,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,aAAa,qBAgEd,CAAC"}
package/build/schema.js CHANGED
@@ -17,6 +17,13 @@ function _joi() {
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
+ /**
21
+ * This schema is used by `cli-config` to validate the structure. Make sure
22
+ * this file stays up to date with `cli-types` package.
23
+ *
24
+ * In the future, it would be great to generate this file automatically from the
25
+ * Typescript types.
26
+ */
20
27
  const map = (key, value) => _joi().default.object().unknown(true).pattern(key, value);
21
28
  /**
22
29
  * Schema for CommandT
@@ -60,37 +67,29 @@ const healthCheck = _joi().default.object({
60
67
  }))
61
68
  });
62
69
  /**
63
- * Schema for UserDependencyConfigT
70
+ * Schema for UserDependencyConfig
64
71
  */
65
72
 
66
73
 
67
74
  const dependencyConfig = _joi().default.object({
68
75
  dependency: _joi().default.object({
69
76
  platforms: map(_joi().default.string(), _joi().default.any()).keys({
70
- ios: _joi().default.object({
71
- project: _joi().default.string(),
72
- podspecPath: _joi().default.string(),
73
- sharedLibraries: _joi().default.array().items(_joi().default.string()),
74
- libraryFolder: _joi().default.string(),
75
- scriptPhases: _joi().default.array().items(_joi().default.object()),
77
+ ios: _joi().default // IOSDependencyParams
78
+ .object({
79
+ scriptPhases: _joi().default.array().items(_joi().default.string()),
76
80
  configurations: _joi().default.array().items(_joi().default.string()).default([])
77
81
  }).default({}),
78
- android: _joi().default.object({
82
+ android: _joi().default // AndroidDependencyParams
83
+ .object({
79
84
  sourceDir: _joi().default.string(),
80
85
  manifestPath: _joi().default.string(),
86
+ packageName: _joi().default.string(),
81
87
  packageImportPath: _joi().default.string(),
82
88
  packageInstance: _joi().default.string(),
83
89
  dependencyConfiguration: _joi().default.string(),
84
90
  buildTypes: _joi().default.array().items(_joi().default.string()).default([])
85
91
  }).default({})
86
- }).default(),
87
- assets: _joi().default.array().items(_joi().default.string()).default([]),
88
- hooks: map(_joi().default.string(), _joi().default.string()).default({}),
89
- params: _joi().default.array().items(_joi().default.object({
90
- name: _joi().default.string(),
91
- type: _joi().default.string(),
92
- message: _joi().default.string()
93
- })).default([])
92
+ }).default()
94
93
  }).default(),
95
94
  platforms: map(_joi().default.string(), _joi().default.object({
96
95
  npmPackageName: _joi().default.string().optional(),
@@ -102,7 +101,7 @@ const dependencyConfig = _joi().default.object({
102
101
  healthChecks: _joi().default.array().items(healthCheck).default([])
103
102
  }).unknown(true).default();
104
103
  /**
105
- * Schema for ProjectConfigT
104
+ * Schema for ProjectConfig
106
105
  */
107
106
 
108
107
 
@@ -112,53 +111,34 @@ const projectConfig = _joi().default.object({
112
111
  dependencies: map(_joi().default.string(), _joi().default.object({
113
112
  root: _joi().default.string(),
114
113
  platforms: map(_joi().default.string(), _joi().default.any()).keys({
115
- ios: _joi().default.object({
116
- sourceDir: _joi().default.string(),
117
- folder: _joi().default.string(),
118
- pbxprojPath: _joi().default.string(),
119
- podfile: _joi().default.string(),
114
+ ios: _joi().default // IOSDependencyConfig
115
+ .object({
120
116
  podspecPath: _joi().default.string(),
121
- projectPath: _joi().default.string(),
122
- projectName: _joi().default.string(),
123
- libraryFolder: _joi().default.string(),
124
- sharedLibraries: _joi().default.array().items(_joi().default.string()),
125
- configurations: _joi().default.array().items(_joi().default.string()).default([])
117
+ configurations: _joi().default.array().items(_joi().default.string()).default([]),
118
+ scriptPhases: _joi().default.array().items(_joi().default.string()).default([])
126
119
  }).allow(null),
127
- android: _joi().default.object({
120
+ android: _joi().default // AndroidDependencyConfig
121
+ .object({
128
122
  sourceDir: _joi().default.string(),
129
- folder: _joi().default.string(),
130
123
  packageImportPath: _joi().default.string(),
131
124
  packageInstance: _joi().default.string(),
132
125
  dependencyConfiguration: _joi().default.string(),
133
126
  buildTypes: _joi().default.array().items(_joi().default.string()).default([])
134
127
  }).allow(null)
135
- }),
136
- assets: _joi().default.array().items(_joi().default.string()),
137
- hooks: map(_joi().default.string(), _joi().default.string()),
138
- params: _joi().default.array().items(_joi().default.object({
139
- name: _joi().default.string(),
140
- type: _joi().default.string(),
141
- message: _joi().default.string()
142
- }))
128
+ })
143
129
  }).allow(null)).default({}),
144
130
  reactNativePath: _joi().default.string(),
145
131
  project: map(_joi().default.string(), _joi().default.any()).keys({
146
- ios: _joi().default.object({
147
- project: _joi().default.string(),
148
- sharedLibraries: _joi().default.array().items(_joi().default.string()),
149
- libraryFolder: _joi().default.string()
132
+ ios: _joi().default // IOSProjectParams
133
+ .object({
134
+ sourceDir: _joi().default.string()
150
135
  }).default({}),
151
- android: _joi().default.object({
136
+ android: _joi().default // AndroidProjectParams
137
+ .object({
152
138
  sourceDir: _joi().default.string(),
139
+ appName: _joi().default.string(),
153
140
  manifestPath: _joi().default.string(),
154
141
  packageName: _joi().default.string(),
155
- packageFolder: _joi().default.string(),
156
- mainFilePath: _joi().default.string(),
157
- stringsPath: _joi().default.string(),
158
- settingsGradlePath: _joi().default.string(),
159
- assetsPath: _joi().default.string(),
160
- buildGradlePath: _joi().default.string(),
161
- appName: _joi().default.string(),
162
142
  dependencyConfiguration: _joi().default.string()
163
143
  }).default({})
164
144
  }).default(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema.ts"],"names":["map","key","value","t","object","unknown","pattern","command","name","string","required","description","usage","func","options","array","items","parse","default","alternatives","try","bool","number","allow","rename","ignoreUndefined","examples","desc","cmd","healthCheck","label","healthchecks","isRequired","getDiagnostics","win32AutomaticFix","darwinAutomaticFix","linuxAutomaticFix","runAutomaticFix","dependencyConfig","dependency","platforms","any","keys","ios","project","podspecPath","sharedLibraries","libraryFolder","scriptPhases","configurations","android","sourceDir","manifestPath","packageImportPath","packageInstance","dependencyConfiguration","buildTypes","assets","hooks","params","type","message","npmPackageName","optional","projectConfig","linkConfig","commands","healthChecks","dependencies","root","folder","pbxprojPath","podfile","projectPath","projectName","reactNativePath","packageName","packageFolder","mainFilePath","stringsPath","settingsGradlePath","assetsPath","buildGradlePath","appName"],"mappings":"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","sourcesContent":["import t, {SchemaLike} from 'joi';\n\nconst map = (key: RegExp | SchemaLike, value: SchemaLike) =>\n t.object().unknown(true).pattern(key, value);\n\n/**\n * Schema for CommandT\n */\nconst command = t.object({\n name: t.string().required(),\n description: t.string(),\n usage: t.string(),\n func: t.func().required(),\n options: t.array().items(\n t\n .object({\n name: t.string().required(),\n description: t.string(),\n parse: t.func(),\n default: t\n .alternatives()\n .try(t.bool(), t.number(), t.string().allow(''), t.func()),\n })\n .rename('command', 'name', {ignoreUndefined: true}),\n ),\n examples: t.array().items(\n t.object({\n desc: t.string().required(),\n cmd: t.string().required(),\n }),\n ),\n});\n\n/**\n * Schema for HealthChecksT\n */\nconst healthCheck = t.object({\n label: t.string().required(),\n healthchecks: t.array().items(\n t.object({\n label: t.string().required(),\n isRequired: t.bool(),\n description: t.string(),\n getDiagnostics: t.func(),\n win32AutomaticFix: t.func(),\n darwinAutomaticFix: t.func(),\n linuxAutomaticFix: t.func(),\n runAutomaticFix: t.func().required(),\n }),\n ),\n});\n\n/**\n * Schema for UserDependencyConfigT\n */\nexport const dependencyConfig = t\n .object({\n dependency: t\n .object({\n platforms: map(t.string(), t.any())\n .keys({\n ios: t\n .object({\n project: t.string(),\n podspecPath: t.string(),\n sharedLibraries: t.array().items(t.string()),\n libraryFolder: t.string(),\n scriptPhases: t.array().items(t.object()),\n configurations: t.array().items(t.string()).default([]),\n })\n .default({}),\n android: t\n .object({\n sourceDir: t.string(),\n manifestPath: t.string(),\n packageImportPath: t.string(),\n packageInstance: t.string(),\n dependencyConfiguration: t.string(),\n buildTypes: t.array().items(t.string()).default([]),\n })\n .default({}),\n })\n .default(),\n assets: t.array().items(t.string()).default([]),\n hooks: map(t.string(), t.string()).default({}),\n params: t\n .array()\n .items(\n t.object({\n name: t.string(),\n type: t.string(),\n message: t.string(),\n }),\n )\n .default([]),\n })\n .default(),\n platforms: map(\n t.string(),\n t.object({\n npmPackageName: t.string().optional(),\n dependencyConfig: t.func(),\n projectConfig: t.func(),\n linkConfig: t.func(),\n }),\n ).default({}),\n commands: t.array().items(command).default([]),\n healthChecks: t.array().items(healthCheck).default([]),\n })\n .unknown(true)\n .default();\n\n/**\n * Schema for ProjectConfigT\n */\nexport const projectConfig = t\n .object({\n dependencies: map(\n t.string(),\n t\n .object({\n root: t.string(),\n platforms: map(t.string(), t.any()).keys({\n ios: t\n .object({\n sourceDir: t.string(),\n folder: t.string(),\n pbxprojPath: t.string(),\n podfile: t.string(),\n podspecPath: t.string(),\n projectPath: t.string(),\n projectName: t.string(),\n libraryFolder: t.string(),\n sharedLibraries: t.array().items(t.string()),\n configurations: t.array().items(t.string()).default([]),\n })\n .allow(null),\n android: t\n .object({\n sourceDir: t.string(),\n folder: t.string(),\n packageImportPath: t.string(),\n packageInstance: t.string(),\n dependencyConfiguration: t.string(),\n buildTypes: t.array().items(t.string()).default([]),\n })\n .allow(null),\n }),\n assets: t.array().items(t.string()),\n hooks: map(t.string(), t.string()),\n params: t.array().items(\n t.object({\n name: t.string(),\n type: t.string(),\n message: t.string(),\n }),\n ),\n })\n .allow(null),\n ).default({}),\n reactNativePath: t.string(),\n project: map(t.string(), t.any())\n .keys({\n ios: t\n .object({\n project: t.string(),\n sharedLibraries: t.array().items(t.string()),\n libraryFolder: t.string(),\n })\n .default({}),\n android: t\n .object({\n sourceDir: t.string(),\n manifestPath: t.string(),\n packageName: t.string(),\n packageFolder: t.string(),\n mainFilePath: t.string(),\n stringsPath: t.string(),\n settingsGradlePath: t.string(),\n assetsPath: t.string(),\n buildGradlePath: t.string(),\n appName: t.string(),\n dependencyConfiguration: t.string(),\n })\n .default({}),\n })\n .default(),\n assets: t.array().items(t.string()).default([]),\n commands: t.array().items(command).default([]),\n platforms: map(\n t.string(),\n t.object({\n npmPackageName: t.string().optional(),\n dependencyConfig: t.func(),\n projectConfig: t.func(),\n linkConfig: t.func(),\n }),\n ).default({}),\n })\n .unknown(true)\n .default();\n"]}
1
+ {"version":3,"sources":["../src/schema.ts"],"names":["map","key","value","t","object","unknown","pattern","command","name","string","required","description","usage","func","options","array","items","parse","default","alternatives","try","bool","number","allow","rename","ignoreUndefined","examples","desc","cmd","healthCheck","label","healthchecks","isRequired","getDiagnostics","win32AutomaticFix","darwinAutomaticFix","linuxAutomaticFix","runAutomaticFix","dependencyConfig","dependency","platforms","any","keys","ios","scriptPhases","configurations","android","sourceDir","manifestPath","packageName","packageImportPath","packageInstance","dependencyConfiguration","buildTypes","npmPackageName","optional","projectConfig","linkConfig","commands","healthChecks","dependencies","root","podspecPath","reactNativePath","project","appName","assets"],"mappings":"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","sourcesContent":["/**\n * This schema is used by `cli-config` to validate the structure. Make sure\n * this file stays up to date with `cli-types` package.\n *\n * In the future, it would be great to generate this file automatically from the\n * Typescript types.\n */\nimport t, {SchemaLike} from 'joi';\n\nconst map = (key: RegExp | SchemaLike, value: SchemaLike) =>\n t.object().unknown(true).pattern(key, value);\n\n/**\n * Schema for CommandT\n */\nconst command = t.object({\n name: t.string().required(),\n description: t.string(),\n usage: t.string(),\n func: t.func().required(),\n options: t.array().items(\n t\n .object({\n name: t.string().required(),\n description: t.string(),\n parse: t.func(),\n default: t\n .alternatives()\n .try(t.bool(), t.number(), t.string().allow(''), t.func()),\n })\n .rename('command', 'name', {ignoreUndefined: true}),\n ),\n examples: t.array().items(\n t.object({\n desc: t.string().required(),\n cmd: t.string().required(),\n }),\n ),\n});\n\n/**\n * Schema for HealthChecksT\n */\nconst healthCheck = t.object({\n label: t.string().required(),\n healthchecks: t.array().items(\n t.object({\n label: t.string().required(),\n isRequired: t.bool(),\n description: t.string(),\n getDiagnostics: t.func(),\n win32AutomaticFix: t.func(),\n darwinAutomaticFix: t.func(),\n linuxAutomaticFix: t.func(),\n runAutomaticFix: t.func().required(),\n }),\n ),\n});\n\n/**\n * Schema for UserDependencyConfig\n */\nexport const dependencyConfig = t\n .object({\n dependency: t\n .object({\n platforms: map(t.string(), t.any())\n .keys({\n ios: t\n // IOSDependencyParams\n .object({\n scriptPhases: t.array().items(t.string()),\n configurations: t.array().items(t.string()).default([]),\n })\n .default({}),\n android: t\n // AndroidDependencyParams\n .object({\n sourceDir: t.string(),\n manifestPath: t.string(),\n packageName: t.string(),\n packageImportPath: t.string(),\n packageInstance: t.string(),\n dependencyConfiguration: t.string(),\n buildTypes: t.array().items(t.string()).default([]),\n })\n .default({}),\n })\n .default(),\n })\n .default(),\n platforms: map(\n t.string(),\n t.object({\n npmPackageName: t.string().optional(),\n dependencyConfig: t.func(),\n projectConfig: t.func(),\n linkConfig: t.func(),\n }),\n ).default({}),\n commands: t.array().items(command).default([]),\n healthChecks: t.array().items(healthCheck).default([]),\n })\n .unknown(true)\n .default();\n\n/**\n * Schema for ProjectConfig\n */\nexport const projectConfig = t\n .object({\n dependencies: map(\n t.string(),\n t\n .object({\n root: t.string(),\n platforms: map(t.string(), t.any()).keys({\n ios: t\n // IOSDependencyConfig\n .object({\n podspecPath: t.string(),\n configurations: t.array().items(t.string()).default([]),\n scriptPhases: t.array().items(t.string()).default([]),\n })\n .allow(null),\n android: t\n // AndroidDependencyConfig\n .object({\n sourceDir: t.string(),\n packageImportPath: t.string(),\n packageInstance: t.string(),\n dependencyConfiguration: t.string(),\n buildTypes: t.array().items(t.string()).default([]),\n })\n .allow(null),\n }),\n })\n .allow(null),\n ).default({}),\n reactNativePath: t.string(),\n project: map(t.string(), t.any())\n .keys({\n ios: t\n // IOSProjectParams\n .object({\n sourceDir: t.string(),\n })\n .default({}),\n android: t\n // AndroidProjectParams\n .object({\n sourceDir: t.string(),\n appName: t.string(),\n manifestPath: t.string(),\n packageName: t.string(),\n dependencyConfiguration: t.string(),\n })\n .default({}),\n })\n .default(),\n assets: t.array().items(t.string()).default([]),\n commands: t.array().items(command).default([]),\n platforms: map(\n t.string(),\n t.object({\n npmPackageName: t.string().optional(),\n dependencyConfig: t.func(),\n projectConfig: t.func(),\n linkConfig: t.func(),\n }),\n ).default({}),\n })\n .unknown(true)\n .default();\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native-community/cli-config",
3
- "version": "7.0.1",
3
+ "version": "8.0.0",
4
4
  "license": "MIT",
5
5
  "main": "build/index.js",
6
6
  "publishConfig": {
@@ -8,11 +8,11 @@
8
8
  },
9
9
  "types": "build/index.d.ts",
10
10
  "dependencies": {
11
+ "@react-native-community/cli-tools": "^8.0.0",
11
12
  "cosmiconfig": "^5.1.0",
12
13
  "deepmerge": "^3.2.0",
13
- "@react-native-community/cli-tools": "^7.0.1",
14
- "joi": "^17.2.1",
15
- "glob": "^7.1.3"
14
+ "glob": "^7.1.3",
15
+ "joi": "^17.2.1"
16
16
  },
17
17
  "files": [
18
18
  "build",
@@ -20,8 +20,8 @@
20
20
  "!*.map"
21
21
  ],
22
22
  "devDependencies": {
23
+ "@react-native-community/cli-types": "^8.0.0",
23
24
  "@types/cosmiconfig": "^5.0.3",
24
- "@react-native-community/cli-types": "^7.0.1",
25
25
  "@types/glob": "^7.1.1"
26
26
  },
27
27
  "homepage": "https://github.com/react-native-community/cli/tree/master/packages/cli-config",
@@ -29,5 +29,6 @@
29
29
  "type": "git",
30
30
  "url": "https://github.com/react-native-community/cli.git",
31
31
  "directory": "packages/cli-config"
32
- }
32
+ },
33
+ "gitHead": "810b6a04821e493b39b078e56ae57c704fcc724d"
33
34
  }
@@ -1,8 +0,0 @@
1
- /**
2
- * Given an array of assets folders, e.g. ['Fonts', 'Images'],
3
- * it globs in them to find all files that can be copied.
4
- *
5
- * It returns an array of absolute paths to files found.
6
- */
7
- export default function findAssets(folder: string, assets: Array<string>): Array<string>;
8
- //# sourceMappingURL=findAssets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findAssets.d.ts","sourceRoot":"","sources":["../src/findAssets.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GACpB,KAAK,CAAC,MAAM,CAAC,CAOf"}
@@ -1,53 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = findAssets;
7
-
8
- function _glob() {
9
- const data = _interopRequireDefault(require("glob"));
10
-
11
- _glob = function () {
12
- return data;
13
- };
14
-
15
- return data;
16
- }
17
-
18
- function _path() {
19
- const data = _interopRequireDefault(require("path"));
20
-
21
- _path = function () {
22
- return data;
23
- };
24
-
25
- return data;
26
- }
27
-
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
30
- const findAssetsInFolder = folder => {
31
- const assets = _glob().default.sync(_path().default.join(folder, '**'), {
32
- nodir: true
33
- });
34
-
35
- if (process.platform === 'win32') {
36
- return assets.map(asset => asset.split('/').join('\\'));
37
- }
38
-
39
- return assets;
40
- };
41
- /**
42
- * Given an array of assets folders, e.g. ['Fonts', 'Images'],
43
- * it globs in them to find all files that can be copied.
44
- *
45
- * It returns an array of absolute paths to files found.
46
- */
47
-
48
-
49
- function findAssets(folder, assets) {
50
- return (assets || []).map(asset => _path().default.join(folder, asset)).reduce((acc, assetPath) => acc.concat(findAssetsInFolder(assetPath)), []);
51
- }
52
-
53
- //# sourceMappingURL=findAssets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/findAssets.ts"],"names":["findAssetsInFolder","folder","assets","glob","sync","path","join","nodir","process","platform","map","asset","split","findAssets","reduce","acc","assetPath","concat"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AAEA,MAAMA,kBAAkB,GAAIC,MAAD,IAA8B;AACvD,QAAMC,MAAM,GAAGC,gBAAKC,IAAL,CAAUC,gBAAKC,IAAL,CAAUL,MAAV,EAAkB,IAAlB,CAAV,EAAmC;AAACM,IAAAA,KAAK,EAAE;AAAR,GAAnC,CAAf;;AACA,MAAIC,OAAO,CAACC,QAAR,KAAqB,OAAzB,EAAkC;AAChC,WAAOP,MAAM,CAACQ,GAAP,CAAYC,KAAD,IAAWA,KAAK,CAACC,KAAN,CAAY,GAAZ,EAAiBN,IAAjB,CAAsB,IAAtB,CAAtB,CAAP;AACD;;AACD,SAAOJ,MAAP;AACD,CAND;AAQA;AACA;AACA;AACA;AACA;AACA;;;AACe,SAASW,UAAT,CACbZ,MADa,EAEbC,MAFa,EAGE;AACf,SAAO,CAACA,MAAM,IAAI,EAAX,EACJQ,GADI,CACCC,KAAD,IAAWN,gBAAKC,IAAL,CAAUL,MAAV,EAAkBU,KAAlB,CADX,EAEJG,MAFI,CAGH,CAACC,GAAD,EAAMC,SAAN,KAAoBD,GAAG,CAACE,MAAJ,CAAWjB,kBAAkB,CAACgB,SAAD,CAA7B,CAHjB,EAIH,EAJG,CAAP;AAMD","sourcesContent":["import glob from 'glob';\nimport path from 'path';\n\nconst findAssetsInFolder = (folder: string): string[] => {\n const assets = glob.sync(path.join(folder, '**'), {nodir: true});\n if (process.platform === 'win32') {\n return assets.map((asset) => asset.split('/').join('\\\\'));\n }\n return assets;\n};\n\n/**\n * Given an array of assets folders, e.g. ['Fonts', 'Images'],\n * it globs in them to find all files that can be copied.\n *\n * It returns an array of absolute paths to files found.\n */\nexport default function findAssets(\n folder: string,\n assets: Array<string>,\n): Array<string> {\n return (assets || [])\n .map((asset) => path.join(folder, asset))\n .reduce(\n (acc, assetPath) => acc.concat(findAssetsInFolder(assetPath)),\n [] as string[],\n );\n}\n"]}