Skip to content

Commit 8698d3a

Browse files
authored
Merge pull request #151 from FormidableLabs/jp-language-order
account for optional dependencies in Prism vendor script
2 parents dc57edd + d488c19 commit 8698d3a

File tree

1 file changed

+15
-21
lines changed

1 file changed

+15
-21
lines changed

src/vendor/prism/index.js

+15-21
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)