index.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = resolveUrlLoader;
  6. var _sourceMap = require("next/dist/compiled/source-map");
  7. var _valueProcessor = _interopRequireDefault(require("./lib/value-processor"));
  8. var _joinFunction = require("./lib/join-function");
  9. var _postcss = _interopRequireDefault(require("./lib/postcss"));
  10. async function resolveUrlLoader(content, sourceMap) {
  11. const options = Object.assign({
  12. sourceMap: this.sourceMap,
  13. silent: false,
  14. absolute: false,
  15. keepQuery: false,
  16. root: false,
  17. debug: false,
  18. join: _joinFunction.defaultJoin
  19. }, this.getOptions());
  20. let sourceMapConsumer;
  21. if (sourceMap) {
  22. sourceMapConsumer = new _sourceMap.SourceMapConsumer(sourceMap);
  23. }
  24. const callback = this.async();
  25. const { postcss } = await options.postcss();
  26. (0, _postcss).default(postcss, this.resourcePath, content, {
  27. outputSourceMap: Boolean(options.sourceMap),
  28. transformDeclaration: (0, _valueProcessor).default(this.resourcePath, options),
  29. inputSourceMap: sourceMap,
  30. sourceMapConsumer: sourceMapConsumer
  31. }).catch(onFailure).then(onSuccess);
  32. function onFailure(error) {
  33. callback(encodeError("CSS error", error));
  34. }
  35. function onSuccess(reworked) {
  36. if (reworked) {
  37. // complete with source-map
  38. // source-map sources are relative to the file being processed
  39. if (options.sourceMap) {
  40. callback(null, reworked.content, reworked.map);
  41. } else {
  42. callback(null, reworked.content);
  43. }
  44. }
  45. }
  46. function encodeError(label, exception) {
  47. return new Error([
  48. "resolve-url-loader",
  49. ": ",
  50. [
  51. label
  52. ].concat(typeof exception === "string" && exception || exception instanceof Error && [
  53. exception.message,
  54. exception.stack.split("\n")[1].trim(),
  55. ] || []).filter(Boolean).join("\n "),
  56. ].join(""));
  57. }
  58. }
  59. function _interopRequireDefault(obj) {
  60. return obj && obj.__esModule ? obj : {
  61. default: obj
  62. };
  63. }
  64. //# sourceMappingURL=index.js.map