##// END OF EJS Templates
Added support for commonjs module format, all tests are pass.
cin -
r60:b23fe4a1683a default
parent child
Show More
@@ -0,0 +1,22
1 var rjs = require('requirejs');
2
3 rjs.config({
4 baseUrl: '.',
5 packages: [{
6 name: "@implab/core",
7 location: "build/dist"
8 },
9 {
10 name: "test",
11 location: "build/test"
12 },
13 {
14 name: "dojo",
15 location: "node_modules/dojo"
16 }
17 ],
18 nodeRequire: require
19 });
20
21
22 rjs(['test/plan']); No newline at end of file
@@ -0,0 +1,20
1 module.exports = {
2 foo: {
3 $type: "./Foo:Foo"
4 },
5
6 bar: {
7 $type: "./Bar:Bar",
8 params: {
9 db: {
10 provider: {
11 $dependency: "db"
12 }
13 },
14 foo: {
15 $type: "./Foo:Foo"
16 }
17 }
18 },
19 db: "db://localhost"
20 };
@@ -0,0 +1,11
1 {
2 "name": "@implab/core-test",
3 "version": "0.0.1-dev",
4 "main": "main.js",
5 "author": "Implab team",
6 "license": "BSD-2-Clause",
7 "repository": "https://bitbucket.org/implab/implabjs",
8 "publishConfig": {
9 "access": "public"
10 }
11 }
@@ -0,0 +1,5
1 import "./ActivatableTests";
2 import "./TraceSourceTests";
3 import "./CancellationTests";
4 import "./ObservableTests";
5 import "./ContainerTests";
@@ -0,0 +1,1
1 import "./plan";
@@ -0,0 +1,22
1 {
2 "extends": "../tsconfig",
3 "compilerOptions": {
4 "rootDir": "ts",
5 "baseUrl": ".",
6 "paths": {
7 "@implab/core/*": [
8 "../../build/dist/*"
9 ]
10 },
11 "types": [
12 "node"
13 ],
14 "rootDirs": [
15 "ts",
16 "../typings/test"
17 ]
18 },
19 "include" : [
20 "ts/**/*.ts"
21 ]
22 } No newline at end of file
@@ -46,10 +46,11 def createSoursetTasks = { String name,
46 46 into outDir
47 47 }
48 48
49 def compileTypingsTask = task "compileTypings$setName"(dependsOn: beforeBuildTask, type: Exec) {
49 def compileTsTask = task "compileTs$setName"(dependsOn: beforeBuildTask, type: Exec) {
50 50 inputs.dir("$setDir/ts")
51 51 inputs.file("$srcDir/tsconfig.json")
52 52 inputs.file("$setDir/tsconfig.json")
53 outputs.dir(destDir)
53 54 outputs.dir(declDir)
54 55
55 56 commandLine 'node_modules/.bin/tsc',
@@ -57,36 +58,20 def createSoursetTasks = { String name,
57 58 '-t', target,
58 59 '-m', jsmodule,
59 60 '-d',
60 '--emitDeclarationOnly',
61 '--outDir', destDir,
61 62 '--declarationDir', declDir
62 63
63 64 if (lib)
64 65 args '--lib', lib
65 66 }
66 67
67 def compileTsTask = task "compileTs$setName"(dependsOn: beforeBuildTask, type: Exec) {
68 inputs.dir("$setDir/ts")
69 inputs.file("$srcDir/tsconfig.json")
70 inputs.file("$setDir/tsconfig.json")
71 outputs.dir(destDir)
72
73 commandLine 'node_modules/.bin/tsc',
74 '-p', "$setDir/tsconfig.json",
75 '-t', target,
76 '-m', jsmodule,
77 '--outDir', destDir
78
79 if (lib)
80 args '--lib', lib
81 }
82
83 68 def copyTsOutputTask = task "copyTsOutput$setName"(dependsOn: compileTsTask, type: Copy) {
84 from compileTsTask
69 from destDir
85 70 into outDir
86 71 }
87 72
88 def copyTypingsTask = task "copyTypings$setName"(dependsOn: compileTypingsTask, type: Copy) {
89 from compileTypingsTask
73 def copyTypingsTask = task "copyTypings$setName"(dependsOn: compileTsTask, type: Copy) {
74 from declDir
90 75 into outDir
91 76 }
92 77
@@ -153,16 +138,18 sourceSets.each { createSoursetTasks(it,
153 138 testSets.each { createSoursetTasks(it, testDir) }
154 139
155 140 compileTsAmd {
156 dependsOn compileTypingsMain
141 dependsOn compileTsMain
157 142 }
158 143
159 compileTypingsAmd {
160 dependsOn compileTypingsMain
144 compileTsCjs {
145 dependsOn compileTsMain
161 146 }
162 147
163 148 task build(dependsOn: buildMain) {
164 149 if (jsmodule == "amd")
165 150 dependsOn buildAmd
151 if (jsmodule == "commonjs")
152 dependsOn buildCjs
166 153 }
167 154
168 155 compileTsTest {
@@ -170,11 +157,33 compileTsTest {
170 157 }
171 158
172 159 compileTsTestAmd {
173 dependsOn compileTypingsTestAmd
160 dependsOn compileTsTest
161 }
162
163 compileTsTestCjs {
164 dependsOn compileTsTest
174 165 }
175 166
176 task test(dependsOn: [buildTest, buildTestAmd], type: Exec) {
177 commandLine 'node', "$testDir/run-amd-tests.js"
167 task _installLocalCjsDependency(dependsOn: [buildTestCjs, "_packageMeta"], type: Exec) {
168 inputs.file("$distDir/package.json")
169 outputs.upToDateWhen {
170 new File("$testDir/$packageName").exists()
171 }
172
173 workingDir testDir
174
175 commandLine 'npm', 'install', '--no-save', '--force', distDir
176 }
177
178 task test(dependsOn: [buildTest], type: Exec) {
179 if (jsmodule == "amd")
180 dependsOn buildTestAmd
181 if (jsmodule == "commonjs") {
182 dependsOn buildTestCjs
183 dependsOn _installLocalCjsDependency
184 }
185
186 commandLine 'node', "$testDir/run-tests.js"
178 187 }
179 188
180 189 task _packageMeta(type: Copy) {
@@ -90,7 +90,7
90 90 },
91 91 "duplexer": {
92 92 "version": "0.1.1",
93 "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
93 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
94 94 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
95 95 "dev": true
96 96 },
@@ -144,7 +144,7
144 144 "dependencies": {
145 145 "tape": {
146 146 "version": "2.3.3",
147 "resolved": "http://registry.npmjs.org/tape/-/tape-2.3.3.tgz",
147 "resolved": "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz",
148 148 "integrity": "sha1-Lnzgox3wn41oUWZKcYQuDKUFevc=",
149 149 "dev": true,
150 150 "requires": {
@@ -277,7 +277,7
277 277 },
278 278 "minimist": {
279 279 "version": "0.0.5",
280 "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz",
280 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz",
281 281 "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=",
282 282 "dev": true
283 283 },
@@ -316,7 +316,7
316 316 },
317 317 "readable-stream": {
318 318 "version": "1.1.14",
319 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
319 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
320 320 "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
321 321 "dev": true,
322 322 "requires": {
@@ -369,7 +369,7
369 369 },
370 370 "string_decoder": {
371 371 "version": "0.10.31",
372 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
372 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
373 373 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
374 374 "dev": true
375 375 },
@@ -432,7 +432,7
432 432 },
433 433 "through2": {
434 434 "version": "0.2.3",
435 "resolved": "http://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
435 "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
436 436 "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
437 437 "dev": true,
438 438 "requires": {
@@ -59,6 +59,12 class ModuleResolver {
59 59 }
60 60
61 61 export function makeResolver(moduleName: string, contextRequire: Require) {
62 trace.debug(
63 "makeResolver moduleName={0}, contextRequire={1}",
64 moduleName || "<nil>",
65 contextRequire ? typeof (contextRequire) : "<nil>"
66 );
67
62 68 const base = moduleName && moduleName.split("/").slice(0, -1).join("/");
63 69
64 70 const resolver = new ModuleResolver(contextRequire, base);
@@ -91,7 +91,11 export class Configuration {
91 91 async loadConfiguration(moduleName: string, contextRequire?: any, ct = Cancellation.none) {
92 92 argumentNotEmptyString(moduleName, "moduleName");
93 93
94 trace.log("loadConfiguration moduleName={0}", moduleName);
94 trace.log(
95 "loadConfiguration moduleName={0}, contextRequire={1}",
96 moduleName,
97 contextRequire ? typeof (contextRequire) : "<nil>"
98 );
95 99
96 100 this._configName = moduleName;
97 101
@@ -109,7 +113,7 export class Configuration {
109 113 applyConfiguration(data: object, contextRequire?: any, ct = Cancellation.none) {
110 114 argumentNotNull(data, "data");
111 115
112 return this._applyConfiguration(data, makeResolver(void(0), contextRequire), ct);
116 return this._applyConfiguration(data, makeResolver(void (0), contextRequire), ct);
113 117 }
114 118
115 119 async _applyConfiguration(data: object, resolver?: ModuleResolver, ct = Cancellation.none) {
@@ -79,7 +79,7 test("Container configure/resolve tests"
79 79 test("Load configuration from module", async t => {
80 80 const container = new Container();
81 81
82 await container.configure("test/mock/config1");
82 await container.configure("./mock/config1", { contextRequire: require });
83 83 t.pass("The configuration should load");
84 84
85 85 const f1 = container.resolve("foo");
1 NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now