@joist/di 3.5.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -103,6 +103,7 @@ const app = new Injector([
103
103
  }
104
104
  ]);
105
105
  ```
106
+
106
107
  ### Accessing the injector
107
108
 
108
109
  Factories provide more flexibility but often times cannot use the `inject()` function. To get around this all factories are passed an instance of the current injector.
@@ -110,7 +111,7 @@ Factories provide more flexibility but often times cannot use the `inject()` fun
110
111
  ```ts
111
112
  class Logger {
112
113
  log(args: any[]): void {
113
- console.log(...args)
114
+ console.log(...args);
114
115
  }
115
116
  }
116
117
 
@@ -138,7 +139,7 @@ In most cases a token is any constructable class. There are cases where you migh
138
139
 
139
140
  ```ts
140
141
  // token that resolves to a string
141
- const URL_TOKEN = new StaticToken<string>('app_url');
142
+ const URL_TOKEN = token<string>('app_url');
142
143
 
143
144
  const app = new Injector([
144
145
  {
@@ -153,7 +154,7 @@ const app = new Injector([
153
154
  A static token can be provided a default factory function to use on creation.
154
155
 
155
156
  ```ts
156
- const URL_TOKEN = new StaticToken('app_url', () => '/default-url/');
157
+ const URL_TOKEN = token('app_url', () => '/default-url/');
157
158
  ```
158
159
 
159
160
  ### Async values
@@ -162,7 +163,7 @@ Static tokens can also leverage promises for cases when you need to async create
162
163
 
163
164
  ```ts
164
165
  // StaticToken<Promise<string>>
165
- const URL_TOKEN = new StaticToken('app_url', () => Promise.resolve('/default-url/'));
166
+ const URL_TOKEN = token('app_url', () => Promise.resolve('/default-url/'));
166
167
 
167
168
  const app = new Injector();
168
169
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joist/di",
3
- "version": "3.5.0",
3
+ "version": "3.7.0",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
@@ -3,7 +3,7 @@ import { expect } from '@open-wc/testing';
3
3
  import { Injector } from './injector.js';
4
4
  import { inject } from './inject.js';
5
5
  import { injectable } from './injectable.js';
6
- import { Provider, StaticToken } from './provider.js';
6
+ import { Provider, token } from './provider.js';
7
7
 
8
8
  describe('Injector', () => {
9
9
  it('should create a new instance of a single provider', () => {
@@ -148,28 +148,28 @@ describe('Injector', () => {
148
148
  });
149
149
 
150
150
  it('should create an instance from a StaticToken factory', () => {
151
- const token = new StaticToken('test', () => 'Hello World');
151
+ const TOKEN = token('test', () => 'Hello World');
152
152
  const injector = new Injector();
153
153
 
154
- const res = injector.inject(token);
154
+ const res = injector.inject(TOKEN);
155
155
 
156
156
  expect(res).to.equal('Hello World');
157
157
  });
158
158
 
159
159
  it('should create an instance from an async StaticToken factory', async () => {
160
- const token = new StaticToken('test', () => Promise.resolve('Hello World'));
160
+ const TOKEN = token('test', () => Promise.resolve('Hello World'));
161
161
  const injector = new Injector();
162
162
 
163
- const res = await injector.inject(token);
163
+ const res = await injector.inject(TOKEN);
164
164
 
165
165
  expect(res).to.equal('Hello World');
166
166
  });
167
167
 
168
168
  it('should allow static token to be overridden', () => {
169
- const token = new StaticToken<string>('test');
169
+ const TOKEN = token<string>('test');
170
170
 
171
171
  const provider: Provider<string> = {
172
- provide: token,
172
+ provide: TOKEN,
173
173
  factory() {
174
174
  return 'Hello World';
175
175
  }
@@ -177,7 +177,7 @@ describe('Injector', () => {
177
177
 
178
178
  const injector = new Injector([provider]);
179
179
 
180
- const res = injector.inject(token);
180
+ const res = injector.inject(TOKEN);
181
181
 
182
182
  expect(res).to.equal('Hello World');
183
183
  });
@@ -10,6 +10,10 @@ export class StaticToken<T> {
10
10
  }
11
11
  }
12
12
 
13
+ export function token<T>(name: string, factory?: () => T) {
14
+ return new StaticToken(name, factory);
15
+ }
16
+
13
17
  export interface ConstructableToken<T> {
14
18
  providers?: Provider<any>[];
15
19
 
package/src/lib.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Injector } from './lib/injector.js';
2
- export { Provider, ConstructableToken, StaticToken } from './lib/provider.js';
2
+ export { Provider, ConstructableToken, StaticToken, token } from './lib/provider.js';
3
3
  export { injectable, INJECTABLE_MAP } from './lib/injectable.js';
4
4
  export { inject, Injected } from './lib/inject.js';
5
5
  export { defineEnvironment, clearEnvironment } from './lib/environment.js';
@@ -3,7 +3,7 @@ import { expect } from '@open-wc/testing';
3
3
  import { Injector } from './injector.js';
4
4
  import { inject } from './inject.js';
5
5
  import { injectable } from './injectable.js';
6
- import { StaticToken } from './provider.js';
6
+ import { token } from './provider.js';
7
7
  describe('Injector', () => {
8
8
  it('should create a new instance of a single provider', () => {
9
9
  class A {
@@ -204,27 +204,27 @@ describe('Injector', () => {
204
204
  injector.inject(Service);
205
205
  });
206
206
  it('should create an instance from a StaticToken factory', () => {
207
- const token = new StaticToken('test', () => 'Hello World');
207
+ const TOKEN = token('test', () => 'Hello World');
208
208
  const injector = new Injector();
209
- const res = injector.inject(token);
209
+ const res = injector.inject(TOKEN);
210
210
  expect(res).to.equal('Hello World');
211
211
  });
212
212
  it('should create an instance from an async StaticToken factory', async () => {
213
- const token = new StaticToken('test', () => Promise.resolve('Hello World'));
213
+ const TOKEN = token('test', () => Promise.resolve('Hello World'));
214
214
  const injector = new Injector();
215
- const res = await injector.inject(token);
215
+ const res = await injector.inject(TOKEN);
216
216
  expect(res).to.equal('Hello World');
217
217
  });
218
218
  it('should allow static token to be overridden', () => {
219
- const token = new StaticToken('test');
219
+ const TOKEN = token('test');
220
220
  const provider = {
221
- provide: token,
221
+ provide: TOKEN,
222
222
  factory() {
223
223
  return 'Hello World';
224
224
  }
225
225
  };
226
226
  const injector = new Injector([provider]);
227
- const res = injector.inject(token);
227
+ const res = injector.inject(TOKEN);
228
228
  expect(res).to.equal('Hello World');
229
229
  });
230
230
  });
@@ -1 +1 @@
1
- {"version":3,"file":"injector.test.js","sourceRoot":"","sources":["../../src/lib/injector.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injector.test.js","sourceRoot":"","sources":["../../src/lib/injector.test.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare class StaticToken<T> {
4
4
  factory: (() => T) | undefined;
5
5
  constructor(name: string, factory?: () => T);
6
6
  }
7
+ export declare function token<T>(name: string, factory?: () => T): StaticToken<T>;
7
8
  export interface ConstructableToken<T> {
8
9
  providers?: Provider<any>[];
9
10
  new (...args: any[]): T;
@@ -6,4 +6,7 @@ export class StaticToken {
6
6
  this.factory = factory;
7
7
  }
8
8
  }
9
+ export function token(name, factory) {
10
+ return new StaticToken(name, factory);
11
+ }
9
12
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/lib/provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACtB,IAAI,CAAC;IACL,OAAO,CAAC;IAER,YAAY,IAAY,EAAE,OAAiB;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/lib/provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACtB,IAAI,CAAC;IACL,OAAO,CAAC;IAER,YAAY,IAAY,EAAE,OAAiB;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,KAAK,CAAI,IAAY,EAAE,OAAiB;IACtD,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
package/target/lib.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Injector } from './lib/injector.js';
2
- export { Provider, ConstructableToken, StaticToken } from './lib/provider.js';
2
+ export { Provider, ConstructableToken, StaticToken, token } from './lib/provider.js';
3
3
  export { injectable, INJECTABLE_MAP } from './lib/injectable.js';
4
4
  export { inject, Injected } from './lib/inject.js';
5
5
  export { defineEnvironment, clearEnvironment } from './lib/environment.js';
package/target/lib.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Injector } from './lib/injector.js';
2
- export { StaticToken } from './lib/provider.js';
2
+ export { StaticToken, token } from './lib/provider.js';
3
3
  export { injectable, INJECTABLE_MAP } from './lib/injectable.js';
4
4
  export { inject } from './lib/inject.js';
5
5
  export { defineEnvironment, clearEnvironment } from './lib/environment.js';
package/target/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAgC,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAY,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAgC,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAY,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}