From 04239c5afeb1e351ffef2c4768fed8c5961f6ce2 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 18 Dec 2015 13:18:57 +0100 Subject: [PATCH] debt - remove unused injector --- src/vs/base/common/injector.ts | 94 ------------------- src/vs/base/test/common/injector.test.ts | 114 ----------------------- 2 files changed, 208 deletions(-) delete mode 100644 src/vs/base/common/injector.ts delete mode 100644 src/vs/base/test/common/injector.test.ts diff --git a/src/vs/base/common/injector.ts b/src/vs/base/common/injector.ts deleted file mode 100644 index 0a180e9f97f..00000000000 --- a/src/vs/base/common/injector.ts +++ /dev/null @@ -1,94 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import Assert = require('vs/base/common/assert'); -import Types = require('vs/base/common/types'); - -var inject = 'inject'; -var injectLen = inject.length; - -export class Container { - - private map:{[name:string]:any;}; - private parent:Container; - - constructor() { - this.map = {}; - this.parent = null; - } - - public setParent(parent:Container):void { - this.parent = parent; - } - - public registerService(target:string, service:any):any { - Assert.ok(!Types.isUndefinedOrNull(target)); - Assert.ok(!Types.isUndefinedOrNull(service)); - - this.map[target.toLowerCase()] = service; - - return service; - } - - // injects the denoted services to the target - public injectTo(target:any):boolean { - Assert.ok(!Types.isUndefinedOrNull(target)); - - // Support arrays - var didInjectAtLeastOnce = false; - if (Types.isArray(target)) { - target.forEach((element:any) => { - didInjectAtLeastOnce = this.injectTo(element) || didInjectAtLeastOnce; - }); - return didInjectAtLeastOnce; - } - - // inject services one by one - for (var key in target) { - if(key.indexOf(inject) !== 0) { - continue; - } - - var element = target[key]; - if(!Types.isFunction(element)) { - continue; - } - - key = key.substring(injectLen).toLowerCase(); - var service = this.findService(key, target); - if(Types.isUndefinedOrNull(service)) { - continue; - } - - // call inject function - element.apply(target, [service]); - didInjectAtLeastOnce = true; - } - - return didInjectAtLeastOnce; - } - - public createChild():Container { - var childContainer = new Container(); - childContainer.setParent(this); - - return childContainer; - } - - public findService(key:string, target:any=null):any { - var result = this.map[key]; - if((Types.isUndefinedOrNull(result) || target === result) && this.parent !== null) { - result = this.parent.findService(key, target); - } - - return result; - } - - public dispose():void { - this.map = null; - this.parent = null; - } -} diff --git a/src/vs/base/test/common/injector.test.ts b/src/vs/base/test/common/injector.test.ts deleted file mode 100644 index b61c20e862b..00000000000 --- a/src/vs/base/test/common/injector.test.ts +++ /dev/null @@ -1,114 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import * as assert from 'assert'; -import injector = require('vs/base/common/injector'); - -suite('Injection test', () => { - - test('test inject service', function() { - var didInjectFoo = false; - var didInjectBar = false; - var checkCount = 0; - - var target = { - _serviceFoo: null, - _serviceBar: null, - injectFoo: function(service) { - this._serviceFoo = service; - didInjectFoo = true; - }, - injectBar: function(s) { - this._serviceBar = s; - didInjectBar = true; - }, - check: function() { - this._serviceFoo.check(); - this._serviceBar.check(); - } - } - - var service = { - check: function() { - checkCount++; - } - }; - - var container = new injector.Container(); - container.registerService('foo', service); - container.registerService('bar', service); - - container.injectTo(target); - target.check(); - - assert(didInjectFoo); - assert(didInjectBar); - assert.equal(checkCount, 2); - }); - - - test('test inject service with chaining', function() { - var didDoubleInjectFoo = false; - - var target = { - _serviceFoo: null, - _serviceBar: null, - injectFoo: function(service) { - this._serviceFoo = service; - }, - injectBar: function(s) { - this._serviceBar = s; - }, - check: function() { - this._serviceFoo.check(); - this._serviceBar.check(); - } - }; - - var service = { - check: function() {} - }; - var service1 = { - check: function() { - didDoubleInjectFoo = true; - } - }; - - var container = new injector.Container(); - container.registerService('foo', service); - - var container1 = new injector.Container(); - container1.registerService('bar', service); - container1.registerService('foo', service1); // will be ignored - - - container.setParent(container1); - - container.injectTo(target); - target.check(); - assert(!didDoubleInjectFoo); - }); - - test('inject does not inject target with target', function() { - - var target = { - injectFoo: function(s) { - assert(target !== s); - } - }; - - var service = { }; - - var parent = new injector.Container(); - parent.registerService('foo', parent); - - var container = parent.createChild(); - container.registerService('foo', target); - - container.injectTo(target); - - }); -}); -- GitLab