UNPKG

@primno/core

Version:

Front-end framework for Model-Driven Apps of Power Apps and Dynamics 365.

67 lines (66 loc) 1.4 kB
import { Constructor } from "../../typing"; /** * Options for the `Injectable` decorator. */ interface InjectableOptions { /** * Determines where the dependency is provided. */ providedIn?: "root"; } /** * Decorator that marks a class providable as a dependency. * * Use the `providedIn` option to provide the dependency in the root injector. * * @example Mark `MyService` as a dependency in a component. * ```ts * @Injectable() * class MyService { * doSomething() { * console.log("Hello World!"); * } * } * * @MnComponent({ * scope: { * pageType: "record" * }, * providers: [ * MyService * ] * }) * export class MyComponent { * constructor(myService: MyService) { * myService.doSomething(); * } * } * ``` * * @example Mark `MyService` as a dependency and provide it in the root injector. * ```ts * @Injectable({ * providedIn: "root" * }) * class MyService { * doSomething() { * console.log("Hello World!"); * } * } * * @MnComponent({ * scope: { * pageType: "record" * } * }) * export class MyComponent { * constructor(myService: MyService) { * myService.doSomething(); * } * } * ``` * * @category Dependency Injection */ export declare function Injectable<T extends Constructor>(options?: InjectableOptions): (target: T) => void; export {};