@@ -11,15 +11,10 @@ codegen`
11
11
const { languages } = require('prismjs/components')
12
12
const prismPath = dirname(require.resolve('prismjs'))
13
13
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')
20
16
21
- return arr;
22
- };
17
+ let output = '/* This content is auto-generated to include some prismjs language components: */\\n'
23
18
24
19
const addLanguageToOutput = language => {
25
20
const pathToLanguage = 'components/prism-' + language
@@ -39,15 +34,17 @@ codegen`
39
34
visitedLanguages[language] = true
40
35
}
41
36
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
+ }
51
48
}
52
49
})
53
50
}
@@ -56,7 +53,7 @@ codegen`
56
53
addLanguageToOutput(language)
57
54
58
55
// Peer dependencies come after the actual language
59
- const peerDependencies = toDependencies (langEntry.peerDependencies)
56
+ const peerDependencies = [].concat (langEntry.peerDependencies).filter(f => f )
60
57
61
58
if (Array.isArray(peerDependencies)) {
62
59
peerDependencies.forEach(x => {
@@ -69,9 +66,6 @@ codegen`
69
66
}
70
67
};
71
68
72
- // This json defines which languages to include
73
- const includedLangs = require('./includeLangs')
74
-
75
69
Object.keys(includedLangs).forEach(language => {
76
70
visitLanguage(language, languages[language])
77
71
})
0 commit comments