123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- "use strict";
- var _path = _interopRequireDefault(require("path"));
- var _isEqualLocals = _interopRequireDefault(require("./runtime/isEqualLocals"));
- var _stringifyRequest = require("../../stringify-request");
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
- const loaderApi = ()=>{};
- loaderApi.pitch = function loader(request) {
- const loaderSpan = this.currentTraceSpan.traceChild("next-style-loader");
- return loaderSpan.traceFn(()=>{
- const options = this.getOptions();
- const insert = typeof options.insert === "undefined" ? '"head"' : typeof options.insert === "string" ? JSON.stringify(options.insert) : options.insert.toString();
- const injectType = options.injectType || "styleTag";
- const esModule = typeof options.esModule !== "undefined" ? options.esModule : false;
- delete options.esModule;
- switch(injectType){
- case "linkTag":
- {
- const hmrCode = this.hot ? `
- if (module.hot) {
- module.hot.accept(
- ${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)},
- function() {
- ${esModule ? "update(content);" : `content = require(${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)});
- content = content.__esModule ? content.default : content;
- update(content);`}
- }
- );
- module.hot.dispose(function() {
- update();
- });
- }` : "";
- return `${esModule ? `import api from ${(0, _stringifyRequest).stringifyRequest(this, `!${_path.default.join(__dirname, "runtime/injectStylesIntoLinkTag.js")}`)};
- import content from ${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)};` : `var api = require(${(0, _stringifyRequest).stringifyRequest(this, `!${_path.default.join(__dirname, "runtime/injectStylesIntoLinkTag.js")}`)});
- var content = require(${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)});
- content = content.__esModule ? content.default : content;`}
- var options = ${JSON.stringify(options)};
- options.insert = ${insert};
- var update = api(content, options);
- ${hmrCode}
- ${esModule ? "export default {}" : ""}`;
- }
- case "lazyStyleTag":
- case "lazySingletonStyleTag":
- {
- const isSingleton = injectType === "lazySingletonStyleTag";
- const hmrCode = this.hot ? `
- if (module.hot) {
- if (!content.locals || module.hot.invalidate) {
- var isEqualLocals = ${_isEqualLocals.default.toString()};
- var oldLocals = content.locals;
- module.hot.accept(
- ${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)},
- function () {
- ${esModule ? `if (!isEqualLocals(oldLocals, content.locals)) {
- module.hot.invalidate();
- return;
- }
- oldLocals = content.locals;
- if (update && refs > 0) {
- update(content);
- }` : `content = require(${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)});
- content = content.__esModule ? content.default : content;
- if (!isEqualLocals(oldLocals, content.locals)) {
- module.hot.invalidate();
- return;
- }
- oldLocals = content.locals;
- if (update && refs > 0) {
- update(content);
- }`}
- }
- )
- }
- module.hot.dispose(function() {
- if (update) {
- update();
- }
- });
- }` : "";
- return `${esModule ? `import api from ${(0, _stringifyRequest).stringifyRequest(this, `!${_path.default.join(__dirname, "runtime/injectStylesIntoStyleTag.js")}`)};
- import content from ${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)};` : `var api = require(${(0, _stringifyRequest).stringifyRequest(this, `!${_path.default.join(__dirname, "runtime/injectStylesIntoStyleTag.js")}`)});
- var content = require(${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)});
- content = content.__esModule ? content.default : content;
- if (typeof content === 'string') {
- content = [[module.id, content, '']];
- }`}
- var refs = 0;
- var update;
- var options = ${JSON.stringify(options)};
- options.insert = ${insert};
- options.singleton = ${isSingleton};
- var exported = {};
- exported.locals = content.locals || {};
- exported.use = function() {
- if (!(refs++)) {
- update = api(content, options);
- }
- return exported;
- };
- exported.unuse = function() {
- if (refs > 0 && !--refs) {
- update();
- update = null;
- }
- };
- ${hmrCode}
- ${esModule ? "export default" : "module.exports ="} exported;`;
- }
- case "styleTag":
- case "singletonStyleTag":
- default:
- {
- const isSingleton = injectType === "singletonStyleTag";
- const hmrCode = this.hot ? `
- if (module.hot) {
- if (!content.locals || module.hot.invalidate) {
- var isEqualLocals = ${_isEqualLocals.default.toString()};
- var oldLocals = content.locals;
- module.hot.accept(
- ${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)},
- function () {
- ${esModule ? `if (!isEqualLocals(oldLocals, content.locals)) {
- module.hot.invalidate();
- return;
- }
- oldLocals = content.locals;
- update(content);` : `content = require(${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)});
- content = content.__esModule ? content.default : content;
- if (typeof content === 'string') {
- content = [[module.id, content, '']];
- }
- if (!isEqualLocals(oldLocals, content.locals)) {
- module.hot.invalidate();
- return;
- }
- oldLocals = content.locals;
- update(content);`}
- }
- )
- }
- module.hot.dispose(function() {
- update();
- });
- }` : "";
- return `${esModule ? `import api from ${(0, _stringifyRequest).stringifyRequest(this, `!${_path.default.join(__dirname, "runtime/injectStylesIntoStyleTag.js")}`)};
- import content from ${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)};` : `var api = require(${(0, _stringifyRequest).stringifyRequest(this, `!${_path.default.join(__dirname, "runtime/injectStylesIntoStyleTag.js")}`)});
- var content = require(${(0, _stringifyRequest).stringifyRequest(this, `!!${request}`)});
- content = content.__esModule ? content.default : content;
- if (typeof content === 'string') {
- content = [[module.id, content, '']];
- }`}
- var options = ${JSON.stringify(options)};
- options.insert = ${insert};
- options.singleton = ${isSingleton};
- var update = api(content, options);
- ${hmrCode}
- ${esModule ? "export default" : "module.exports ="} content.locals || {};`;
- }
- }
- });
- };
- module.exports = loaderApi;
- //# sourceMappingURL=index.js.map
|