66 isString ,
77 validate ,
88 isDefined ,
9+ validateRequired ,
10+ isObject ,
911} from "../../../shared/utils.js" ;
1012import { isInjectable } from "../../../shared/predicates.js" ;
1113
@@ -129,6 +131,8 @@ export class NgModule {
129131 * @returns {NgModule }
130132 */
131133 factory ( name , providerFunction ) {
134+ validate ( isString , name , "name" ) ;
135+ validateRequired ( providerFunction , "providerFunction" ) ;
132136 this . invokeQueue . push ( [ $t . $provide , "factory" , [ name , providerFunction ] ] ) ;
133137
134138 return this ;
@@ -140,6 +144,8 @@ export class NgModule {
140144 * @returns {NgModule }
141145 */
142146 service ( name , serviceFunction ) {
147+ validate ( isString , name , "name" ) ;
148+ validateRequired ( serviceFunction , "serviceFunction" ) ;
143149 this . services . push ( name ) ;
144150 this . invokeQueue . push ( [ $t . $provide , "service" , [ name , serviceFunction ] ] ) ;
145151
@@ -152,9 +158,8 @@ export class NgModule {
152158 * @returns {NgModule }
153159 */
154160 provider ( name , providerType ) {
155- if ( providerType && isFunction ( providerType ) ) {
156- providerType . $$moduleName = name ;
157- }
161+ validate ( isString , name , "name" ) ;
162+ validateRequired ( providerType , "providerType" ) ;
158163 this . invokeQueue . push ( [ $t . $provide , "provider" , [ name , providerType ] ] ) ;
159164
160165 return this ;
@@ -166,9 +171,8 @@ export class NgModule {
166171 * @returns {NgModule }
167172 */
168173 decorator ( name , decorFn ) {
169- if ( decorFn && isFunction ( decorFn ) ) {
170- decorFn . $$moduleName = name ;
171- }
174+ validate ( isString , name , "name" ) ;
175+ validateRequired ( decorFn , "decorFn" ) ;
172176 this . configBlocks . push ( [ $t . $provide , "decorator" , [ name , decorFn ] ] ) ;
173177
174178 return this ;
@@ -180,6 +184,8 @@ export class NgModule {
180184 * @returns {NgModule }
181185 */
182186 directive ( name , directiveFactory ) {
187+ validate ( isString , name , "name" ) ;
188+ validateRequired ( directiveFactory , "directiveFactory" ) ;
183189 this . invokeQueue . push ( [
184190 $t . $compileProvider ,
185191 "directive" ,
@@ -195,6 +201,8 @@ export class NgModule {
195201 * @returns {NgModule }
196202 */
197203 animation ( name , animationFactory ) {
204+ validate ( isString , name , "name" ) ;
205+ validateRequired ( animationFactory , "animationFactory" ) ;
198206 this . invokeQueue . push ( [
199207 $t . $animateProvider ,
200208 "register" ,
@@ -226,6 +234,8 @@ export class NgModule {
226234 * @returns {NgModule }
227235 */
228236 controller ( name , ctlFn ) {
237+ validate ( isString , name , "name" ) ;
238+ validateRequired ( ctlFn , `fictlFnlterFn` ) ;
229239 this . invokeQueue . push ( [ $t . $controllerProvider , "register" , [ name , ctlFn ] ] ) ;
230240
231241 return this ;
@@ -253,6 +263,8 @@ export class NgModule {
253263 * @returns {NgModule }
254264 */
255265 wasm ( name , src , imports = { } , opts = { } ) {
266+ validate ( isString , name , "name" ) ;
267+ validate ( isString , src , "src" ) ;
256268 const raw = ! ! opts . raw ;
257269
258270 this . invokeQueue . push ( [
@@ -282,6 +294,8 @@ export class NgModule {
282294 * @returns {NgModule }
283295 */
284296 worker ( name , scriptPath , config ) {
297+ validate ( isString , name , "name" ) ;
298+ validate ( isString , scriptPath , "scriptPath" ) ;
285299 this . invokeQueue . push ( [
286300 $t . $provide ,
287301 "provider" ,
@@ -298,16 +312,18 @@ export class NgModule {
298312
299313 /**
300314 * @param {string } name
301- * @param {Function } ctor
315+ * @param {Function|Object } ctor - A regular function, an arrow function or an object
302316 * @param {ng.StorageType } type
303317 * @param {ng.StorageBackend } [backendOrConfig]
304318 * @returns {NgModule }
305319 */
306320 store ( name , ctor , type , backendOrConfig ) {
321+ validate ( isString , name , "name" ) ;
322+ validateRequired ( ctor , "ctor" ) ;
307323 this . invokeQueue . push ( [
308324 $t . $provide ,
309325 "store" ,
310- [ name , ctor , type , backendOrConfig ] ,
326+ [ name , isObject ( ctor ) ? ( ) => ctor : ctor , type , backendOrConfig ] ,
311327 ] ) ;
312328
313329 return this ;
@@ -323,6 +339,9 @@ export class NgModule {
323339 * @returns {NgModule }
324340 */
325341 rest ( name , url , entityClass , options = { } ) {
342+ validate ( isString , name , "name" ) ;
343+ validate ( isString , url , "url" ) ;
344+ validate ( isFunction , entityClass , "entityClass" ) ;
326345 const def = { name, url, entityClass, options } ;
327346
328347 this . restDefinitions . push ( def ) ;
0 commit comments