From 8ddf925a8feb41e240871fe0d57e0f40b9bb4896 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Wed, 19 Dec 2018 14:07:20 +0100 Subject: Add SpyResolver --- .../sol-resolver/src/resolvers/spy_resolver.ts | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 packages/sol-resolver/src/resolvers/spy_resolver.ts (limited to 'packages/sol-resolver/src/resolvers/spy_resolver.ts') diff --git a/packages/sol-resolver/src/resolvers/spy_resolver.ts b/packages/sol-resolver/src/resolvers/spy_resolver.ts new file mode 100644 index 000000000..df56c8f9e --- /dev/null +++ b/packages/sol-resolver/src/resolvers/spy_resolver.ts @@ -0,0 +1,23 @@ +import * as fs from 'fs'; +import * as _ from 'lodash'; +import * as path from 'path'; + +import { ContractSource } from '../types'; + +import { Resolver } from './resolver'; + +export class SpyResolver extends Resolver { + public resolvedContractSources: ContractSource[] = []; + private _resolver: Resolver; + constructor(resolver: Resolver) { + super(); + this._resolver = resolver; + } + public resolveIfExists(importPath: string): ContractSource | undefined { + const contractSourceIfExists = this._resolver.resolveIfExists(importPath); + if (!_.isUndefined(contractSourceIfExists)) { + this.resolvedContractSources.push(contractSourceIfExists); + } + return contractSourceIfExists; + } +} -- cgit v1.2.3 From e2535027e92206356d9dde80978edf64f00a50d4 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Wed, 19 Dec 2018 14:44:05 +0100 Subject: Remove unused variables --- packages/sol-resolver/src/resolvers/spy_resolver.ts | 2 -- 1 file changed, 2 deletions(-) (limited to 'packages/sol-resolver/src/resolvers/spy_resolver.ts') diff --git a/packages/sol-resolver/src/resolvers/spy_resolver.ts b/packages/sol-resolver/src/resolvers/spy_resolver.ts index df56c8f9e..3fd62985b 100644 --- a/packages/sol-resolver/src/resolvers/spy_resolver.ts +++ b/packages/sol-resolver/src/resolvers/spy_resolver.ts @@ -1,6 +1,4 @@ -import * as fs from 'fs'; import * as _ from 'lodash'; -import * as path from 'path'; import { ContractSource } from '../types'; -- cgit v1.2.3 From 85a8c6160f046ad5b5e33d30fc7a71abea3ecf33 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Wed, 19 Dec 2018 14:44:40 +0100 Subject: Mark the field as readonly --- packages/sol-resolver/src/resolvers/spy_resolver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/sol-resolver/src/resolvers/spy_resolver.ts') diff --git a/packages/sol-resolver/src/resolvers/spy_resolver.ts b/packages/sol-resolver/src/resolvers/spy_resolver.ts index 3fd62985b..b31ecfe1d 100644 --- a/packages/sol-resolver/src/resolvers/spy_resolver.ts +++ b/packages/sol-resolver/src/resolvers/spy_resolver.ts @@ -6,7 +6,7 @@ import { Resolver } from './resolver'; export class SpyResolver extends Resolver { public resolvedContractSources: ContractSource[] = []; - private _resolver: Resolver; + private readonly _resolver: Resolver; constructor(resolver: Resolver) { super(); this._resolver = resolver; -- cgit v1.2.3 From 0abf1c71f64e90aba3e3bac55c8c24dc984bf80d Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Wed, 19 Dec 2018 15:33:25 +0100 Subject: Add a comment for SpyResolver --- packages/sol-resolver/src/resolvers/spy_resolver.ts | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'packages/sol-resolver/src/resolvers/spy_resolver.ts') diff --git a/packages/sol-resolver/src/resolvers/spy_resolver.ts b/packages/sol-resolver/src/resolvers/spy_resolver.ts index b31ecfe1d..5582d771a 100644 --- a/packages/sol-resolver/src/resolvers/spy_resolver.ts +++ b/packages/sol-resolver/src/resolvers/spy_resolver.ts @@ -4,6 +4,10 @@ import { ContractSource } from '../types'; import { Resolver } from './resolver'; +/** + * This resolver is a passthrough proxy to any resolver that records all the resolved contracts sources. + * You can access them later using the `resolvedContractSources` public field. + */ export class SpyResolver extends Resolver { public resolvedContractSources: ContractSource[] = []; private readonly _resolver: Resolver; -- cgit v1.2.3