Skip to content

Remove export code #439

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -225,20 +225,6 @@ export default async function loader(content, sourceMap, meta = {}) {

const newMeta = { ...meta, ast, messages };

if (this.loaderIndex === 0) {
/**
* @memberof loader
* @callback callback
*
* @param {Object} null Error
* @param {String} css Result (JS Module)
* @param {Object} map Source Map
*/
callback(null, `module.exports = ${JSON.stringify(css)}`, map);

return;
}

/**
* @memberof loader
* @callback callback
Expand Down
10 changes: 8 additions & 2 deletions test/__snapshots__/loader.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ SyntaxError

exports[`loader should emit Syntax Error: warnings 1`] = `Array []`;

exports[`loader should emit warning: css 1`] = `"module.exports = \\"a { color: black }\\\\n\\""`;
exports[`loader should emit warning: css 1`] = `
"a { color: black }
"
`;

exports[`loader should emit warning: errors 1`] = `Array []`;

Expand All @@ -29,7 +32,10 @@ Warning
]
`;

exports[`loader should work: css 1`] = `"module.exports = \\"a { color: black }\\\\n\\""`;
exports[`loader should work: css 1`] = `
"a { color: black }
"
`;

exports[`loader should work: errors 1`] = `Array []`;

Expand Down
30 changes: 17 additions & 13 deletions test/helpers/getCodeFromBundle.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
import webpack from 'webpack';

import normalizeMap from './normalizeMap';

const isWebpack5 = webpack.version[0] === '5';

export default (id, stats) => {
const { modules } = stats.compilation;
const module = modules.find((m) => m.id.endsWith(id));
const { _source } = module;

return {
// eslint-disable-next-line no-underscore-dangle
css: _source._value || _source._valueAsString,
map: isWebpack5
? // eslint-disable-next-line no-underscore-dangle
normalizeMap(_source._sourceMapAsObject)
: // eslint-disable-next-line no-underscore-dangle
normalizeMap(_source._sourceMap),
};
// eslint-disable-next-line no-underscore-dangle
const code = (_source._value || _source._valueAsString).replace(
'module.exports = ',
''
);

let result;

try {
result = JSON.parse(code);
} catch (error) {
result = { css: code };
}

const { css, map } = result;

return { css, map: normalizeMap(map) };
};
4 changes: 4 additions & 0 deletions test/helpers/getCompiler.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ export default (fixture, loaderOptions = {}, config = {}) => {
{
test: /\.css$/i,
use: [
{
loader: require.resolve('./testLoader'),
options: {},
},
{
loader: path.resolve(__dirname, '../../src'),
options: loaderOptions || {},
Expand Down
11 changes: 11 additions & 0 deletions test/helpers/testLoader.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function testLoader(content, sourceMap) {
const result = { css: content };

if (sourceMap) {
result.map = sourceMap;
}

return `module.exports = ${JSON.stringify(result)}`;
}

module.exports = testLoader;
20 changes: 16 additions & 4 deletions test/options/__snapshots__/config.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,24 +1,36 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Config Options should work Config - {Object}: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\""`;
exports[`Config Options should work Config - {Object}: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }
"
`;

exports[`Config Options should work Config - {Object}: errors 1`] = `Array []`;

exports[`Config Options should work Config - {Object}: warnings 1`] = `Array []`;

exports[`Config Options should work Config - Context - {Object} - with ident: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\""`;
exports[`Config Options should work Config - Context - {Object} - with ident: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }
"
`;

exports[`Config Options should work Config - Context - {Object} - with ident: errors 1`] = `Array []`;

exports[`Config Options should work Config - Context - {Object} - with ident: warnings 1`] = `Array []`;

exports[`Config Options should work Config - Context - {Object}: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\""`;
exports[`Config Options should work Config - Context - {Object}: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }
"
`;

exports[`Config Options should work Config - Context - {Object}: errors 1`] = `Array []`;

exports[`Config Options should work Config - Context - {Object}: warnings 1`] = `Array []`;

exports[`Config Options should work Config - Path - {String}: css 1`] = `"module.exports = \\"a { color: black }\\\\n\\""`;
exports[`Config Options should work Config - Path - {String}: css 1`] = `
"a { color: black }
"
`;

exports[`Config Options should work Config - Path - {String}: errors 1`] = `Array []`;

Expand Down
8 changes: 6 additions & 2 deletions test/options/__snapshots__/exec.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Options Exec should work Exec - {Boolean}: css 1`] = `"module.exports = \\"a {\\\\n color: green\\\\n}\\""`;
exports[`Options Exec should work Exec - {Boolean}: css 1`] = `
"a {
color: green
}"
`;

exports[`Options Exec should work Exec - {Boolean}: errors 1`] = `Array []`;

exports[`Options Exec should work Exec - {Boolean}: warnings 1`] = `Array []`;

exports[`Options Exec should work JSS - {String}: css 1`] = `
"module.exports = { a: { color: 'yellow' } }
"{ a: { color: 'yellow' } }
"
`;

Expand Down
14 changes: 12 additions & 2 deletions test/options/__snapshots__/parser.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Options Parser should work Parser - {Object}: css 1`] = `"module.exports = \\"a {\\\\n color: black\\\\n}\\\\n\\""`;
exports[`Options Parser should work Parser - {Object}: css 1`] = `
"a {
color: black
}
"
`;

exports[`Options Parser should work Parser - {Object}: errors 1`] = `Array []`;

exports[`Options Parser should work Parser - {Object}: warnings 1`] = `Array []`;

exports[`Options Parser should work Parser - {String}: css 1`] = `"module.exports = \\"a {\\\\n color: black\\\\n}\\\\n\\""`;
exports[`Options Parser should work Parser - {String}: css 1`] = `
"a {
color: black
}
"
`;

exports[`Options Parser should work Parser - {String}: errors 1`] = `Array []`;

Expand Down
20 changes: 16 additions & 4 deletions test/options/__snapshots__/plugins.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,24 +1,36 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Options Plugins should work Plugins - {Array}: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\""`;
exports[`Options Plugins should work Plugins - {Array}: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }
"
`;

exports[`Options Plugins should work Plugins - {Array}: errors 1`] = `Array []`;

exports[`Options Plugins should work Plugins - {Array}: warnings 1`] = `Array []`;

exports[`Options Plugins should work Plugins - {Function} - {Array}: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\""`;
exports[`Options Plugins should work Plugins - {Function} - {Array}: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }
"
`;

exports[`Options Plugins should work Plugins - {Function} - {Array}: errors 1`] = `Array []`;

exports[`Options Plugins should work Plugins - {Function} - {Array}: warnings 1`] = `Array []`;

exports[`Options Plugins should work Plugins - {Function} - {Object}: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\""`;
exports[`Options Plugins should work Plugins - {Function} - {Object}: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }
"
`;

exports[`Options Plugins should work Plugins - {Function} - {Object}: errors 1`] = `Array []`;

exports[`Options Plugins should work Plugins - {Function} - {Object}: warnings 1`] = `Array []`;

exports[`Options Plugins should work Plugins - {Object}: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\""`;
exports[`Options Plugins should work Plugins - {Object}: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }
"
`;

exports[`Options Plugins should work Plugins - {Object}: errors 1`] = `Array []`;

Expand Down
11 changes: 9 additions & 2 deletions test/options/__snapshots__/sourceMap.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Options Sourcemap should work Sourcemap - {Boolean}: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\""`;
exports[`Options Sourcemap should work Sourcemap - {Boolean}: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }
"
`;

exports[`Options Sourcemap should work Sourcemap - {Boolean}: errors 1`] = `Array []`;

Expand All @@ -22,7 +25,11 @@ Object {

exports[`Options Sourcemap should work Sourcemap - {Boolean}: warnings 1`] = `Array []`;

exports[`Options Sourcemap should work Sourcemap - {String}: css 1`] = `"module.exports = \\"a { color: rgba(255, 0, 0, 1.0) }\\\\n\\\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZml4dHVyZXMvY3NzL3N0eWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLDRCQUFhIiwiZmlsZSI6InRlc3QvZml4dHVyZXMvY3NzL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbImEgeyBjb2xvcjogYmxhY2sgfVxuIl19 */\\""`;
exports[`Options Sourcemap should work Sourcemap - {String}: css 1`] = `
"a { color: rgba(255, 0, 0, 1.0) }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZml4dHVyZXMvY3NzL3N0eWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLDRCQUFhIiwiZmlsZSI6InRlc3QvZml4dHVyZXMvY3NzL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbImEgeyBjb2xvcjogYmxhY2sgfVxuIl19 */"
`;

exports[`Options Sourcemap should work Sourcemap - {String}: errors 1`] = `Array []`;

Expand Down
10 changes: 8 additions & 2 deletions test/options/__snapshots__/stringifier.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Options Stringifier should work Stringifier - {Object}: css 1`] = `"module.exports = \\"a color: black\\\\n\\""`;
exports[`Options Stringifier should work Stringifier - {Object}: css 1`] = `
"a color: black
"
`;

exports[`Options Stringifier should work Stringifier - {Object}: errors 1`] = `Array []`;

exports[`Options Stringifier should work Stringifier - {Object}: warnings 1`] = `Array []`;

exports[`Options Stringifier should work Stringifier - {String}: css 1`] = `"module.exports = \\"a color: black\\\\n\\""`;
exports[`Options Stringifier should work Stringifier - {String}: css 1`] = `
"a color: black
"
`;

exports[`Options Stringifier should work Stringifier - {String}: errors 1`] = `Array []`;

Expand Down
12 changes: 10 additions & 2 deletions test/options/__snapshots__/syntax.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Options Syntax should work Syntax - {Object}: css 1`] = `"module.exports = \\"a\\\\n color: black\\\\n\\""`;
exports[`Options Syntax should work Syntax - {Object}: css 1`] = `
"a
color: black
"
`;

exports[`Options Syntax should work Syntax - {Object}: errors 1`] = `Array []`;

exports[`Options Syntax should work Syntax - {Object}: warnings 1`] = `Array []`;

exports[`Options Syntax should work Syntax - {String}: css 1`] = `"module.exports = \\"a\\\\n color: black\\\\n\\""`;
exports[`Options Syntax should work Syntax - {String}: css 1`] = `
"a
color: black
"
`;

exports[`Options Syntax should work Syntax - {String}: errors 1`] = `Array []`;

Expand Down
8 changes: 8 additions & 0 deletions test/options/exec.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ describe('Options Exec', () => {
{
test: /style\.(exec\.js|js)$/i,
use: [
{
loader: require.resolve('../helpers/testLoader'),
options: {},
},
{
loader: path.resolve(__dirname, '../../src'),
options: { exec: true },
Expand Down Expand Up @@ -48,6 +52,10 @@ describe('Options Exec', () => {
{
test: /style.\.js$/i,
use: [
{
loader: require.resolve('../helpers/testLoader'),
options: {},
},
{
loader: path.resolve(__dirname, '../../src'),
options: { parser: 'postcss-js' },
Expand Down
8 changes: 8 additions & 0 deletions test/options/parser.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ describe('Options Parser', () => {
{
test: /\.sss$/i,
use: [
{
loader: require.resolve('../helpers/testLoader'),
options: {},
},
{
loader: path.resolve(__dirname, '../../src'),
options: { parser: 'sugarss' },
Expand Down Expand Up @@ -48,6 +52,10 @@ describe('Options Parser', () => {
{
test: /\.sss$/i,
use: [
{
loader: require.resolve('../helpers/testLoader'),
options: {},
},
{
loader: path.resolve(__dirname, '../../src'),
// eslint-disable-next-line global-require
Expand Down
8 changes: 8 additions & 0 deletions test/options/syntax.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ describe('Options Syntax', () => {
{
test: /\.sss$/i,
use: [
{
loader: require.resolve('../helpers/testLoader'),
options: {},
},
{
loader: path.resolve(__dirname, '../../src'),
options: { syntax: 'sugarss' },
Expand Down Expand Up @@ -48,6 +52,10 @@ describe('Options Syntax', () => {
{
test: /\.sss$/i,
use: [
{
loader: require.resolve('../helpers/testLoader'),
options: {},
},
{
loader: path.resolve(__dirname, '../../src'),
options: {
Expand Down
4 changes: 4 additions & 0 deletions test/validate-options.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ describe('validate options', () => {
{
test: /\.sss$/i,
use: [
{
loader: require.resolve('./helpers/testLoader'),
options: {},
},
{
loader: path.resolve(__dirname, '../src'),
options: { [key]: value },
Expand Down