Skip to content

Commit

Permalink
Refactor getCustomTransformers implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
Saito Nakamura committed Sep 3, 2019
1 parent 2ec07be commit 6abb5c4
Showing 1 changed file with 27 additions and 33 deletions.
60 changes: 27 additions & 33 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -311,41 +311,35 @@ export function register (opts: Options = {}): Register {
let program: _ts.Program | undefined = undefined

const getCustomTransformers = (): _ts.CustomTransformers | undefined => {
let combinedTransformers: _ts.CustomTransformers | undefined = transformers

if (programTransformers && program) {
const programTransformersData = programTransformers(program)

if (transformers) {
const before = programTransformersData.before && transformers.before
? [...programTransformersData.before, ...transformers.before]
: programTransformersData.before
? programTransformersData.before
: transformers.before

const after = programTransformersData.after && transformers.after
? [...programTransformersData.after, ...transformers.after]
: programTransformersData.after
? programTransformersData.after
: transformers.after

const afterDeclarations = programTransformersData.afterDeclarations && transformers.afterDeclarations
? [...programTransformersData.afterDeclarations, ...transformers.afterDeclarations]
: programTransformersData.afterDeclarations
? programTransformersData.afterDeclarations
: transformers.afterDeclarations

combinedTransformers = {
before,
after,
afterDeclarations
}
} else {
combinedTransformers = programTransformersData
}
if (!programTransformers || !program) {
return transformers
}

return combinedTransformers
const programTransformersData = programTransformers(program)

if (!transformers) {
return programTransformersData
}

const before = [
...(programTransformersData.before || []),
...(transformers.before || [])
]

const after = [
...(programTransformersData.after || []),
...(transformers.after || [])
]

const afterDeclarations = [
...(programTransformersData.afterDeclarations || []),
...(transformers.afterDeclarations || [])
]
return {
before,
after,
afterDeclarations
}
}

// Create the compiler host for type checking.
Expand Down

0 comments on commit 6abb5c4

Please sign in to comment.