├── .gitignore ├── Builder 6.5 ├── README.md └── src │ ├── CatalogWriter.normal.ts │ ├── CatalogWriter.refactoring.ts │ ├── TagBuilder.ts │ ├── TagBuilderTest.test.ts │ ├── TagNode.ts │ └── TagNodeTest.test.ts ├── Composed 7.1 ├── README.md ├── normal │ └── List.ts └── refactoring │ └── List.ts ├── Decorator 7.3 ├── README.md └── normal │ ├── NodeReader.ts │ ├── Parser.ts │ ├── ParserUtils.ts │ ├── StringBuffer.ts │ ├── StringNode.ts │ ├── StringParser.ts │ └── Translate.ts ├── Factory 6.2 ├── README.md ├── normal │ ├── DecodingStringNode.ts │ ├── Parser.ts │ ├── StringNode.ts │ ├── StringParser.ts │ └── index.ts └── refactoring │ ├── DecodingStringNode.ts │ ├── NodeFactory.ts │ ├── Parser.ts │ ├── StringNode.ts │ ├── StringParser.ts │ └── index.ts ├── Factory 6.3 ├── README.md ├── normal │ ├── AttributeDescriptor.ts │ ├── BooleanDescriptor.ts │ ├── DefaultDescriptor.ts │ ├── NumberDescriptor.ts │ ├── StringDescriptor.ts │ └── index.ts └── refactoring │ ├── AttributeDescriptor.ts │ ├── BooleanDescriptor.ts │ ├── DefaultDescriptor.ts │ ├── NumberDescriptor.ts │ ├── StringDescriptor.ts │ └── index.ts ├── Factory 6.4 ├── README.md ├── normal │ ├── DOMBuilder.ts │ ├── DOMBuilderTest.ts │ ├── IOutputBuilder.ts │ ├── TestCase.ts │ ├── XMLBuilder.ts │ └── XMLBuilderTest.ts └── refactoring │ ├── AbstractBuilderTest.ts │ ├── DOMBuilder.ts │ ├── DOMBuilderTest.ts │ ├── IOutputBuilder.ts │ ├── TestCase.ts │ ├── XMLBuilder.ts │ └── XMLBuilderTest.ts ├── README.md ├── Singleton 6.6 ├── README.md ├── normal │ ├── Blackjack.ts │ ├── ConsoleSingleton.ts │ ├── HitStayResponse.ts │ ├── ScenarioTest.test.ts │ └── TestAlwaysHitResponse.ts └── refactoring │ ├── Blackjack.ts │ ├── HitStayResponse.ts │ ├── ScenarioTest.test.ts │ └── TestAlwaysHitResponse.ts ├── Strategy 7.2 ├── README.md ├── normal │ ├── Loan.ts │ ├── RiskFactor.ts │ └── UnusedRiskFactors.ts └── refactoring │ ├── CapitalStrategy.ts │ ├── CapitalStrategyAdvisedLine.ts │ ├── CapitalStrategyRevolver.ts │ ├── CapitalStrategyTermLoan.ts │ ├── Loan.ts │ ├── RiskFactor.ts │ └── UnusedRiskFactors.ts ├── babel.config.js ├── package.json └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules -------------------------------------------------------------------------------- /Builder 6.5/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Builder 6.5/README.md -------------------------------------------------------------------------------- /Builder 6.5/src/CatalogWriter.normal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Builder 6.5/src/CatalogWriter.normal.ts -------------------------------------------------------------------------------- /Builder 6.5/src/CatalogWriter.refactoring.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Builder 6.5/src/CatalogWriter.refactoring.ts -------------------------------------------------------------------------------- /Builder 6.5/src/TagBuilder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Builder 6.5/src/TagBuilder.ts -------------------------------------------------------------------------------- /Builder 6.5/src/TagBuilderTest.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Builder 6.5/src/TagBuilderTest.test.ts -------------------------------------------------------------------------------- /Builder 6.5/src/TagNode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Builder 6.5/src/TagNode.ts -------------------------------------------------------------------------------- /Builder 6.5/src/TagNodeTest.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Builder 6.5/src/TagNodeTest.test.ts -------------------------------------------------------------------------------- /Composed 7.1/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Composed 7.1/README.md -------------------------------------------------------------------------------- /Composed 7.1/normal/List.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Composed 7.1/normal/List.ts -------------------------------------------------------------------------------- /Composed 7.1/refactoring/List.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Composed 7.1/refactoring/List.ts -------------------------------------------------------------------------------- /Decorator 7.3/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Decorator 7.3/README.md -------------------------------------------------------------------------------- /Decorator 7.3/normal/NodeReader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Decorator 7.3/normal/NodeReader.ts -------------------------------------------------------------------------------- /Decorator 7.3/normal/Parser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Decorator 7.3/normal/Parser.ts -------------------------------------------------------------------------------- /Decorator 7.3/normal/ParserUtils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Decorator 7.3/normal/ParserUtils.ts -------------------------------------------------------------------------------- /Decorator 7.3/normal/StringBuffer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Decorator 7.3/normal/StringBuffer.ts -------------------------------------------------------------------------------- /Decorator 7.3/normal/StringNode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Decorator 7.3/normal/StringNode.ts -------------------------------------------------------------------------------- /Decorator 7.3/normal/StringParser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Decorator 7.3/normal/StringParser.ts -------------------------------------------------------------------------------- /Decorator 7.3/normal/Translate.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Decorator 7.3/normal/Translate.ts -------------------------------------------------------------------------------- /Factory 6.2/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/README.md -------------------------------------------------------------------------------- /Factory 6.2/normal/DecodingStringNode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/normal/DecodingStringNode.ts -------------------------------------------------------------------------------- /Factory 6.2/normal/Parser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/normal/Parser.ts -------------------------------------------------------------------------------- /Factory 6.2/normal/StringNode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/normal/StringNode.ts -------------------------------------------------------------------------------- /Factory 6.2/normal/StringParser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/normal/StringParser.ts -------------------------------------------------------------------------------- /Factory 6.2/normal/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/normal/index.ts -------------------------------------------------------------------------------- /Factory 6.2/refactoring/DecodingStringNode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/refactoring/DecodingStringNode.ts -------------------------------------------------------------------------------- /Factory 6.2/refactoring/NodeFactory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/refactoring/NodeFactory.ts -------------------------------------------------------------------------------- /Factory 6.2/refactoring/Parser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/refactoring/Parser.ts -------------------------------------------------------------------------------- /Factory 6.2/refactoring/StringNode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/refactoring/StringNode.ts -------------------------------------------------------------------------------- /Factory 6.2/refactoring/StringParser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/refactoring/StringParser.ts -------------------------------------------------------------------------------- /Factory 6.2/refactoring/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.2/refactoring/index.ts -------------------------------------------------------------------------------- /Factory 6.3/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/README.md -------------------------------------------------------------------------------- /Factory 6.3/normal/AttributeDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/normal/AttributeDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/normal/BooleanDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/normal/BooleanDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/normal/DefaultDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/normal/DefaultDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/normal/NumberDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/normal/NumberDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/normal/StringDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/normal/StringDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/normal/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/normal/index.ts -------------------------------------------------------------------------------- /Factory 6.3/refactoring/AttributeDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/refactoring/AttributeDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/refactoring/BooleanDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/refactoring/BooleanDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/refactoring/DefaultDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/refactoring/DefaultDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/refactoring/NumberDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/refactoring/NumberDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/refactoring/StringDescriptor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/refactoring/StringDescriptor.ts -------------------------------------------------------------------------------- /Factory 6.3/refactoring/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.3/refactoring/index.ts -------------------------------------------------------------------------------- /Factory 6.4/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/README.md -------------------------------------------------------------------------------- /Factory 6.4/normal/DOMBuilder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/normal/DOMBuilder.ts -------------------------------------------------------------------------------- /Factory 6.4/normal/DOMBuilderTest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/normal/DOMBuilderTest.ts -------------------------------------------------------------------------------- /Factory 6.4/normal/IOutputBuilder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/normal/IOutputBuilder.ts -------------------------------------------------------------------------------- /Factory 6.4/normal/TestCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/normal/TestCase.ts -------------------------------------------------------------------------------- /Factory 6.4/normal/XMLBuilder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/normal/XMLBuilder.ts -------------------------------------------------------------------------------- /Factory 6.4/normal/XMLBuilderTest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/normal/XMLBuilderTest.ts -------------------------------------------------------------------------------- /Factory 6.4/refactoring/AbstractBuilderTest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/refactoring/AbstractBuilderTest.ts -------------------------------------------------------------------------------- /Factory 6.4/refactoring/DOMBuilder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/refactoring/DOMBuilder.ts -------------------------------------------------------------------------------- /Factory 6.4/refactoring/DOMBuilderTest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/refactoring/DOMBuilderTest.ts -------------------------------------------------------------------------------- /Factory 6.4/refactoring/IOutputBuilder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/refactoring/IOutputBuilder.ts -------------------------------------------------------------------------------- /Factory 6.4/refactoring/TestCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/refactoring/TestCase.ts -------------------------------------------------------------------------------- /Factory 6.4/refactoring/XMLBuilder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/refactoring/XMLBuilder.ts -------------------------------------------------------------------------------- /Factory 6.4/refactoring/XMLBuilderTest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Factory 6.4/refactoring/XMLBuilderTest.ts -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/README.md -------------------------------------------------------------------------------- /Singleton 6.6/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Singleton 6.6/README.md -------------------------------------------------------------------------------- /Singleton 6.6/normal/Blackjack.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Singleton 6.6/normal/Blackjack.ts -------------------------------------------------------------------------------- /Singleton 6.6/normal/ConsoleSingleton.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Singleton 6.6/normal/ConsoleSingleton.ts -------------------------------------------------------------------------------- /Singleton 6.6/normal/HitStayResponse.ts: -------------------------------------------------------------------------------- 1 | export default class HitStayResponse { 2 | public readFrom(input) {} 3 | } 4 | -------------------------------------------------------------------------------- /Singleton 6.6/normal/ScenarioTest.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Singleton 6.6/normal/ScenarioTest.test.ts -------------------------------------------------------------------------------- /Singleton 6.6/normal/TestAlwaysHitResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Singleton 6.6/normal/TestAlwaysHitResponse.ts -------------------------------------------------------------------------------- /Singleton 6.6/refactoring/Blackjack.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Singleton 6.6/refactoring/Blackjack.ts -------------------------------------------------------------------------------- /Singleton 6.6/refactoring/HitStayResponse.ts: -------------------------------------------------------------------------------- 1 | export default class HitStayResponse { 2 | public readFrom(input) {} 3 | } 4 | -------------------------------------------------------------------------------- /Singleton 6.6/refactoring/ScenarioTest.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Singleton 6.6/refactoring/ScenarioTest.test.ts -------------------------------------------------------------------------------- /Singleton 6.6/refactoring/TestAlwaysHitResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Singleton 6.6/refactoring/TestAlwaysHitResponse.ts -------------------------------------------------------------------------------- /Strategy 7.2/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/README.md -------------------------------------------------------------------------------- /Strategy 7.2/normal/Loan.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/normal/Loan.ts -------------------------------------------------------------------------------- /Strategy 7.2/normal/RiskFactor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/normal/RiskFactor.ts -------------------------------------------------------------------------------- /Strategy 7.2/normal/UnusedRiskFactors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/normal/UnusedRiskFactors.ts -------------------------------------------------------------------------------- /Strategy 7.2/refactoring/CapitalStrategy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/refactoring/CapitalStrategy.ts -------------------------------------------------------------------------------- /Strategy 7.2/refactoring/CapitalStrategyAdvisedLine.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/refactoring/CapitalStrategyAdvisedLine.ts -------------------------------------------------------------------------------- /Strategy 7.2/refactoring/CapitalStrategyRevolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/refactoring/CapitalStrategyRevolver.ts -------------------------------------------------------------------------------- /Strategy 7.2/refactoring/CapitalStrategyTermLoan.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/refactoring/CapitalStrategyTermLoan.ts -------------------------------------------------------------------------------- /Strategy 7.2/refactoring/Loan.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/refactoring/Loan.ts -------------------------------------------------------------------------------- /Strategy 7.2/refactoring/RiskFactor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/refactoring/RiskFactor.ts -------------------------------------------------------------------------------- /Strategy 7.2/refactoring/UnusedRiskFactors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/Strategy 7.2/refactoring/UnusedRiskFactors.ts -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/babel.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/package.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuixiaorui/refactoring-to-patterns/HEAD/tsconfig.json --------------------------------------------------------------------------------