Skip to content

Commit 92ea3ee

Browse files
committed
tsc build fix
1 parent 012591a commit 92ea3ee

File tree

6 files changed

+250
-152
lines changed

6 files changed

+250
-152
lines changed

Brocfile.js

Lines changed: 30 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,53 +6,46 @@ Unless required by applicable law or agreed to in writing, software
distribute
66

77
const Funnel = require('broccoli-funnel');
88
const uglify = require('broccoli-uglify-sourcemap');
9-
const typescript = require('broccoli-typescript-compiler').default;
9+
const typescript = require('broccoli-typescript-compiler').typescript;
1010
const Rollup = require('broccoli-rollup');
1111
const Merge = require('broccoli-merge-trees');
12-
const resolve = require('rollup-plugin-node-resolve');
13-
const commonjs = require('rollup-plugin-commonjs');
14-
const buble = require('rollup-plugin-buble');
12+
const replace = require('broccoli-string-replace');
1513

16-
const es6Tree = typescript('src');
17-
18-
const es6 = new Rollup(es6Tree, {
19-
annotation: 'es6',
20-
rollup: {
21-
input: 'index.js',
22-
external: ['spaniel'],
23-
output: [{
24-
file: 'es6/spaniel.js',
25-
format: 'es'
26-
}],
27-
plugins: [resolve({
28-
module: true,
29-
customResolveOptions: {
30-
moduleDirectory: 'node_modules'
31-
}
32-
})],
33-
onwarn: (o) => onRollupWarn(o)
14+
const es6Tree = typescript('src', {
15+
tsconfig: {
16+
compilerOptions: {
17+
"noImplicitAny": true,
18+
"declaration": true,
19+
"isolatedModules": false,
20+
"module": "es2015",
21+
"target": "es5",
22+
"outDir": "es6",
23+
"sourceMap": true,
24+
"moduleResolution": "node"
25+
},
26+
filesGlob: [
27+
"**/*.ts"
28+
]
3429
}
3530
});
3631

37-
const umdTree = new Rollup(es6Tree, {
38-
annotation: 'umd',
32+
const umdTree = replace(new Rollup(es6Tree, {
3933
rollup: {
40-
input: 'index.js',
41-
external: ['spaniel'],
42-
output: [{
34+
input: 'es6/index.js',
35+
output: {
4336
file: 'spaniel.js',
44-
exports: 'named',
4537
format: 'umd',
4638
name: 'spaniel',
39+
exports: 'named',
4740
sourcemap: true
48-
}],
49-
plugins: [buble(), commonjs(), resolve({
50-
main: true,
51-
customResolveOptions: {
52-
moduleDirectory: 'node_modules'
53-
}
54-
})],
55-
onwarn: (o) => onRollupWarn(o)
41+
},
42+
onwarn: (opt) => onRollupWarn(opt)
43+
}
44+
}), {
45+
files: [ 'spaniel.js' ],
46+
pattern: {
47+
match: /undefined.__extends/g,
48+
replacement: 'false'
5649
}
5750
});
5851

@@ -63,7 +56,7 @@ const minTree = uglify(new Funnel(umdTree, {
6356
compress: true
6457
});
6558

66-
module.exports = new Merge([es6, umdTree, minTree]);
59+
module.exports = new Merge([es6Tree, umdTree, minTree]);
6760

6861
function onRollupWarn({ code, loc, frame, message }) {
6962
// ahead-of-time (AOT) compiler warning suppression

package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
"description": "LinkedIn's viewport tracking library",
55
"license": "Apache 2.0",
66
"main": "exports/spaniel.js",
7-
"module": "exports/es6/spaniel.js",
7+
"jsnext:main": "exports/es6/index.js",
8+
"module": "exports/es6/index.js",
9+
"typings": "exports/es6/index.d.ts",
810
"scripts": {
9-
"test": "npm run build && testem ci && node test/headless/run",
11+
"test": "tsc && npm run build && testem ci && node test/headless/run",
1012
"test:headless": "mocha --require babel-core/register test/headless/specs/**/*.js",
1113
"serve": "npm run build && node test/headless/server/app",
1214
"watch": "broccoli-timepiece exports",
@@ -49,22 +51,20 @@
4951
"broccoli-funnel": "^2.0.1",
5052
"broccoli-merge-trees": "^3.0.0",
5153
"broccoli-rollup": "^2.1.1",
52-
"broccoli-typescript-compiler": "^3.0.1",
54+
"broccoli-typescript-compiler": "^1.0.1",
5355
"broccoli-uglify-sourcemap": "^2.2.0",
5456
"chai": "^4.1.2",
5557
"express": "^4.16.3",
5658
"gzip-size": "^5.0.0",
5759
"mocha": "^5.2.0",
5860
"nightmare": "^3.0.1",
5961
"pretty-bytes": "^5.1.0",
60-
"rollup-plugin-buble": "^0.19.2",
61-
"rollup-plugin-commonjs": "^9.1.3",
62-
"rollup-plugin-node-resolve": "^3.3.0",
63-
"rsvp": "^4.8.2",
62+
"rsvp": "^4.8.3",
6463
"serve-static": "^1.13.2",
65-
"sinon": "^6.1.2",
64+
"sinon": "^6.1.3",
6665
"testem": "^2.8.2",
6766
"tslint": "^5.10.0",
68-
"typescript": "2.9.2"
67+
"typescript": "2.9.2",
68+
"broccoli-string-replace": "^0.1.2"
6969
}
7070
}

src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ import {
3030
} from './spaniel-observer';
3131

3232
import {
33-
getGlobalEngine
33+
getGlobalEngine,
34+
setGlobalEngine
3435
} from './metal/engine';
3536

3637
import {
@@ -56,6 +57,7 @@ export {
5657
SpanielObserver,
5758
SpanielTrackedElement,
5859
getGlobalEngine,
60+
setGlobalEngine,
5961
w as __w__,
6062
invalidate
6163
};

src/metal/engine.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ export class Engine implements EngineInterface {
4343

4444
let globalEngine: EngineInterface = null;
4545

46+
export function setGlobalEngine(engine: EngineInterface): boolean {
47+
if (!!globalEngine) {
48+
return false;
49+
}
50+
globalEngine = engine;
51+
return true;
52+
}
53+
4654
export function getGlobalEngine() {
4755
return globalEngine || (globalEngine = new Engine());
4856
}

tsconfig.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
"declaration": true,
55
"isolatedModules": false,
66
"module": "es2015",
7-
"target": "es6",
7+
"target": "es5",
88
"sourceMap": true,
99
"moduleResolution": "node",
10-
"noUnusedLocals": true
10+
"noUnusedLocals": true,
11+
"outDir": "exports/es6"
1112
},
1213
"filesGlob": [
1314
"**/*.ts"

0 commit comments

Comments
 (0)