Skip to content

Commit 6653ebe

Browse files
fix: generate firebase module script
1 parent 0dc0012 commit 6653ebe

File tree

4 files changed

+35
-28
lines changed

4 files changed

+35
-28
lines changed

src/commands/create.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import generateTsConfig from '../generators/tsconfig.gen'
3838
import generateTsDeclartionFile from '../generators/declarations.gen'
3939
import generateDotEnv from '../generators/env.gen'
4040
import generateIdeStubs from '../generators/ide.gen'
41+
import generateFirebase from '../generators/firebase.gen'
4142

4243
command(
4344
'create [overwrite]',
@@ -64,16 +65,14 @@ interface QustionResponse {
6465

6566
interface AnswersDictionary {
6667
readonly fullname: string
67-
readonly isUniversalApp: boolean
68-
readonly ide: IDE
68+
readonly shortname?: string
69+
readonly ide?: IDE
70+
readonly firebase?: boolean
71+
readonly firebaseModules?: ReadonlyArray<string>
6972
}
7073

71-
interface WorkingAnswersDictionary {
74+
interface WorkingAnswersDictionary extends AnswersDictionary {
7275
readonly [key: string]: any
73-
readonly fullname?: string
74-
readonly ide?: string
75-
readonly firebase?: boolean
76-
readonly firebaseModules?: ReadonlyArray<string>
7776
}
7877

7978
interface QuestionWrapper {
@@ -139,7 +138,7 @@ const Q_IDE = {
139138
const Q_INCLUDE_FIREBASE = {
140139
question: {
141140
type: 'confirm',
142-
name: 'useFirebase',
141+
name: 'firebase',
143142
message: 'Are you using Firebase?',
144143
default: false
145144
},
@@ -234,7 +233,7 @@ const QUESTION_DICT = [
234233

235234
const source = new Subject<any>()
236235
const finalConfigSource = new Subject()
237-
const collector = new BehaviorSubject<WorkingAnswersDictionary>({})
236+
const collector = new BehaviorSubject<WorkingAnswersDictionary>({} as any)
238237
const prompts = source.pipe(
239238
startWith(Q_FULL_NAME.question),
240239
shareReplay()
@@ -383,19 +382,22 @@ function create(overwriteExisting = false) {
383382
flatMap(im => {
384383
const path = resolve(im.config.fullname)
385384
return forkJoin([
386-
genNpmPackageJson(
387-
im.config.fullname,
388-
im.config.isUniversalApp,
389-
overwriteExisting
390-
).pipe(flatMap(test(im.config.fullname))),
385+
genNpmPackageJson(im.config.fullname, true, overwriteExisting).pipe(
386+
flatMap(test(im.config.fullname))
387+
),
391388
generateCoreAngular(im.config.fullname),
392389
generateGitIgnore(path, overwriteExisting),
393390
generateTsLint(path, overwriteExisting),
394391
generateDotEnv(path, overwriteExisting),
395392
generateFngConfig(path, overwriteExisting),
396393
generateTsConfig(path, overwriteExisting),
397394
generateTsDeclartionFile(path, overwriteExisting),
398-
generateIdeStubs(im.config.ide, path, overwriteExisting)
395+
im.config.ide
396+
? generateIdeStubs(im.config.ide, path, overwriteExisting)
397+
: of(undefined),
398+
im.config.firebase
399+
? generateFirebase(path, overwriteExisting)
400+
: of(undefined)
399401
])
400402
}, im => im),
401403
take(1)

src/generators/firebase.gen.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { resolve } from 'path'
2+
import { writeFile_, writeFileSafely_ } from '../utilities/rx-fs'
3+
import { firebaseModule } from '../templates/core/app'
4+
5+
const configPath = 'src/app/firebase.module.ts'
6+
7+
export default function generateFirebase(dir: string, overwrite = false) {
8+
return overwrite
9+
? writeFile_(resolve(dir, configPath), firebaseModule)
10+
: writeFileSafely_(resolve(dir, configPath), firebaseModule)
11+
}
Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { NgModule } from '@angular/core'
22
import { FirebaseNameOrConfigToken, FirebaseOptionsToken, AngularFireModule } from 'angularfire2'
3-
import { FIREBASE_USER_AUTH_TOKEN } from '../firebase/common/server'
3+
import { FIREBASE_USER_AUTH_TOKEN } from 'fusing-angular-cli/.build/modules/src/modules/firebase'
44

55
export function firebaseAuthFactory() {
66
return undefined
@@ -18,19 +18,11 @@ export function firebaseEnvironmentFactory() {
1818
}
1919

2020
@NgModule({
21-
imports: [
22-
AngularFireModule
23-
],
21+
imports: [AngularFireModule],
2422
providers: [
2523
{ provide: FIREBASE_USER_AUTH_TOKEN, useFactory: firebaseAuthFactory },
26-
{
27-
provide: FirebaseNameOrConfigToken,
28-
useValue: 'universal-webapp'
29-
},
30-
{
31-
provide: FirebaseOptionsToken,
32-
useFactory: firebaseEnvironmentFactory
33-
}
24+
{ provide: FirebaseNameOrConfigToken, useValue: 'universal-webapp' },
25+
{ provide: FirebaseOptionsToken, useFactory: firebaseEnvironmentFactory }
3426
]
3527
})
3628
export class FirebaseModule { }

src/templates/core/app/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import * as appComponentCssTemplate from './app.component.scss.txt'
66
import * as appComponentHtmlTemplate from './app.component.html.txt'
77
import * as homeComponentTemplate from './home.component.ts.txt'
88
import * as appIndex from './index.pug.txt'
9+
import * as firebaseModule from './firebase.module.ts.txt'
910

1011
export {
1112
appModuleTemplate,
@@ -15,5 +16,6 @@ export {
1516
homeComponentTemplate,
1617
appComponentCssTemplate,
1718
appComponentHtmlTemplate,
18-
appIndex
19+
appIndex,
20+
firebaseModule
1921
}

0 commit comments

Comments
 (0)