From 456afb95f236694eb10713a36dc47df50f71a5e5 Mon Sep 17 00:00:00 2001 From: Will Binns-Smith Date: Tue, 5 Nov 2019 14:48:16 -0800 Subject: [PATCH] Add bundle-text pipeline --- packages/configs/default/index.json | 1 + packages/core/integration-tests/test/css.js | 2 +- .../test/integration/bundle-text/img.svg | 3 +++ .../test/integration/bundle-text/index.js | 2 ++ .../test/integration/bundle-text/text.scss | 9 +++++++++ .../test/integration/data-url/img.svg | 4 +++- .../core/integration-tests/test/javascript.js | 19 ++++++++++++++++++- 7 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 packages/core/integration-tests/test/integration/bundle-text/img.svg create mode 100644 packages/core/integration-tests/test/integration/bundle-text/index.js create mode 100644 packages/core/integration-tests/test/integration/bundle-text/text.scss diff --git a/packages/configs/default/index.json b/packages/configs/default/index.json index 4e9d54aed57..c69497f55c4 100644 --- a/packages/configs/default/index.json +++ b/packages/configs/default/index.json @@ -2,6 +2,7 @@ "bundler": "@parcel/bundler-default", "transforms": { "types:*.{ts,tsx}": ["@parcel/transformer-typescript-types"], + "bundle-text:*": ["@parcel/transformer-inline-string", "..."], "data-url:*": ["@parcel/transformer-inline-string", "..."], "*.{js,mjs,jsm,jsx,es6,ts,tsx}": [ "@parcel/transformer-babel", diff --git a/packages/core/integration-tests/test/css.js b/packages/core/integration-tests/test/css.js index c3f1ed9f229..4e82a5d4469 100644 --- a/packages/core/integration-tests/test/css.js +++ b/packages/core/integration-tests/test/css.js @@ -267,7 +267,7 @@ describe('css', () => { assert.equal( css, `.svg-img { - background-image: url('data:image/svg+xml,%3Csvg%3E%3C%2Fsvg%3E%0A'); + background-image: url('data:image/svg+xml,%3Csvg%3E%0A%0A%3C%2Fsvg%3E%0A'); } ` ); diff --git a/packages/core/integration-tests/test/integration/bundle-text/img.svg b/packages/core/integration-tests/test/integration/bundle-text/img.svg new file mode 100644 index 00000000000..2736a68b2ca --- /dev/null +++ b/packages/core/integration-tests/test/integration/bundle-text/img.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/integration-tests/test/integration/bundle-text/index.js b/packages/core/integration-tests/test/integration/bundle-text/index.js new file mode 100644 index 00000000000..d64d68f1a1a --- /dev/null +++ b/packages/core/integration-tests/test/integration/bundle-text/index.js @@ -0,0 +1,2 @@ +import cssText from 'bundle-text:./text.scss'; +export default cssText; diff --git a/packages/core/integration-tests/test/integration/bundle-text/text.scss b/packages/core/integration-tests/test/integration/bundle-text/text.scss new file mode 100644 index 00000000000..9db27f7bb22 --- /dev/null +++ b/packages/core/integration-tests/test/integration/bundle-text/text.scss @@ -0,0 +1,9 @@ +$black: #000000; + +body { + background-color: $black; +} + +.svg-img { + background-image: url('data-url:img.svg'); +} diff --git a/packages/core/integration-tests/test/integration/data-url/img.svg b/packages/core/integration-tests/test/integration/data-url/img.svg index 3e8fcacea68..2736a68b2ca 100644 --- a/packages/core/integration-tests/test/integration/data-url/img.svg +++ b/packages/core/integration-tests/test/integration/data-url/img.svg @@ -1 +1,3 @@ - + + + diff --git a/packages/core/integration-tests/test/javascript.js b/packages/core/integration-tests/test/javascript.js index 1c2c66e5da7..8e63fcf96bf 100644 --- a/packages/core/integration-tests/test/javascript.js +++ b/packages/core/integration-tests/test/javascript.js @@ -1585,12 +1585,29 @@ describe('javascript', function() { await run(b); }); + it("should inline a bundle's compiled text with `bundle-text`", async () => { + let b = await bundle( + path.join(__dirname, '/integration/bundle-text/index.js') + ); + + assert.equal( + (await run(b)).default, + `body { + background-color: #000000; +} + +.svg-img { + background-image: url("data:image/svg+xml,%3Csvg%3E%0A%0A%3C%2Fsvg%3E%0A"); +}` + ); + }); + it('should inline text content as url-encoded text and mime type with `data-url:*` imports', async () => { let b = await bundle(path.join(__dirname, '/integration/data-url/text.js')); assert.equal( (await run(b)).default, - 'data:image/svg+xml,%3Csvg%3E%3C%2Fsvg%3E%0A' + 'data:image/svg+xml,%3Csvg%3E%0A%0A%3C%2Fsvg%3E%0A' ); });