@@ -11,15 +11,10 @@ codegen`
1111 const { languages } = require('prismjs/components')
1212 const prismPath = dirname(require.resolve('prismjs'))
1313
14- let output = '/* This content is auto-generated to include some prismjs language components: */\\n'
15-
16- const toDependencies = arr => {
17- if (typeof arr === 'string') {
18- return [arr]
19- }
14+ // This json defines which languages to include
15+ const includedLangs = require('./includeLangs')
2016
21- return arr;
22- };
17+ let output = '/* This content is auto-generated to include some prismjs language components: */\\n'
2318
2419 const addLanguageToOutput = language => {
2520 const pathToLanguage = 'components/prism-' + language
@@ -39,15 +34,17 @@ codegen`
3934 visitedLanguages[language] = true
4035 }
4136
42- // Required dependencies come before the actual language
43- const required = toDependencies(langEntry.require)
44-
45- if (Array.isArray(required)) {
46- required.forEach(x => {
47- if (languages[x]) {
48- visitLanguage(x, languages[x])
49- } else {
50- console.warn('[prismjs/components]: Language', x, 'does not exist!')
37+ // Required + optional dependencies come before the actual language
38+ const dependencies = [].concat(langEntry.require).concat(langEntry.optional).filter(f => f)
39+
40+ if (dependencies.length > 0) {
41+ dependencies.forEach(x => {
42+ if (includedLangs[x]) {
43+ if (languages[x]) {
44+ visitLanguage(x, languages[x])
45+ } else {
46+ console.warn('[prismjs/components]: Language', x, 'does not exist!')
47+ }
5148 }
5249 })
5350 }
@@ -56,7 +53,7 @@ codegen`
5653 addLanguageToOutput(language)
5754
5855 // Peer dependencies come after the actual language
59- const peerDependencies = toDependencies (langEntry.peerDependencies)
56+ const peerDependencies = [].concat (langEntry.peerDependencies).filter(f => f )
6057
6158 if (Array.isArray(peerDependencies)) {
6259 peerDependencies.forEach(x => {
@@ -69,9 +66,6 @@ codegen`
6966 }
7067 };
7168
72- // This json defines which languages to include
73- const includedLangs = require('./includeLangs')
74-
7569 Object.keys(includedLangs).forEach(language => {
7670 visitLanguage(language, languages[language])
7771 })
0 commit comments