|
| 1 | +[1mdiff --git a/src/CompilerOptions.ts b/src/CompilerOptions.ts[m |
| 2 | +[1mindex 5f74012..17720d6 100644[m |
| 3 | +[1m--- a/src/CompilerOptions.ts[m |
| 4 | +[1m+++ b/src/CompilerOptions.ts[m |
| 5 | +[36m@@ -1,5 +1,6 @@[m |
| 6 | + import * as ts from "typescript";[m |
| 7 | + import { JsxEmit } from "typescript";[m |
| 8 | +[32m+[m[32mimport { Plugin } from "./transpilation/plugins"[m |
| 9 | + import * as diagnosticFactories from "./transpilation/diagnostics";[m |
| 10 | + [m |
| 11 | + type OmitIndexSignature<T> = {[m |
| 12 | +[36m@@ -35,7 +36,7 @@[m [mexport interface TypeScriptToLuaOptions {[m |
| 13 | + noImplicitSelf?: boolean;[m |
| 14 | + noHeader?: boolean;[m |
| 15 | + noResolvePaths?: string[];[m |
| 16 | +[31m- plugins?: Array<ts.PluginImport | TransformerImport>;[m |
| 17 | +[32m+[m[32m plugins?: Array<ts.PluginImport | TransformerImport | {inline : Plugin}>;[m |
| 18 | + sourceMapTraceback?: boolean;[m |
| 19 | + tstlVerbose?: boolean;[m |
| 20 | + lua51AllowTryCatchInAsyncAwait?: boolean;[m |
| 21 | +[1mdiff --git a/src/transpilation/index.ts b/src/transpilation/index.ts[m |
| 22 | +[1mindex d4e8907..1fed6d3 100644[m |
| 23 | +[1m--- a/src/transpilation/index.ts[m |
| 24 | +[1m+++ b/src/transpilation/index.ts[m |
| 25 | +[36m@@ -1,3 +1,4 @@[m |
| 26 | +[32m+[m[32mimport { Plugin } from "enhanced-resolve";[m |
| 27 | + import * as fs from "fs";[m |
| 28 | + import * as path from "path";[m |
| 29 | + import * as ts from "typescript";[m |
| 30 | +[36m@@ -16,7 +17,8 @@[m [mexport { TranspiledFile };[m |
| 31 | + export function transpileFiles([m |
| 32 | + rootNames: string[],[m |
| 33 | + options: CompilerOptions = {},[m |
| 34 | +[31m- writeFile?: ts.WriteFileCallback[m |
| 35 | +[32m+[m[32m writeFile?: ts.WriteFileCallback,[m |
| 36 | +[32m+[m[32m pluginsApi? : Plugin[m |
| 37 | + ): EmitResult {[m |
| 38 | + const program = ts.createProgram(rootNames, options);[m |
| 39 | + const preEmitDiagnostics = ts.getPreEmitDiagnostics(program);[m |
| 40 | +[36m@@ -29,7 +31,8 @@[m [mexport function transpileFiles([m |
| 41 | + export function transpileProject([m |
| 42 | + configFileName: string,[m |
| 43 | + optionsToExtend?: CompilerOptions,[m |
| 44 | +[31m- writeFile?: ts.WriteFileCallback[m |
| 45 | +[32m+[m[32m writeFile?: ts.WriteFileCallback,[m |
| 46 | +[32m+[m[32m pluginsApi? : Plugin[][m |
| 47 | + ): EmitResult {[m |
| 48 | + const parseResult = parseConfigFileWithSystem(configFileName, optionsToExtend);[m |
| 49 | + if (parseResult.errors.length > 0) {[m |
| 50 | +[1mdiff --git a/src/transpilation/plugins.ts b/src/transpilation/plugins.ts[m |
| 51 | +[1mindex 0296fe6..25614bb 100644[m |
| 52 | +[1m--- a/src/transpilation/plugins.ts[m |
| 53 | +[1m+++ b/src/transpilation/plugins.ts[m |
| 54 | +[36m@@ -49,7 +49,7 @@[m [mexport interface Plugin {[m |
| 55 | + onImportResolutionFailure?: (packageRoot : string, dependency : string) => string | undefined[m |
| 56 | + }[m |
| 57 | + [m |
| 58 | +[31m-export function getPlugins(program: ts.Program): { diagnostics: ts.Diagnostic[]; plugins: Plugin[] } {[m |
| 59 | +[32m+[m[32mexport function getPlugins(program: ts.Program, apiPlugins : Plugin[] = []) : { diagnostics: ts.Diagnostic[]; plugins: Plugin[] } {[m |
| 60 | + performance.startSection("getPlugins");[m |
| 61 | + const diagnostics: ts.Diagnostic[] = [];[m |
| 62 | + const pluginsFromOptions: Plugin[] = [];[m |
| 63 | +[36m@@ -78,6 +78,6 @@[m [mexport function getPlugins(program: ts.Program): { diagnostics: ts.Diagnostic[];[m |
| 64 | + }[m |
| 65 | + [m |
| 66 | + performance.endSection("getPlugins");[m |
| 67 | +[31m-[m |
| 68 | +[31m- return { diagnostics, plugins: pluginsFromOptions };[m |
| 69 | +[32m+[m[41m [m |
| 70 | +[32m+[m[32m return { diagnostics, plugins: pluginsFromOptions.concat(apiPlugins) };[m |
| 71 | + }[m |
| 72 | +[1mdiff --git a/src/transpilation/transpiler.ts b/src/transpilation/transpiler.ts[m |
| 73 | +[1mindex b4a9770..bd96f35 100644[m |
| 74 | +[1m--- a/src/transpilation/transpiler.ts[m |
| 75 | +[1m+++ b/src/transpilation/transpiler.ts[m |
| 76 | +[36m@@ -12,6 +12,7 @@[m [mimport * as performance from "../measure-performance";[m |
| 77 | + [m |
| 78 | + export interface TranspilerOptions {[m |
| 79 | + emitHost?: EmitHost;[m |
| 80 | +[32m+[m[32m apiPlugins? : Plugin[m |
| 81 | + }[m |
| 82 | + [m |
| 83 | + export interface EmitOptions extends TranspileOptions {[m |
0 commit comments