MCPcopy
hub / github.com/josdejong/mathjs / generateDependenciesFiles

Function generateDependenciesFiles

tools/entryGenerator.js:192–264  ·  view source on GitHub ↗

* Generate index files like * dependenciesAny.generated.js * dependenciesNumber.generated.js * And the individual files for every dependencies collection.

({ suffix, factories, entryFolder })

Source from the content-addressed store, hash-verified

190 * And the individual files for every dependencies collection.
191 */
192function generateDependenciesFiles ({ suffix, factories, entryFolder }) {
193 const braceOpen = '{' // a hack to be able to create a single brace open character in handlebars
194
195 // a map containing:
196 // {
197 // 'sqrt': true,
198 // 'subset': true,
199 // ...
200 // }
201 const exists = {}
202 Object.keys(factories).forEach(factoryName => {
203 const factory = factories[factoryName]
204 exists[factory.fn] = true
205 })
206
207 mkdirSyncIfNotExists(path.join(entryFolder, 'dependencies' + suffix))
208
209 const data = {
210 suffix,
211 factories: Object.keys(factories).map((factoryName) => {
212 const factory = factories[factoryName]
213
214 return {
215 suffix,
216 factoryName,
217 braceOpen,
218 name: getDependenciesName(factoryName, factories), // FIXME: rename name with dependenciesName, and functionName with name
219 fileName: './dependencies' + suffix + '/' + getDependenciesFileName(factoryName) + '.generated',
220 eslintComment: factoryName === 'createSQRT1_2'
221 ? ' // eslint-disable-line camelcase'
222 : undefined,
223
224 dependencies: factory.dependencies
225 .map(stripOptionalNotation)
226 .filter(dependency => !IGNORED_DEPENDENCIES[dependency])
227 .filter(dependency => {
228 if (!exists[dependency]) {
229 if (factory.dependencies.includes(dependency)) {
230 throw new Error(`Required dependency "${dependency}" missing for factory "${factory.fn}" (suffix: ${suffix})`)
231 }
232
233 return false
234 }
235
236 return true
237 })
238 .map(dependency => {
239 const factoryName = findFactoryName(factories, dependency)
240 const name = getDependenciesName(factoryName, factories)
241 const fileName = './' + getDependenciesFileName(factoryName) + '.generated'
242
243 return {
244 suffix,
245 name,
246 fileName
247 }
248 })
249 }

Callers 1

generateEntryFilesFunction · 0.85

Calls 8

mkdirSyncIfNotExistsFunction · 0.85
getDependenciesNameFunction · 0.85
getDependenciesFileNameFunction · 0.85
findFactoryNameFunction · 0.85
forEachMethod · 0.65
keysMethod · 0.65
mapMethod · 0.65
filterMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…