Skip to content

Commit

Permalink
feat: Exporting values. (#396) (#398)
Browse files Browse the repository at this point in the history
Fixes #396
  • Loading branch information
AndrewLeedham authored and tivac committed Feb 8, 2018
1 parent 7fff2bf commit 479866d
Show file tree
Hide file tree
Showing 13 changed files with 81 additions and 13 deletions.
2 changes: 2 additions & 0 deletions packages/aliases/test/__snapshots__/aliases.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Object {
},
"packages/paths/test/specimens/one/start.css": Object {
"rule": "two rule",
"sub": "\\"sub\\"",
},
}
`;
Expand All @@ -21,6 +22,7 @@ Object {
},
"packages/paths/test/specimens/one/start.css": Object {
"rule": "two rule",
"sub": "\\"sub\\"",
},
"packages/paths/test/specimens/one/sub/sub.css": Object {
"sub": "sub",
Expand Down
18 changes: 15 additions & 3 deletions packages/browserify/test/__snapshots__/browserify.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,25 @@ exports[`/browserify.js basic functionality should correctly rewrite urls based
exports[`/browserify.js basic functionality should error if an invalid extension is applied 1`] = `"Missing or invalid \\"ext\\" option: false"`;

exports[`/browserify.js basic functionality should include all CSS dependencies in output css 1`] = `
"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({1:[function(require,module,exports){
require('./packages/browserify/test/specimens/start.css');
},{\\"./packages/browserify/test/specimens/start.css\\":4}],2:[function(require,module,exports){
module.exports = {
\\"folder\\": \\"mcd19f1319_folder\\"
};
},{}],3:[function(require,module,exports){
module.exports = {
\\"folder\\": \\"white\\",
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"booga\\": \\"mcc4e2a8e1_booga\\",
\\"looga\\": \\"mcc4e2a8e1_booga mcc4e2a8e1_looga\\"
};
},{\\"./packages/browserify/test/specimens/folder/folder.css\\":2}],4:[function(require,module,exports){
module.exports = {
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"folder\\": \\"white\\",
\\"wooga\\": \\"mcc4e2a8e1_booga mc1c78395f_wooga\\",
\\"booga\\": \\"mc1c78395f_booga\\",
\\"tooga\\": \\"mc1c78395f_tooga\\"
Expand All @@ -45,19 +51,25 @@ exports[`/browserify.js basic functionality should include all CSS dependencies
`;

exports[`/browserify.js basic functionality should not include duplicate files in the output multiple times 1`] = `
"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({1:[function(require,module,exports){
require('./packages/browserify/test/specimens/start.css'); require('./packages/browserify/test/specimens/local.css');
},{\\"./packages/browserify/test/specimens/local.css\\":3,\\"./packages/browserify/test/specimens/start.css\\":4}],2:[function(require,module,exports){
module.exports = {
\\"folder\\": \\"mcd19f1319_folder\\"
};
},{}],3:[function(require,module,exports){
module.exports = {
\\"folder\\": \\"white\\",
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"booga\\": \\"mcc4e2a8e1_booga\\",
\\"looga\\": \\"mcc4e2a8e1_booga mcc4e2a8e1_looga\\"
};
},{\\"./packages/browserify/test/specimens/folder/folder.css\\":2}],4:[function(require,module,exports){
module.exports = {
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"folder\\": \\"white\\",
\\"wooga\\": \\"mcc4e2a8e1_booga mc1c78395f_wooga\\",
\\"booga\\": \\"mc1c78395f_booga\\",
\\"tooga\\": \\"mc1c78395f_tooga\\"
Expand Down Expand Up @@ -104,7 +116,7 @@ exports[`/browserify.js basic functionality should output an inline source map w
`;

exports[`/browserify.js basic functionality should replace require() calls with the exported identifiers 1`] = `
"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({1:[function(require,module,exports){
require('./packages/browserify/test/specimens/simple.css');
},{\\"./packages/browserify/test/specimens/simple.css\\":2}],2:[function(require,module,exports){
module.exports = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,11 @@ exports[`/browserify.js factor-bundle should avoid outputting empty css files by
`;

exports[`/browserify.js factor-bundle should be supported 1`] = `
"require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({5:[function(require,module,exports){
"require=(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({5:[function(require,module,exports){
module.exports = {
\\"folder\\": \\"white\\",
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"booga\\": \\"mcc4e2a8e1_booga\\",
\\"looga\\": \\"mcc4e2a8e1_booga mcc4e2a8e1_looga\\"
};
Expand Down
4 changes: 2 additions & 2 deletions packages/browserify/test/__snapshots__/issue-58.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`/browserify.js /issues /58 should update when CSS dependencies change 1`] = `
"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({1:[function(require,module,exports){
require('./packages/browserify/test/specimens/issues/58/issue.css');
},{\\"./packages/browserify/test/specimens/issues/58/issue.css\\":2}],2:[function(require,module,exports){
module.exports = {
Expand All @@ -19,7 +19,7 @@ module.exports = {
`;

exports[`/browserify.js /issues /58 should update when CSS dependencies change 2`] = `
"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module '\\"+o+\\"'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({1:[function(require,module,exports){
require('./packages/browserify/test/specimens/issues/58/issue.css');
},{\\"./packages/browserify/test/specimens/issues/58/issue.css\\":2}],2:[function(require,module,exports){
module.exports = {
Expand Down
17 changes: 11 additions & 6 deletions packages/core/processor.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
var fs = require("fs"),
path = require("path"),

Graph = require("dependency-graph").DepGraph,
postcss = require("postcss"),
slug = require("unique-slug"),
series = require("p-each-series"),
unique = require("lodash.uniq"),
Graph = require("dependency-graph").DepGraph,
postcss = require("postcss"),
slug = require("unique-slug"),
series = require("p-each-series"),
unique = require("lodash.uniq"),
mapValues = require("lodash.mapvalues"),

output = require("./lib/output.js"),
message = require("./lib/message.js"),
Expand Down Expand Up @@ -131,7 +132,11 @@ Processor.prototype = {
}

return file.processed.then((result) => {
file.exports = message(result, "classes");
file.exports = Object.assign(
Object.create(null),
mapValues(file.values, (obj) => [ obj.value ]),
message(result, "classes")
);
file.result = result;
});
});
Expand Down
6 changes: 6 additions & 0 deletions packages/core/test/__snapshots__/api.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,17 @@ Object {
},
"packages/core/test/specimens/local.css": Object {
"booga": "booga",
"folder": "white",
"looga": "booga looga",
"one": "red",
"two": "blue",
},
"packages/core/test/specimens/start.css": Object {
"booga": "booga",
"folder": "white",
"one": "red",
"tooga": "tooga",
"two": "blue",
"wooga": "booga wooga",
},
}
Expand Down
6 changes: 6 additions & 0 deletions packages/core/test/__snapshots__/exports.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,17 @@ Object {
},
"packages/core/test/specimens/local.css": Object {
"booga": "booga",
"folder": "white",
"looga": "booga looga",
"one": "red",
"two": "blue",
},
"packages/core/test/specimens/start.css": Object {
"booga": "booga",
"folder": "white",
"one": "red",
"tooga": "tooga",
"two": "blue",
"wooga": "booga wooga",
},
}
Expand Down
9 changes: 9 additions & 0 deletions packages/core/test/__snapshots__/values.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,15 @@ Object {
"fooga": Array [
"fooga",
],
"local": Array [
"'./local.css'",
],
"o": Array [
"red",
],
"one": Array [
"red",
],
}
`;

Expand Down
3 changes: 3 additions & 0 deletions packages/core/test/issues/__snapshots__/issue-24.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ Object {
"wooga",
"a",
],
"simple": Array [
"\\"./simple.css\\"",
],
}
`;

Expand Down
1 change: 1 addition & 0 deletions packages/paths/test/__snapshots__/paths.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ exports[`modular-css-paths should be usable as a modular-css resolver 1`] = `
Object {
"packages/paths/test/specimens/one/start.css": Object {
"rule": "two rule",
"sub": "\\"sub\\"",
},
"packages/paths/test/specimens/one/sub/sub.css": Object {
"sub": "sub",
Expand Down
6 changes: 6 additions & 0 deletions packages/postcss/test/__snapshots__/postcss.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,16 @@ exports[`/postcss.js should accept a \`json\` property and write exports to that
\\"folder\\": \\"folder\\"
},
\\"packages/postcss/test/specimens/local.css\\": {
\\"folder\\": \\"white\\",
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"booga\\": \\"booga\\",
\\"looga\\": \\"booga looga\\"
},
\\"packages/postcss/test/specimens/start.css\\": {
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"folder\\": \\"white\\",
\\"wooga\\": \\"booga wooga\\",
\\"booga\\": \\"booga\\",
\\"tooga\\": \\"tooga\\"
Expand Down
2 changes: 1 addition & 1 deletion packages/svelte/test/__snapshots__/rollup.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ function _set(newState) {
}
function callAll(fns) {
while (fns && fns.length) fns.pop()();
while (fns && fns.length) fns.shift()();
}
function _mount(target, anchor) {
Expand Down
15 changes: 15 additions & 0 deletions packages/webpack/test/__snapshots__/webpack.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -569,14 +569,23 @@ __webpack_require__(1);
\\"use strict\\";
Object.defineProperty(__webpack_exports__, \\"__esModule\\", { value: true });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\"one\\", function() { return one; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\"two\\", function() { return two; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\"folder\\", function() { return folder; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\"wooga\\", function() { return wooga; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\"booga\\", function() { return booga; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\"tooga\\", function() { return tooga; });
/* harmony default export */ __webpack_exports__[\\"default\\"] = ({
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"folder\\": \\"white\\",
\\"wooga\\": \\"booga wooga\\",
\\"booga\\": \\"booga\\",
\\"tooga\\": \\"tooga\\"
});
var one = \\"red\\";
var two = \\"blue\\";
var folder = \\"white\\";
var wooga = \\"booga wooga\\";
var booga = \\"booga\\";
var tooga = \\"tooga\\";
Expand All @@ -602,10 +611,16 @@ exports[`/webpack.js should handle dependencies 3`] = `
\\"folder\\": \\"folder\\"
},
\\"packages/webpack/test/specimens/local.css\\": {
\\"folder\\": \\"white\\",
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"booga\\": \\"booga\\",
\\"looga\\": \\"booga looga\\"
},
\\"packages/webpack/test/specimens/start.css\\": {
\\"one\\": \\"red\\",
\\"two\\": \\"blue\\",
\\"folder\\": \\"white\\",
\\"wooga\\": \\"booga wooga\\",
\\"booga\\": \\"booga\\",
\\"tooga\\": \\"tooga\\"
Expand Down

0 comments on commit 479866d

Please sign in to comment.