Skip to content
This repository was archived by the owner on Jan 24, 2025. It is now read-only.

Commit 9114f9b

Browse files
committed
fix(docz-core): mdx loader options
1 parent d0c7496 commit 9114f9b

File tree

3 files changed

+78
-32
lines changed

3 files changed

+78
-32
lines changed

core/docz-core/src/bundler/loaders.ts

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
import * as path from 'path'
22
import Config from 'webpack-chain'
3-
import matter from 'remark-frontmatter'
4-
import slug from 'rehype-slug'
5-
import remarkDocz from 'remark-docz'
6-
import rehypeDocz from 'rehype-docz'
73

84
import * as paths from '../config/paths'
95
import { Config as Args } from '../config/argv'
@@ -26,8 +22,16 @@ export const sourceMaps = (config: Config, args: Args) => {
2622
.enforce('pre')
2723
}
2824

29-
const addScriptLoaders = (rule: Config.Rule, babelrc: BabelRC, args: Args) =>
30-
rule
25+
export interface AddScriptLoaderOpts {
26+
threadLoader?: boolean
27+
rule: Config.Rule
28+
babelrc: BabelRC
29+
args: Args
30+
}
31+
32+
const addScriptLoaders = (opts: AddScriptLoaderOpts) => {
33+
const { rule, threadLoader = true, babelrc, args } = opts
34+
return rule
3135
.when(!args.debug, rule =>
3236
rule
3337
.use('cache-loader')
@@ -36,16 +40,19 @@ const addScriptLoaders = (rule: Config.Rule, babelrc: BabelRC, args: Args) =>
3640
cacheDirectory: paths.cache,
3741
})
3842
)
39-
.use('thread-loader')
40-
.loader(require.resolve('thread-loader'))
41-
.options({
42-
workers: require('os').cpus().length - 1,
43-
})
44-
.end()
43+
.when(Boolean(threadLoader), rule =>
44+
rule
45+
.use('thread-loader')
46+
.loader(require.resolve('thread-loader'))
47+
.options({
48+
workers: require('os').cpus().length - 1,
49+
})
50+
)
4551
.use('babel-loader')
4652
.loader(require.resolve('babel-loader'))
4753
.options(babelrc)
4854
.end()
55+
}
4956

5057
export const js = (config: Config, args: Args, babelrc: BabelRC) => {
5158
const srcPath = path.resolve(paths.root, args.src)
@@ -59,7 +66,7 @@ export const js = (config: Config, args: Args, babelrc: BabelRC) => {
5966
.exclude.add(excludeNodeModules)
6067
.end()
6168

62-
addScriptLoaders(rule, babelrc, args)
69+
addScriptLoaders({ rule, babelrc, args })
6370
}
6471

6572
export const ts = (config: Config, args: Args, babelrc: BabelRC) => {
@@ -74,7 +81,7 @@ export const ts = (config: Config, args: Args, babelrc: BabelRC) => {
7481
.exclude.add(excludeNodeModules)
7582
.end()
7683

77-
addScriptLoaders(rule, babelrc, args)
84+
addScriptLoaders({ rule, babelrc, args })
7885
}
7986

8087
export const mdx = (config: Config, args: Args, babelrc: BabelRC) => {
@@ -89,16 +96,20 @@ export const mdx = (config: Config, args: Args, babelrc: BabelRC) => {
8996
.exclude.add(excludeNodeModules)
9097
.end()
9198

92-
addScriptLoaders(rule, babelrc, args)
99+
addScriptLoaders({ rule, babelrc, args, threadLoader: false })
93100
.use('mdx-loader')
94101
.loader(require.resolve('@mdx-js/loader'))
95102
.options({
96-
type: 'yaml',
97-
marker: '-',
98-
mdPlugins: mdPlugins.concat([matter, remarkDocz]),
103+
mdPlugins: mdPlugins.concat([
104+
[require('remark-frontmatter'), { type: 'yaml', marker: '-' }],
105+
require('remark-docz'),
106+
]),
99107
hastPlugins: hastPlugins.concat([
100-
rehypeDocz(paths.root, args.codeSandbox),
101-
slug,
108+
[
109+
require('rehype-docz'),
110+
{ root: paths.root, useCodeSandbox: args.codeSandbox },
111+
],
112+
require('rehype-slug'),
102113
]),
103114
})
104115
}

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"@types/react": "^16.7.20",
4848
"@types/react-dom": "^16.0.11",
4949
"@types/react-router-dom": "^4.3.1",
50+
"@types/jest": "^23.3.13",
5051
"all-contributors-cli": "^5.10.2",
5152
"babel-plugin-lodash": "^3.3.4",
5253
"babel-plugin-module-resolver": "^3.1.2",
@@ -55,12 +56,14 @@
5556
"cross-env": "^5.2.0",
5657
"docz-rollup": "0.13.3",
5758
"husky": "^1.3.1",
59+
"jest": "^23.6.0",
5860
"lerna": "3.10.6",
5961
"lint-staged": "^8.1.0",
6062
"npm-run-all": "^4.1.5",
6163
"prettier": "^1.16.0",
6264
"rollup": "^1.1.2",
6365
"trash-cli": "^1.4.0",
66+
"ts-jest": "^23.10.5",
6467
"tslint": "^5.12.1",
6568
"tslint-config-prettier": "^1.17.0",
6669
"typescript": "^3.2.4"

yarn.lock

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2152,6 +2152,11 @@
21522152
"@types/events" "*"
21532153
"@types/node" "*"
21542154

2155+
"@types/jest@^23.3.13":
2156+
version "23.3.13"
2157+
resolved "https://registry.npmjs.org/@types/jest/-/jest-23.3.13.tgz#c81484b6f4ca007bb09887ed15ecb3286d58f928"
2158+
integrity sha512-ePl4l+7dLLmCucIwgQHAgjiepY++qcI6nb8eAwGNkB6OxmTe3Z9rQU3rSpomqu42PCCnlThZbOoxsf+qylJsLA==
2159+
21552160
"@types/lodash.flatten@^4.4.4":
21562161
version "4.4.4"
21572162
resolved "https://registry.npmjs.org/@types/lodash.flatten/-/lodash.flatten-4.4.4.tgz#7f28009ef57c8d2b1d8463c3e53fdccf780120a5"
@@ -3581,6 +3586,13 @@ browserslist@^4.3.4:
35813586
electron-to-chromium "^1.3.86"
35823587
node-releases "^1.0.5"
35833588

3589+
3590+
version "0.2.6"
3591+
resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
3592+
integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
3593+
dependencies:
3594+
fast-json-stable-stringify "2.x"
3595+
35843596
bser@^2.0.0:
35853597
version "2.0.0"
35863598
resolved "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
@@ -3605,7 +3617,7 @@ buble@^0.19.3:
36053617
regexpu-core "^4.2.0"
36063618
vlq "^1.0.0"
36073619

3608-
buffer-from@^1.0.0:
3620+
buffer-from@1.x, buffer-from@^1.0.0:
36093621
version "1.1.1"
36103622
resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
36113623
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
@@ -5997,7 +6009,7 @@ fast-glob@^2.2.6:
59976009
merge2 "^1.2.3"
59986010
micromatch "^3.1.10"
59996011

6000-
fast-json-stable-stringify@^2.0.0:
6012+
fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
60016013
version "2.0.0"
60026014
resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
60036015
integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
@@ -8412,18 +8424,18 @@ json3@^3.3.2:
84128424
resolved "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
84138425
integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
84148426

8415-
json5@^0.5.0, json5@^0.5.1:
8416-
version "0.5.1"
8417-
resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
8418-
integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
8419-
8420-
json5@^2.1.0:
8427+
[email protected], json5@^2.1.0:
84218428
version "2.1.0"
84228429
resolved "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
84238430
integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
84248431
dependencies:
84258432
minimist "^1.2.0"
84268433

8434+
json5@^0.5.0, json5@^0.5.1:
8435+
version "0.5.1"
8436+
resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
8437+
integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
8438+
84278439
jsonfile@^2.1.0:
84288440
version "2.4.0"
84298441
resolved "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
@@ -9099,6 +9111,11 @@ make-dir@^1.0.0:
90999111
dependencies:
91009112
pify "^3.0.0"
91019113

9114+
9115+
version "1.3.5"
9116+
resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
9117+
integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
9118+
91029119
make-fetch-happen@^4.0.1:
91039120
version "4.0.1"
91049121
resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083"
@@ -9559,7 +9576,7 @@ mixin-object@^2.0.1:
95599576
for-in "^0.1.3"
95609577
is-extendable "^0.1.1"
95619578

9562-
[email protected], [email protected], "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
9579+
[email protected], [email protected], [email protected], "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
95639580
version "0.5.1"
95649581
resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
95659582
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
@@ -11891,7 +11908,7 @@ [email protected]:
1189111908
resolved "http://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
1189211909
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
1189311910

11894-
[email protected], resolve@^1.4.0, resolve@^1.9.0:
11911+
[email protected], resolve@1.x, resolve@^1.4.0, resolve@^1.9.0:
1189511912
version "1.9.0"
1189611913
resolved "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06"
1189711914
integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==
@@ -12103,7 +12120,7 @@ semver-diff@^2.0.0:
1210312120
dependencies:
1210412121
semver "^5.0.3"
1210512122

12106-
"semver@2 || 3 || 4 || 5", "[email protected] || 3.x || 4 || 5", [email protected], semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
12123+
"semver@2 || 3 || 4 || 5", "[email protected] || 3.x || 4 || 5", [email protected], semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
1210712124
version "5.6.0"
1210812125
resolved "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
1210912126
integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
@@ -13252,6 +13269,21 @@ tryer@^1.0.0:
1325213269
resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
1325313270
integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
1325413271

13272+
ts-jest@^23.10.5:
13273+
version "23.10.5"
13274+
resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-23.10.5.tgz#cdb550df4466a30489bf70ba867615799f388dd5"
13275+
integrity sha512-MRCs9qnGoyKgFc8adDEntAOP64fWK1vZKnOYU1o2HxaqjdJvGqmkLCPCnVq1/If4zkUmEjKPnCiUisTrlX2p2A==
13276+
dependencies:
13277+
bs-logger "0.x"
13278+
buffer-from "1.x"
13279+
fast-json-stable-stringify "2.x"
13280+
json5 "2.x"
13281+
make-error "1.x"
13282+
mkdirp "0.x"
13283+
resolve "1.x"
13284+
semver "^5.5"
13285+
yargs-parser "10.x"
13286+
1325513287
[email protected], tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
1325613288
version "1.9.3"
1325713289
resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
@@ -14310,7 +14342,7 @@ yallist@^3.0.0, yallist@^3.0.2:
1431014342
resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
1431114343
integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
1431214344

14313-
yargs-parser@^10.0.0, yargs-parser@^10.1.0:
14345+
yargs-parser@10.x, yargs-parser@^10.0.0, yargs-parser@^10.1.0:
1431414346
version "10.1.0"
1431514347
resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
1431614348
integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==

0 commit comments

Comments
 (0)