Skip to content

Commit b087037

Browse files
Add support for CommonJS loaders (#243)
1 parent c1214c2 commit b087037

File tree

5 files changed

+28
-19
lines changed

5 files changed

+28
-19
lines changed

appveyor.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ test_script:
2929
- npm run karma
3030
- npm run karma-bundled
3131
- npm run karma-bundled-nojquery
32+
- npm run karma-bundled-nojquery-cjs
3233

3334
- >-
3435
OpenCover\tools\OpenCover.Console -returntargetcode -register:user -oldstyle

build/make-nojquery.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ const README = `# DevExtreme ASP.NET Data
88
jQuery-free version of [devextreme-aspnet-data](https://www.npmjs.com/package/devextreme-aspnet-data).
99
`;
1010

11-
const JQ_SURROGATE_AMD = `{
12-
ajax: require("devextreme/core/utils/ajax").sendRequest,
13-
Deferred: require("devextreme/core/utils/deferred").Deferred,
14-
extend: require("devextreme/core/utils/extend").extend
15-
}`;
11+
const JQ_SURROGATE_MODULAR = `$1{
12+
$1 ajax: require("devextreme/core/utils/ajax").sendRequest,
13+
$1 Deferred: require("devextreme/core/utils/deferred").Deferred,
14+
$1 extend: require("devextreme/core/utils/extend").extend
15+
$1}`;
1616

17-
const JQ_SURROGATE_GLOBAL = `throw "This script should be used with an AMD loader"`;
17+
const JQ_SURROGATE_GLOBAL = `throw "This script should be used with an AMD or CommonJS loader"`;
1818

1919
const AJAX_SETTINGS_SURROGATE = `{
2020
cache?: boolean;
@@ -45,9 +45,9 @@ fs.writeFileSync(path.join(outputPath, "package.json"), JSON.stringify(nojqueryP
4545
fs.writeFileSync(
4646
path.join(outputPath, "index.js"),
4747
fs.readFileSync(path.join(__dirname, "../js/dx.aspnet.data.js"), "utf-8")
48-
.replace("require(\"jquery\")", JQ_SURROGATE_AMD)
48+
.replace(/( +)require\("jquery"\)/g, JQ_SURROGATE_MODULAR)
4949
.replace(/DevExpress\.data\.AspNet = [^]+?\)/, JQ_SURROGATE_GLOBAL)
50-
.replace(/\/\* global .+?\*\//, "/* global define */")
50+
.replace(/\/\* global .+?\*\//, "/* global define, module, require */")
5151
);
5252

5353
fs.writeFileSync(

js-test/test.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,37 @@
11
// jshint strict: true, browser: true, undef: true, unused: true, eqeqeq: true
2-
/* global ASPNET_DATA_SCRIPT, DevExpress, define, Promise */
2+
/* global ASPNET_DATA_SCRIPT, DevExpress, define, module, Promise, require */
33

44
(function(factory) {
55
"use strict";
66

7-
var QUnit = window.QUnit;
8-
97
if(typeof define === "function" && define.amd) {
10-
define("qunit-amd", function() {
11-
return QUnit; // https://github.com/karma-runner/karma-qunit/issues/57
12-
});
13-
148
define(function(require) {
159
factory(
16-
require("qunit-amd"),
1710
require("xhr-mock").default,
1811
require("devextreme/data/data_source"),
1912
require(ASPNET_DATA_SCRIPT)
2013
);
2114
});
15+
} else if (typeof module === "object" && module.exports) {
16+
module.exports = factory(
17+
require("xhr-mock").default,
18+
require("devextreme/data/data_source"),
19+
require(ASPNET_DATA_SCRIPT)
20+
);
2221
} else {
2322
factory(
24-
QUnit,
2523
window.XHRMock,
2624
DevExpress.data.DataSource,
2725
DevExpress.data.AspNet
2826
);
2927
}
3028

31-
})(function(QUnit, XHRMock, DataSource, AspNet) {
29+
})(function(XHRMock, DataSource, AspNet) {
3230
"use strict";
3331

32+
// https://github.com/karma-runner/karma-qunit/issues/57
33+
var QUnit = window.QUnit;
34+
3435
var createStore = AspNet.createStore,
3536
NEVER_RESOLVE = new Promise(function() { });
3637

js/dx.aspnet.data.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Copyright (c) Developer Express Inc.
33

44
// jshint strict: true, undef: true, unused: true, eqeqeq: true
5-
/* global DevExpress, jQuery, define */
5+
/* global DevExpress, jQuery, define, module, require */
66

77
(function(factory) {
88
"use strict";
@@ -15,6 +15,12 @@
1515
require("devextreme/data/utils")
1616
);
1717
});
18+
} else if (typeof module === "object" && module.exports) {
19+
module.exports = factory(
20+
require("jquery"),
21+
require("devextreme/data/custom_store"),
22+
require("devextreme/data/utils")
23+
);
1824
} else {
1925
DevExpress.data.AspNet = factory(
2026
jQuery,

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"karma": "cd js-test && karma start",
3838
"karma-bundled": "cd js-test && webpack --define ASPNET_DATA_SCRIPT='../js/dx.aspnet.data.js' test.js test-bundle.js && karma start --bundled",
3939
"karma-bundled-nojquery": "cd js-test && webpack --define ASPNET_DATA_SCRIPT='../js-nojquery/index.js' test.js test-bundle.js && karma start --bundled",
40+
"karma-bundled-nojquery-cjs": "cd js-test && webpack --define ASPNET_DATA_SCRIPT='../js-nojquery/index.js' --define define=false test.js test-bundle.js && karma start --bundled",
4041
"dts": "cd js-test && tsc check-ts-compilation.ts && tsc check-ts-compilation.nojquery.ts",
4142
"jshint": "jshint --verbose js js-nojquery",
4243
"eclint": "eclint check *.{yml,json} {net,js,js-test}/**/*.{cs,js,ts,html,json,cshtml,tt} !net/**/{bin,obj}/** !net/docfx/build/** !js-test/test-bundle.js !net/Sample/{node_modules,wwwroot/lib}/**"

0 commit comments

Comments
 (0)