mirror of
https://github.com/ezolenko/rollup-plugin-typescript2.git
synced 2025-12-08 19:06:16 +00:00
- new transformers interface #76
This commit is contained in:
parent
9719d2f9a1
commit
7b939304ae
@ -139,7 +139,7 @@ See explanation for `rollupCommonJSResolveHack` option below.
|
||||
|
||||
```js
|
||||
const keysTransformer = require('ts-transformer-keys/transformer').default;
|
||||
const transformers = (service) =>
|
||||
const transformer = (service) =>
|
||||
{
|
||||
before: [ keysTransformer(service.getProgram()) ],
|
||||
after: []
|
||||
@ -147,7 +147,7 @@ See explanation for `rollupCommonJSResolveHack` option below.
|
||||
|
||||
// ...
|
||||
plugins: [
|
||||
typescript({ transformers })
|
||||
typescript({ transformers: [transformer] })
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
3
dist/host.d.ts
vendored
3
dist/host.d.ts
vendored
@ -1,4 +1,5 @@
|
||||
import * as tsTypes from "typescript";
|
||||
import { TransformerFactoryCreator } from "./ioptions";
|
||||
export declare class LanguageServiceHost implements tsTypes.LanguageServiceHost {
|
||||
private parsedConfig;
|
||||
private transformers;
|
||||
@ -6,7 +7,7 @@ export declare class LanguageServiceHost implements tsTypes.LanguageServiceHost
|
||||
private snapshots;
|
||||
private versions;
|
||||
private service?;
|
||||
constructor(parsedConfig: tsTypes.ParsedCommandLine, transformers: (service: tsTypes.LanguageService) => tsTypes.CustomTransformers | undefined);
|
||||
constructor(parsedConfig: tsTypes.ParsedCommandLine, transformers: TransformerFactoryCreator[]);
|
||||
reset(): void;
|
||||
setLanguageService(service: tsTypes.LanguageService): void;
|
||||
setSnapshot(fileName: string, data: string): tsTypes.IScriptSnapshot;
|
||||
|
||||
3
dist/ioptions.d.ts
vendored
3
dist/ioptions.d.ts
vendored
@ -1,5 +1,6 @@
|
||||
import { tsModule } from "./tsproxy";
|
||||
import * as tsTypes from "typescript";
|
||||
export declare type TransformerFactoryCreator = (ls: tsTypes.LanguageService) => tsTypes.CustomTransformers;
|
||||
export interface IOptions {
|
||||
include: string | string[];
|
||||
exclude: string | string[];
|
||||
@ -13,7 +14,7 @@ export interface IOptions {
|
||||
useTsconfigDeclarationDir: boolean;
|
||||
typescript: typeof tsModule;
|
||||
tsconfigOverride: any;
|
||||
transformers: (service: tsTypes.LanguageService) => tsTypes.CustomTransformers;
|
||||
transformers: TransformerFactoryCreator[];
|
||||
tsconfigDefaults: any;
|
||||
sourceMapCallback: (id: string, map: string) => void;
|
||||
}
|
||||
|
||||
18
dist/rollup-plugin-typescript2.cjs.js
vendored
18
dist/rollup-plugin-typescript2.cjs.js
vendored
@ -17314,9 +17314,21 @@ var LanguageServiceHost = /** @class */ (function () {
|
||||
return tsModule.sys.getDirectories(directoryName);
|
||||
};
|
||||
LanguageServiceHost.prototype.getCustomTransformers = function () {
|
||||
if (this.service === undefined || this.transformers === undefined)
|
||||
if (this.service === undefined || this.transformers === undefined || this.transformers.length === 0)
|
||||
return undefined;
|
||||
return this.transformers(this.service);
|
||||
var transformer = {
|
||||
before: [],
|
||||
after: []
|
||||
};
|
||||
for (var _i = 0, _a = this.transformers; _i < _a.length; _i++) {
|
||||
var creator = _a[_i];
|
||||
var factory = creator(this.service);
|
||||
if (factory.before)
|
||||
transformer.before.push.apply(factory.before);
|
||||
if (factory.after)
|
||||
transformer.after.push.apply(factory.after);
|
||||
}
|
||||
return transformer;
|
||||
};
|
||||
return LanguageServiceHost;
|
||||
}());
|
||||
@ -19990,7 +20002,7 @@ function typescript(options) {
|
||||
tsconfig: undefined,
|
||||
useTsconfigDeclarationDir: false,
|
||||
tsconfigOverride: {},
|
||||
transformers: undefined,
|
||||
transformers: [],
|
||||
tsconfigDefaults: {},
|
||||
});
|
||||
setTypescriptModule(pluginOptions.typescript);
|
||||
|
||||
2
dist/rollup-plugin-typescript2.cjs.js.map
vendored
2
dist/rollup-plugin-typescript2.cjs.js.map
vendored
File diff suppressed because one or more lines are too long
18
dist/rollup-plugin-typescript2.es.js
vendored
18
dist/rollup-plugin-typescript2.es.js
vendored
@ -17310,9 +17310,21 @@ var LanguageServiceHost = /** @class */ (function () {
|
||||
return tsModule.sys.getDirectories(directoryName);
|
||||
};
|
||||
LanguageServiceHost.prototype.getCustomTransformers = function () {
|
||||
if (this.service === undefined || this.transformers === undefined)
|
||||
if (this.service === undefined || this.transformers === undefined || this.transformers.length === 0)
|
||||
return undefined;
|
||||
return this.transformers(this.service);
|
||||
var transformer = {
|
||||
before: [],
|
||||
after: []
|
||||
};
|
||||
for (var _i = 0, _a = this.transformers; _i < _a.length; _i++) {
|
||||
var creator = _a[_i];
|
||||
var factory = creator(this.service);
|
||||
if (factory.before)
|
||||
transformer.before.push.apply(factory.before);
|
||||
if (factory.after)
|
||||
transformer.after.push.apply(factory.after);
|
||||
}
|
||||
return transformer;
|
||||
};
|
||||
return LanguageServiceHost;
|
||||
}());
|
||||
@ -19986,7 +19998,7 @@ function typescript(options) {
|
||||
tsconfig: undefined,
|
||||
useTsconfigDeclarationDir: false,
|
||||
tsconfigOverride: {},
|
||||
transformers: undefined,
|
||||
transformers: [],
|
||||
tsconfigDefaults: {},
|
||||
});
|
||||
setTypescriptModule(pluginOptions.typescript);
|
||||
|
||||
2
dist/rollup-plugin-typescript2.es.js.map
vendored
2
dist/rollup-plugin-typescript2.es.js.map
vendored
File diff suppressed because one or more lines are too long
549
package-lock.json
generated
549
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "rollup-plugin-typescript2",
|
||||
"version": "0.12.1",
|
||||
"version": "0.14.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@ -52,7 +52,7 @@
|
||||
"@types/node": {
|
||||
"version": "8.0.47",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.47.tgz",
|
||||
"integrity": "sha1-lo5Zb5Gs1ZBpBUVYoAcIxEXKMMI=",
|
||||
"integrity": "sha512-kOwL746WVvt/9Phf6/JgX/bsGQvbrK5iUgzyfwZNcKVFcjAUVSpF9HxevLTld2SG9aywYHOILj38arDdY1r/iQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/object-hash": {
|
||||
@ -227,7 +227,7 @@
|
||||
"diff": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz",
|
||||
"integrity": "sha1-sdhVB9rzlkgo3lSzfQ1zumfdpWw=",
|
||||
"integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==",
|
||||
"dev": true
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
@ -263,6 +263,535 @@
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.3.tgz",
|
||||
"integrity": "sha512-X+57O5YkDTiEQGiw8i7wYc2nQgweIekqkepI8Q3y4wVlurgBt2SuwxTeYUYMZIGpLZH3r/TsMjczCMXE5ZOt7Q==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"nan": "2.10.0",
|
||||
"node-pre-gyp": "0.9.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"are-we-there-yet": {
|
||||
"version": "1.1.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"delegates": "1.0.0",
|
||||
"readable-stream": "2.3.6"
|
||||
}
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"balanced-match": "1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"chownr": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"deep-extend": {
|
||||
"version": "0.4.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"delegates": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"detect-libc": {
|
||||
"version": "1.0.3",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"fs-minipass": {
|
||||
"version": "1.2.5",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minipass": "2.2.4"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"gauge": {
|
||||
"version": "2.7.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"aproba": "1.2.0",
|
||||
"console-control-strings": "1.1.0",
|
||||
"has-unicode": "2.0.1",
|
||||
"object-assign": "4.1.1",
|
||||
"signal-exit": "3.0.2",
|
||||
"string-width": "1.0.2",
|
||||
"strip-ansi": "3.0.1",
|
||||
"wide-align": "1.1.2"
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"fs.realpath": "1.0.0",
|
||||
"inflight": "1.0.6",
|
||||
"inherits": "2.0.3",
|
||||
"minimatch": "3.0.4",
|
||||
"once": "1.4.0",
|
||||
"path-is-absolute": "1.0.1"
|
||||
}
|
||||
},
|
||||
"has-unicode": {
|
||||
"version": "2.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.21",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safer-buffer": "2.1.2"
|
||||
}
|
||||
},
|
||||
"ignore-walk": {
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimatch": "3.0.4"
|
||||
}
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"once": "1.4.0",
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"number-is-nan": "1.0.1"
|
||||
}
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "1.1.11"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.2.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.1",
|
||||
"yallist": "3.0.2"
|
||||
}
|
||||
},
|
||||
"minizlib": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minipass": "2.2.4"
|
||||
}
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"needle": {
|
||||
"version": "2.2.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"iconv-lite": "0.4.21",
|
||||
"sax": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node-pre-gyp": {
|
||||
"version": "0.9.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"detect-libc": "1.0.3",
|
||||
"mkdirp": "0.5.1",
|
||||
"needle": "2.2.0",
|
||||
"nopt": "4.0.1",
|
||||
"npm-packlist": "1.1.10",
|
||||
"npmlog": "4.1.2",
|
||||
"rc": "1.2.6",
|
||||
"rimraf": "2.6.2",
|
||||
"semver": "5.5.0",
|
||||
"tar": "4.4.1"
|
||||
}
|
||||
},
|
||||
"nopt": {
|
||||
"version": "4.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"abbrev": "1.1.1",
|
||||
"osenv": "0.1.5"
|
||||
}
|
||||
},
|
||||
"npm-bundled": {
|
||||
"version": "1.0.3",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"npm-packlist": {
|
||||
"version": "1.1.10",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ignore-walk": "3.0.1",
|
||||
"npm-bundled": "1.0.3"
|
||||
}
|
||||
},
|
||||
"npmlog": {
|
||||
"version": "4.1.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"are-we-there-yet": "1.1.4",
|
||||
"console-control-strings": "1.1.0",
|
||||
"gauge": "2.7.4",
|
||||
"set-blocking": "2.0.0"
|
||||
}
|
||||
},
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
},
|
||||
"os-homedir": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"osenv": {
|
||||
"version": "0.1.5",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"os-homedir": "1.0.2",
|
||||
"os-tmpdir": "1.0.2"
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"rc": {
|
||||
"version": "1.2.6",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"deep-extend": "0.4.2",
|
||||
"ini": "1.3.5",
|
||||
"minimist": "1.2.0",
|
||||
"strip-json-comments": "2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"core-util-is": "1.0.2",
|
||||
"inherits": "2.0.3",
|
||||
"isarray": "1.0.0",
|
||||
"process-nextick-args": "2.0.0",
|
||||
"safe-buffer": "5.1.1",
|
||||
"string_decoder": "1.1.1",
|
||||
"util-deprecate": "1.0.2"
|
||||
}
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.6.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"glob": "7.1.2"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.5.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"set-blocking": {
|
||||
"version": "2.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"code-point-at": "1.1.0",
|
||||
"is-fullwidth-code-point": "1.0.0",
|
||||
"strip-ansi": "3.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.1"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "2.1.1"
|
||||
}
|
||||
},
|
||||
"strip-json-comments": {
|
||||
"version": "2.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"tar": {
|
||||
"version": "4.4.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"chownr": "1.0.1",
|
||||
"fs-minipass": "1.2.5",
|
||||
"minipass": "2.2.4",
|
||||
"minizlib": "1.1.0",
|
||||
"mkdirp": "0.5.1",
|
||||
"safe-buffer": "5.1.1",
|
||||
"yallist": "3.0.2"
|
||||
}
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"wide-align": {
|
||||
"version": "1.1.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"string-width": "1.0.2"
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
||||
"integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
|
||||
@ -400,6 +929,13 @@
|
||||
"brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
|
||||
}
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.10.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
|
||||
"integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"object-hash": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz",
|
||||
@ -460,7 +996,7 @@
|
||||
"rimraf": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
||||
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
||||
"integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "7.1.2"
|
||||
@ -650,7 +1186,7 @@
|
||||
}
|
||||
},
|
||||
"rollup-plugin-typescript2": {
|
||||
"version": "github:ezolenko/rollup-plugin-typescript2#2e3f4bc0c232d13ec71f0e3d146d38e8808b5d50",
|
||||
"version": "github:ezolenko/rollup-plugin-typescript2#9719d2f9a17c67e9cca78d987b03e8e2dbe0c12f",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs-extra": "5.0.0",
|
||||
@ -965,7 +1501,7 @@
|
||||
"rollup-watch": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/rollup-watch/-/rollup-watch-4.3.1.tgz",
|
||||
"integrity": "sha512-6yjnIwfjpSrqA8IafyIu7fsEyeImNR4aDjA1bQ7KWeVuiA+Clfsx8+PGQkyABWIQzmauQ//tIJ5wAxLXsXs8qQ==",
|
||||
"integrity": "sha1-WqHq6reHrd82iQXRArOdb8XOSos=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chokidar": "1.7.0",
|
||||
@ -1051,6 +1587,7 @@
|
||||
"requires": {
|
||||
"anymatch": "1.3.2",
|
||||
"async-each": "1.0.1",
|
||||
"fsevents": "1.2.3",
|
||||
"glob-parent": "2.0.0",
|
||||
"inherits": "2.0.3",
|
||||
"is-binary-path": "1.0.1",
|
||||
|
||||
22
src/host.ts
22
src/host.ts
@ -3,6 +3,7 @@ import * as tsTypes from "typescript";
|
||||
import { existsSync } from "fs";
|
||||
import * as _ from "lodash";
|
||||
import { normalize } from "./normalize";
|
||||
import { TransformerFactoryCreator } from "./ioptions";
|
||||
|
||||
export class LanguageServiceHost implements tsTypes.LanguageServiceHost
|
||||
{
|
||||
@ -11,7 +12,7 @@ export class LanguageServiceHost implements tsTypes.LanguageServiceHost
|
||||
private versions: { [fileName: string]: number } = {};
|
||||
private service?: tsTypes.LanguageService;
|
||||
|
||||
constructor(private parsedConfig: tsTypes.ParsedCommandLine, private transformers: (service: tsTypes.LanguageService) => tsTypes.CustomTransformers | undefined)
|
||||
constructor(private parsedConfig: tsTypes.ParsedCommandLine, private transformers: TransformerFactoryCreator[])
|
||||
{
|
||||
}
|
||||
|
||||
@ -117,9 +118,24 @@ export class LanguageServiceHost implements tsTypes.LanguageServiceHost
|
||||
|
||||
public getCustomTransformers(): tsTypes.CustomTransformers | undefined
|
||||
{
|
||||
if (this.service === undefined || this.transformers === undefined)
|
||||
if (this.service === undefined || this.transformers === undefined || this.transformers.length === 0)
|
||||
return undefined;
|
||||
|
||||
return this.transformers(this.service);
|
||||
const transformer =
|
||||
{
|
||||
before: <tsTypes.TransformerFactory<tsTypes.SourceFile>[]>[],
|
||||
after: <tsTypes.TransformerFactory<tsTypes.SourceFile>[]>[]
|
||||
}
|
||||
|
||||
for (let creator of this.transformers)
|
||||
{
|
||||
const factory = creator(this.service);
|
||||
if (factory.before)
|
||||
transformer.before.push.apply(factory.before);
|
||||
if (factory.after)
|
||||
transformer.after.push.apply(factory.after);
|
||||
}
|
||||
|
||||
return transformer;
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ export default function typescript(options?: Partial<IOptions>)
|
||||
tsconfig: undefined,
|
||||
useTsconfigDeclarationDir: false,
|
||||
tsconfigOverride: {},
|
||||
transformers: undefined,
|
||||
transformers: [],
|
||||
tsconfigDefaults: {},
|
||||
});
|
||||
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
import { tsModule } from "./tsproxy";
|
||||
import * as tsTypes from "typescript";
|
||||
|
||||
export type TransformerFactoryCreator = (ls: tsTypes.LanguageService) => tsTypes.CustomTransformers;
|
||||
|
||||
export interface IOptions
|
||||
{
|
||||
include: string|string[];
|
||||
@ -15,7 +17,7 @@ export interface IOptions
|
||||
useTsconfigDeclarationDir: boolean;
|
||||
typescript: typeof tsModule;
|
||||
tsconfigOverride: any;
|
||||
transformers: (service: tsTypes.LanguageService) => tsTypes.CustomTransformers;
|
||||
transformers: TransformerFactoryCreator[];
|
||||
tsconfigDefaults: any;
|
||||
sourceMapCallback: (id: string, map: string) => void;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user