123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _path = _interopRequireDefault(require("path"));
- var _loaderUtils = _interopRequireDefault(require("loader-utils"));
- var _schemaUtils = _interopRequireDefault(require("schema-utils"));
- var _options = _interopRequireDefault(require("./options.json"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- const loaderApi = () => {};
- loaderApi.pitch = function loader(request) {
- const options = _loaderUtils.default.getOptions(this) || {};
- (0, _schemaUtils.default)(_options.default, options, {
- name: 'Style Loader',
- baseDataPath: 'options'
- });
- 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(
- ${_loaderUtils.default.stringifyRequest(this, `!!${request}`)},
- function() {
- ${esModule ? `update(content);` : `var newContent = require(${_loaderUtils.default.stringifyRequest(this, `!!${request}`)});
- newContent = newContent.__esModule ? newContent.default : newContent;
- update(newContent);`}
- }
- );
- module.hot.dispose(function() {
- update();
- });
- }` : '';
- return `${esModule ? `import api from ${_loaderUtils.default.stringifyRequest(this, `!${_path.default.join(__dirname, 'runtime/injectStylesIntoLinkTag.js')}`)};
- import content from ${_loaderUtils.default.stringifyRequest(this, `!!${request}`)};` : `var api = require(${_loaderUtils.default.stringifyRequest(this, `!${_path.default.join(__dirname, 'runtime/injectStylesIntoLinkTag.js')}`)});
- var content = require(${_loaderUtils.default.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) {
- var lastRefs = module.hot.data && module.hot.data.refs || 0;
- if (lastRefs) {
- exported.use();
- if (!content.locals) {
- refs = lastRefs;
- }
- }
- if (!content.locals) {
- module.hot.accept();
- }
- module.hot.dispose(function(data) {
- data.refs = content.locals ? 0 : refs;
- if (dispose) {
- dispose();
- }
- });
- }` : '';
- return `${esModule ? `import api from ${_loaderUtils.default.stringifyRequest(this, `!${_path.default.join(__dirname, 'runtime/injectStylesIntoStyleTag.js')}`)};
- import content from ${_loaderUtils.default.stringifyRequest(this, `!!${request}`)};` : `var api = require(${_loaderUtils.default.stringifyRequest(this, `!${_path.default.join(__dirname, 'runtime/injectStylesIntoStyleTag.js')}`)});
- var content = require(${_loaderUtils.default.stringifyRequest(this, `!!${request}`)});
- content = content.__esModule ? content.default : content;
- if (typeof content === 'string') {
- content = [[module.id, content, '']];
- }`}
- var refs = 0;
- var dispose;
- var options = ${JSON.stringify(options)};
- options.insert = ${insert};
- options.singleton = ${isSingleton};
- var exported = {};
- if (content.locals) {
- exported.locals = content.locals;
- }
- exported.use = function() {
- if (!(refs++)) {
- dispose = api(content, options);
- }
- return exported;
- };
- exported.unuse = function() {
- if (refs > 0 && !--refs) {
- dispose();
- dispose = 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.accept(
- ${_loaderUtils.default.stringifyRequest(this, `!!${request}`)},
- function () {
- ${esModule ? `update(content);` : `var newContent = require(${_loaderUtils.default.stringifyRequest(this, `!!${request}`)});
- newContent = newContent.__esModule ? newContent.default : newContent;
- if (typeof newContent === 'string') {
- newContent = [[module.id, newContent, '']];
- }
- update(newContent);`}
- }
- )
- }
- module.hot.dispose(function() {
- update();
- });
- }` : '';
- return `${esModule ? `import api from ${_loaderUtils.default.stringifyRequest(this, `!${_path.default.join(__dirname, 'runtime/injectStylesIntoStyleTag.js')}`)};
- import content from ${_loaderUtils.default.stringifyRequest(this, `!!${request}`)};
- var clonedContent = content;` : `var api = require(${_loaderUtils.default.stringifyRequest(this, `!${_path.default.join(__dirname, 'runtime/injectStylesIntoStyleTag.js')}`)});
- var content = require(${_loaderUtils.default.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);
- var exported = content.locals ? content.locals : {};
- ${hmrCode}
- ${esModule ? 'export default' : 'module.exports ='} exported;`;
- }
- }
- };
- var _default = loaderApi;
- exports.default = _default;
|