11/**
22 * Created by voland on 4/2/16.
33 */
4- export default function Component ( moduleOrName : string | ng . IModule , selector : string , options : {
4+
5+ export function Component ( options : {
6+ selector : string ,
57 controllerAs ?: string ,
68 template ?: string ,
79 templateUrl ?: string ,
810 bindings ? : any
9- } ) {
11+ } , moduleOrName : string | ng . IModule = 'app.components' ) {
1012 return ( controller : Function ) => {
13+ var selector = options . selector ;
1114 var module = typeof moduleOrName === "string"
1215 ? angular . module ( moduleOrName )
1316 : moduleOrName ;
17+ delete options . selector ;
1418 module . component ( selector , angular . extend ( options , { controller : controller } ) ) ;
1519 }
20+ }
21+
22+ export function Service ( moduleOrName : string | ng . IModule = 'app.services' ) {
23+ return ( service : any ) => {
24+ var name = service . name ;
25+ var module = typeof moduleOrName === "string"
26+ ? angular . module ( moduleOrName )
27+ : moduleOrName ;
28+ module . service ( name , service ) ;
29+ }
30+ }
31+
32+ export interface PipeTransform {
33+ transform ( value : any , ...args : any [ ] ) : any ;
34+ }
35+
36+ export function Pipe ( options : { name : string } , moduleOrName : string | ng . IModule = 'app.pipes' ) {
37+ return ( Pipe : any ) => {
38+ var instance = new Pipe ( ) ;
39+ var module = typeof moduleOrName === "string"
40+ ? angular . module ( moduleOrName )
41+ : moduleOrName ;
42+ module . filter ( options . name , ( ) => instance . transform ) ;
43+ }
1644}
0 commit comments