Skip to content

Commit e8885b9

Browse files
authored
preprocess to ignore styles and handle typescript (#31)
1 parent eef39bd commit e8885b9

File tree

3 files changed

+54
-2
lines changed

3 files changed

+54
-2
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
"prettier": "^2.2.1",
2828
"rollup": "^2.36.0",
2929
"rollup-plugin-svelte": "^7.0.0",
30-
"svelte": "^3.31.2"
30+
"svelte": "^3.31.2",
31+
"svelte-preprocess": "^4.7.3"
3132
},
3233
"devDependencies": {
3334
"@types/fs-extra": "^9.0.6",

src/rollup-plugin.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import writeMarkdown, { WriteMarkdownOptions } from "./writer/writer-markdown";
77
import ComponentParser, { ParsedComponent } from "./ComponentParser";
88
import { getSvelteEntry } from "./get-svelte-entry";
99
import { ParsedExports, parseExports } from "./parse-exports";
10+
import { preprocess } from "svelte/compiler";
11+
import { replace, typescript } from "svelte-preprocess";
1012

1113
export interface PluginSveldOptions {
1214
glob?: boolean;
@@ -77,10 +79,20 @@ export async function generateBundle(input: string, glob: boolean) {
7779

7880
if (ext === '.svelte') {
7981
const source = await fs.readFile(path.resolve(dir, filePath), "utf-8");
82+
83+
const { code: processed } = await preprocess(
84+
source,
85+
[
86+
typescript(),
87+
replace([[/<style.+<\/style>/gims, ""]]),
88+
],
89+
{ filename: path.basename(filePath) }
90+
);
91+
8092
components.set(moduleName, {
8193
moduleName,
8294
filePath,
83-
...parser.parseSvelteComponent(source, {
95+
...parser.parseSvelteComponent(processed, {
8496
moduleName,
8597
filePath,
8698
}),

yarn.lock

+39
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,25 @@
7171
resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.6.tgz#f4b1efa784e8db479cdb8b14403e2144b1e9ff03"
7272
integrity sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA==
7373

74+
"@types/pug@^2.0.4":
75+
version "2.0.4"
76+
resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.4.tgz#8772fcd0418e3cd2cc171555d73007415051f4b2"
77+
integrity sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=
78+
7479
7580
version "1.17.1"
7681
resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
7782
integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
7883
dependencies:
7984
"@types/node" "*"
8085

86+
"@types/sass@^1.16.0":
87+
version "1.16.0"
88+
resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.16.0.tgz#b41ac1c17fa68ffb57d43e2360486ef526b3d57d"
89+
integrity sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==
90+
dependencies:
91+
"@types/node" "*"
92+
8193
"@types/strip-bom@^3.0.0":
8294
version "3.0.0"
8395
resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2"
@@ -313,6 +325,11 @@ defined@^1.0.0:
313325
resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
314326
integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
315327

328+
detect-indent@^6.0.0:
329+
version "6.1.0"
330+
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
331+
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
332+
316333
diff@^4.0.1:
317334
version "4.0.2"
318335
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
@@ -804,6 +821,11 @@ micromatch@^4.0.2:
804821
braces "^3.0.1"
805822
picomatch "^2.0.5"
806823

824+
min-indent@^1.0.0:
825+
version "1.0.1"
826+
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
827+
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
828+
807829
minimatch@^3.0.4:
808830
version "3.0.4"
809831
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -1239,6 +1261,13 @@ strip-indent@^1.0.1:
12391261
dependencies:
12401262
get-stdin "^4.0.1"
12411263

1264+
strip-indent@^3.0.0:
1265+
version "3.0.0"
1266+
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
1267+
integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
1268+
dependencies:
1269+
min-indent "^1.0.0"
1270+
12421271
strip-json-comments@^2.0.0:
12431272
version "2.0.1"
12441273
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
@@ -1251,6 +1280,16 @@ supports-color@^5.3.0:
12511280
dependencies:
12521281
has-flag "^3.0.0"
12531282

1283+
svelte-preprocess@^4.7.3:
1284+
version "4.7.3"
1285+
resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.7.3.tgz#454fa059c2400b15e7a3caeca18993cff9df0e96"
1286+
integrity sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA==
1287+
dependencies:
1288+
"@types/pug" "^2.0.4"
1289+
"@types/sass" "^1.16.0"
1290+
detect-indent "^6.0.0"
1291+
strip-indent "^3.0.0"
1292+
12541293
svelte@^3.31.2:
12551294
version "3.31.2"
12561295
resolved "https://registry.npmjs.org/svelte/-/svelte-3.31.2.tgz#d2ddf6cacbb95e4cc3796207510b660a25586324"

0 commit comments

Comments
 (0)