expose-loader
Advanced tools
Comparing version 1.0.3 to 2.0.0
@@ -5,2 +5,10 @@ # Changelog | ||
## [2.0.0](https://github.com/webpack-contrib/expose-loader/compare/v1.0.3...v2.0.0) (2021-02-02) | ||
### ⚠ BREAKING CHANGES | ||
* minimum supported `webpack` version is `5` | ||
* inline syntax was changed: `[]` is no longer supported (i.e. `import $ from "expose-loader?exposes[]=$&exposes[]=jQuery!jquery`), please use `,` comma separator (i.e. `import $ from "expose-loader?exposes=$,jQuery!jquery`) | ||
### [1.0.3](https://github.com/webpack-contrib/expose-loader/compare/v1.0.2...v1.0.3) (2020-11-26) | ||
@@ -7,0 +15,0 @@ |
@@ -8,6 +8,2 @@ "use strict"; | ||
var _loaderUtils = require("loader-utils"); | ||
var _schemaUtils = require("schema-utils"); | ||
var _options = _interopRequireDefault(require("./options.json")); | ||
@@ -24,7 +20,3 @@ | ||
function loader() { | ||
const options = (0, _loaderUtils.getOptions)(this); | ||
(0, _schemaUtils.validate)(_options.default, options, { | ||
name: "Expose Loader", | ||
baseDataPath: "options" | ||
}); | ||
const options = this.getOptions(_options.default); | ||
const callback = this.async(); | ||
@@ -62,6 +54,6 @@ let exposes; | ||
const newRequest = (0, _utils.contextify)(this.context, (0, _loaderUtils.getRemainingRequest)(this)); | ||
const stringifiedNewRequest = (0, _loaderUtils.stringifyRequest)(this, `-!${newRequest}`); | ||
const newRequest = (0, _utils.contextify)(this.context, this.remainingRequest); | ||
const stringifiedNewRequest = (0, _utils.stringifyRequest)(this, `-!${newRequest}`); | ||
let code = `var ___EXPOSE_LOADER_IMPORT___ = require(${stringifiedNewRequest});\n`; | ||
code += `var ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(${(0, _loaderUtils.stringifyRequest)(this, require.resolve("./runtime/getGlobalThis.js"))});\n`; | ||
code += `var ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(${(0, _utils.stringifyRequest)(this, require.resolve("./runtime/getGlobalThis.js"))});\n`; | ||
code += `var ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\n`; | ||
@@ -75,3 +67,3 @@ | ||
} = expose; | ||
const globalNameInterpolated = globalName.map(item => (0, _loaderUtils.interpolateName)(this, item, {})); | ||
const globalNameInterpolated = globalName.map(item => (0, _utils.interpolateName)(this, item, {})); | ||
@@ -78,0 +70,0 @@ if (typeof moduleLocalName !== "undefined") { |
{ | ||
"title": "Expose Loader options", | ||
"definitions": { | ||
@@ -3,0 +4,0 @@ "ObjectPattern": { |
@@ -9,2 +9,4 @@ "use strict"; | ||
exports.contextify = contextify; | ||
exports.stringifyRequest = stringifyRequest; | ||
exports.interpolateName = interpolateName; | ||
@@ -83,8 +85,9 @@ var _path = _interopRequireDefault(require("path")); | ||
function getExposes(items) { | ||
let result = []; | ||
let result; | ||
const exposeItems = typeof items === "string" && items.includes(",") ? items.split(",") : items; | ||
if (typeof items === "string") { | ||
result.push(resolveExposes(items)); | ||
if (typeof exposeItems === "string") { | ||
result = [resolveExposes(exposeItems)]; | ||
} else { | ||
result = [].concat(items).map(item => resolveExposes(item)); | ||
result = [].concat(exposeItems).map(item => resolveExposes(item)); | ||
} | ||
@@ -117,2 +120,37 @@ | ||
}).join("!"); | ||
} | ||
function isAbsolutePath(str) { | ||
return _path.default.posix.isAbsolute(str) || _path.default.win32.isAbsolute(str); | ||
} | ||
function stringifyRequest(loaderContext, request) { | ||
const splitted = request.split("!"); | ||
const context = loaderContext.context || loaderContext.options && loaderContext.options.context; | ||
return JSON.stringify(splitted.map(part => { | ||
// First, separate singlePath from query, because the query might contain paths again | ||
const splittedPart = part.match(/^(.*?)(\?.*)/); | ||
const query = splittedPart ? splittedPart[2] : ""; | ||
let singlePath = splittedPart ? splittedPart[1] : part; | ||
if (isAbsolutePath(singlePath) && context) { | ||
singlePath = _path.default.relative(context, singlePath); | ||
} | ||
return singlePath.replace(/\\/g, "/") + query; | ||
}).join("!")); | ||
} | ||
function interpolateName(loaderContext, filename) { | ||
let basename = "file"; | ||
if (loaderContext.resourcePath) { | ||
const parsed = _path.default.parse(loaderContext.resourcePath); | ||
if (parsed.dir) { | ||
basename = parsed.name; | ||
} | ||
} | ||
return filename.replace(/\[name\]/gi, () => basename); | ||
} |
{ | ||
"name": "expose-loader", | ||
"version": "1.0.3", | ||
"version": "2.0.0", | ||
"description": "expose loader module for webpack", | ||
@@ -41,12 +41,8 @@ "license": "MIT", | ||
"peerDependencies": { | ||
"webpack": "^4.0.0 || ^5.0.0" | ||
"webpack": "^5.0.0" | ||
}, | ||
"dependencies": { | ||
"loader-utils": "^2.0.0", | ||
"schema-utils": "^3.0.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/cli": "^7.12.8", | ||
"@babel/core": "^7.12.9", | ||
"@babel/preset-env": "^7.12.7", | ||
"@babel/cli": "^7.12.10", | ||
"@babel/core": "^7.12.10", | ||
"@babel/preset-env": "^7.12.11", | ||
"@commitlint/cli": "^11.0.0", | ||
@@ -57,21 +53,20 @@ "@commitlint/config-conventional": "^11.0.0", | ||
"babel-jest": "^26.6.3", | ||
"babel-loader": "^8.2.1", | ||
"cross-env": "^7.0.2", | ||
"babel-loader": "^8.2.2", | ||
"cross-env": "^7.0.3", | ||
"del": "^6.0.0", | ||
"del-cli": "^3.0.1", | ||
"eslint": "^7.14.0", | ||
"eslint-config-prettier": "^6.15.0", | ||
"eslint": "^7.19.0", | ||
"eslint-config-prettier": "^7.2.0", | ||
"eslint-plugin-import": "^2.22.1", | ||
"eslint-plugin-prettier": "^3.1.4", | ||
"husky": "^4.3.0", | ||
"husky": "^4.3.8", | ||
"jest": "^26.6.3", | ||
"lint-staged": "^10.5.2", | ||
"lint-staged": "^10.5.3", | ||
"memfs": "^3.2.0", | ||
"npm-run-all": "^4.1.5", | ||
"prettier": "^2.2.0", | ||
"prettier": "^2.2.1", | ||
"react": "^17.0.1", | ||
"rx": "^4.1.0", | ||
"standard-version": "^9.0.0", | ||
"standard-version": "^9.1.0", | ||
"styled-components": "^5.2.1", | ||
"webpack": "^5.6.0" | ||
"webpack": "^5.19.0" | ||
}, | ||
@@ -78,0 +73,0 @@ "keywords": [ |
@@ -39,3 +39,3 @@ <div align="center"> | ||
```js | ||
import $ from "expose-loader?exposes[]=$&exposes[]=jQuery!jquery"; | ||
import $ from "expose-loader?exposes=$,jQuery!jquery"; | ||
// | ||
@@ -55,3 +55,3 @@ // Adds the `jquery` to the global object under the names `$` and `jQuery` | ||
reduce, | ||
} from "expose-loader?exposes[]=_.map|map&exposes[]=_.reduce|reduce!underscore"; | ||
} from "expose-loader?exposes=_.map|map,_.reduce|reduce!underscore"; | ||
// | ||
@@ -58,0 +58,0 @@ // Adds the `map` and `reduce` method from `underscore` to the global object under the name `_.map` and `_.reduce` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
24581
1
26
283
- Removedloader-utils@^2.0.0
- Removedschema-utils@^3.0.0
- Removedbig.js@5.2.2(transitive)
- Removedemojis-list@3.0.0(transitive)
- Removedjson5@2.2.3(transitive)
- Removedloader-utils@2.0.4(transitive)