##// END OF EJS Templates
working on multi-platform support
cin -
r48:2ef1241803ee di-typescript
parent child
Show More
@@ -0,0 +1,46
1 import { Uuid } from "../Uuid";
2 import { argumentNotEmptyString } from "../safe";
3 import { TraceSource } from "../log/TraceSource";
4
5 export interface RequireFn {
6 (module: string): any;
7 (modules: string[], cb?: (...args: any[]) => any): void;
8 }
9
10 declare const require: RequireFn;
11
12 export const rjs = require;
13
14 declare function define(name: string, modules: string[], cb?: (...args: any[]) => any, eb?: (e) => any): void;
15 declare function define(modules: string[], cb?: (...args: any[]) => any, eb?: (e) => any): void;
16
17 interface RequireJsResolverParams {
18 contextRequire: RequireFn;
19 }
20
21 const trace = TraceSource.get("@implab/core/di/RequireJsHelper");
22
23 export async function createContextRequire(moduleName: string): Promise<RequireFn> {
24 argumentNotEmptyString(moduleName, "moduleName");
25
26 const parts = moduleName.split("/");
27 if (parts[0] === ".")
28 throw new Error("An absolute module path is required");
29
30 if (parts.length > 1)
31 parts.splice(-1, 1, Uuid());
32 else
33 parts.push(Uuid());
34
35 const shim = parts.join("/");
36
37 trace.debug(`define shim ${shim}`);
38
39 return new Promise<RequireFn>(fulfill => {
40 define(shim, ["require"], r => {
41 trace.debug("shim resolved");
42 return r;
43 });
44 require([shim], fulfill);
45 });
46 }
@@ -12,10 +12,12 def distDir = "$packageDir/$platform"
12 def testDir = "$packageDir/$platform"
12 def testDir = "$packageDir/$platform"
13
13
14 task printVersion {
14 task printVersion {
15 doLast {
15 println "version: $version"
16 println "version: $version"
16 println "packageName: $packageName"
17 println "packageName: $packageName"
17 println "platform: $platform"
18 println "platform: $platform"
18 }
19 }
20 }
19
21
20
22
21 task clean {
23 task clean {
@@ -48,10 +50,14 task _legacyJs(type:Copy) {
48
50
49 task _buildTs(dependsOn: _npmInstall, type:Exec) {
51 task _buildTs(dependsOn: _npmInstall, type:Exec) {
50 inputs.dir('src/ts')
52 inputs.dir('src/ts')
51 inputs.file('tsconfig.json')
53 inputs.file('src/tsconfig.json')
52 outputs.dir(distDir)
54 outputs.dir(distDir)
53
55
54 commandLine 'node_modules/.bin/tsc', '-p', 'src/tsconfig.json', '--outDir', distDir
56 commandLine 'node_modules/.bin/tsc',
57 '-p', 'src/tsconfig.json',
58 '--outDir', distDir,
59 '--listFiles',
60 '--traceResolution'
55 }
61 }
56
62
57 task _packageMeta(type: Copy) {
63 task _packageMeta(type: Copy) {
@@ -84,7 +84,7
84 },
84 },
85 "duplexer": {
85 "duplexer": {
86 "version": "0.1.1",
86 "version": "0.1.1",
87 "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
87 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
88 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
88 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
89 "dev": true
89 "dev": true
90 },
90 },
@@ -129,7 +129,7
129 "dependencies": {
129 "dependencies": {
130 "tape": {
130 "tape": {
131 "version": "2.3.3",
131 "version": "2.3.3",
132 "resolved": "http://registry.npmjs.org/tape/-/tape-2.3.3.tgz",
132 "resolved": "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz",
133 "integrity": "sha1-Lnzgox3wn41oUWZKcYQuDKUFevc=",
133 "integrity": "sha1-Lnzgox3wn41oUWZKcYQuDKUFevc=",
134 "dev": true,
134 "dev": true,
135 "requires": {
135 "requires": {
@@ -289,7 +289,7
289 },
289 },
290 "path-is-absolute": {
290 "path-is-absolute": {
291 "version": "1.0.1",
291 "version": "1.0.1",
292 "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
292 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
293 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
293 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
294 "dev": true
294 "dev": true
295 },
295 },
@@ -301,7 +301,7
301 },
301 },
302 "readable-stream": {
302 "readable-stream": {
303 "version": "1.1.14",
303 "version": "1.1.14",
304 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
304 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
305 "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
305 "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
306 "dev": true,
306 "dev": true,
307 "requires": {
307 "requires": {
@@ -354,7 +354,7
354 },
354 },
355 "string_decoder": {
355 "string_decoder": {
356 "version": "0.10.31",
356 "version": "0.10.31",
357 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
357 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
358 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
358 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
359 "dev": true
359 "dev": true
360 },
360 },
@@ -411,13 +411,13
411 },
411 },
412 "through": {
412 "through": {
413 "version": "2.3.8",
413 "version": "2.3.8",
414 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
414 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
415 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
415 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
416 "dev": true
416 "dev": true
417 },
417 },
418 "through2": {
418 "through2": {
419 "version": "0.2.3",
419 "version": "0.2.3",
420 "resolved": "http://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
420 "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
421 "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
421 "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
422 "dev": true,
422 "dev": true,
423 "requires": {
423 "requires": {
@@ -6,7 +6,9
6 // Copyright (c) 2010-2012 Robert Kieffer
6 // Copyright (c) 2010-2012 Robert Kieffer
7 // MIT License - http://opensource.org/licenses/mit-license.php
7 // MIT License - http://opensource.org/licenses/mit-license.php
8
8
9 declare var window: any;
9 declare const window: any;
10 declare const require;
11 declare const Buffer;
10
12
11 const _window: any = "undefined" !== typeof window ? window : null;
13 const _window: any = "undefined" !== typeof window ? window : null;
12
14
@@ -20,7 +20,7 import { Container } from "./Container";
20 import { ReferenceDescriptor } from "./ReferenceDescriptor";
20 import { ReferenceDescriptor } from "./ReferenceDescriptor";
21 import { TypeServiceDescriptor } from "./TypeServiceDescriptor";
21 import { TypeServiceDescriptor } from "./TypeServiceDescriptor";
22 import { FactoryServiceDescriptor } from "./FactoryServiceDescriptor";
22 import { FactoryServiceDescriptor } from "./FactoryServiceDescriptor";
23 import { rjs, createContextRequire, RequireFn } from "./RequireJsHelper";
23 import { rjs, createContextRequire, RequireFn } from "../../amd/ts/RequireJsHelper";
24 import { TraceSource } from "../log/TraceSource";
24 import { TraceSource } from "../log/TraceSource";
25 import { ConfigError } from "./ConfigError";
25 import { ConfigError } from "./ConfigError";
26 import { Cancellation } from "../Cancellation";
26 import { Cancellation } from "../Cancellation";
@@ -7,10 +7,16
7 "lib": [
7 "lib": [
8 "es5",
8 "es5",
9 "es2015.promise",
9 "es2015.promise",
10 "es2015.symbol"
10 "es2015.symbol",
11 ]
11 "dom"
12 ],
13 "rootDirs": [
14 "ts",
15 "amd/ts"
16 ],
17 "types": []
12 },
18 },
13 "include" : [
19 "include" : [
14 "ts/**/*.ts"
20 "ts/**/*.ts", "amd/ts/**/*.ts"
15 ]
21 ]
16 } No newline at end of file
22 }
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now