From a9313711984373eef52489cea174cdef62753c92 Mon Sep 17 00:00:00 2001 From: joaq cid Date: Mon, 15 Apr 2024 09:35:23 -0300 Subject: [PATCH] chore: standalone app --- angular.json | 79 ++++++++++++++++++ .../standalone/src/app/app.component.html | 6 ++ .../standalone/src/app/app.component.scss | 0 .../standalone/src/app/app.component.spec.ts | 29 +++++++ .../standalone/src/app/app.component.ts | 23 +++++ integrations/standalone/src/app/app.config.ts | 30 +++++++ integrations/standalone/src/app/app.routes.ts | 3 + .../src/app/services/test.firestore.ts | 7 ++ .../standalone/src/app/states/test.actions.ts | 8 ++ .../src/app/states/test.selectors.ts | 6 ++ .../standalone/src/app/states/test.state.ts | 38 +++++++++ integrations/standalone/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 12 +++ .../src/environments/environment.ts | 24 ++++++ integrations/standalone/src/favicon.ico | Bin 0 -> 15086 bytes integrations/standalone/src/index.html | 13 +++ integrations/standalone/src/main.ts | 5 ++ integrations/standalone/src/styles.scss | 1 + integrations/standalone/tsconfig.app.json | 10 +++ integrations/standalone/tsconfig.spec.json | 9 ++ 20 files changed, 303 insertions(+) create mode 100644 integrations/standalone/src/app/app.component.html create mode 100644 integrations/standalone/src/app/app.component.scss create mode 100644 integrations/standalone/src/app/app.component.spec.ts create mode 100644 integrations/standalone/src/app/app.component.ts create mode 100644 integrations/standalone/src/app/app.config.ts create mode 100644 integrations/standalone/src/app/app.routes.ts create mode 100644 integrations/standalone/src/app/services/test.firestore.ts create mode 100644 integrations/standalone/src/app/states/test.actions.ts create mode 100644 integrations/standalone/src/app/states/test.selectors.ts create mode 100644 integrations/standalone/src/app/states/test.state.ts create mode 100644 integrations/standalone/src/assets/.gitkeep create mode 100644 integrations/standalone/src/environments/environment.prod.ts create mode 100644 integrations/standalone/src/environments/environment.ts create mode 100644 integrations/standalone/src/favicon.ico create mode 100644 integrations/standalone/src/index.html create mode 100644 integrations/standalone/src/main.ts create mode 100644 integrations/standalone/src/styles.scss create mode 100644 integrations/standalone/tsconfig.app.json create mode 100644 integrations/standalone/tsconfig.spec.json diff --git a/angular.json b/angular.json index bec831b..9133c53 100644 --- a/angular.json +++ b/angular.json @@ -183,6 +183,85 @@ } } } + }, + "standalone": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "integrations/standalone", + "sourceRoot": "integrations/standalone/src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/standalone", + "index": "integrations/standalone/src/index.html", + "browser": "integrations/standalone/src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "integrations/standalone/tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": ["integrations/standalone/src/favicon.ico", "integrations/standalone/src/assets"], + "styles": ["integrations/standalone/src/styles.scss"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "standalone:build:production" + }, + "development": { + "buildTarget": "standalone:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "standalone:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": ["zone.js", "zone.js/testing"], + "tsConfig": "integrations/standalone/tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": ["integrations/standalone/src/favicon.ico", "integrations/standalone/src/assets"], + "styles": ["integrations/standalone/src/styles.scss"], + "scripts": [] + } + } + } } }, "cli": { diff --git a/integrations/standalone/src/app/app.component.html b/integrations/standalone/src/app/app.component.html new file mode 100644 index 0000000..8947683 --- /dev/null +++ b/integrations/standalone/src/app/app.component.html @@ -0,0 +1,6 @@ +

Hello from {{ name }}!

+ + Learn more about Angular + + +
{{ all$ | async | json }}
diff --git a/integrations/standalone/src/app/app.component.scss b/integrations/standalone/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/integrations/standalone/src/app/app.component.spec.ts b/integrations/standalone/src/app/app.component.spec.ts new file mode 100644 index 0000000..4fbd134 --- /dev/null +++ b/integrations/standalone/src/app/app.component.spec.ts @@ -0,0 +1,29 @@ +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [AppComponent] + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have the 'standalone' title`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.name).toEqual('standalone'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('h1')?.textContent).toContain('Hello, standalone'); + }); +}); diff --git a/integrations/standalone/src/app/app.component.ts b/integrations/standalone/src/app/app.component.ts new file mode 100644 index 0000000..127199b --- /dev/null +++ b/integrations/standalone/src/app/app.component.ts @@ -0,0 +1,23 @@ +import { Component } from '@angular/core'; +import { AsyncPipe, JsonPipe } from '@angular/common'; +import { all } from './states/test.selectors'; +import { Store } from '@ngxs/store'; +import { GetAll } from './states/test.actions'; + +@Component({ + selector: 'app-root', + standalone: true, + imports: [AsyncPipe, JsonPipe], + templateUrl: './app.component.html', + styleUrl: './app.component.scss' +}) +export class AppComponent { + name = 'Angular'; + all$ = this.store.select(all); + + constructor(private store: Store) {} + + ngOnInit() { + this.store.dispatch(new GetAll()); + } +} diff --git a/integrations/standalone/src/app/app.config.ts b/integrations/standalone/src/app/app.config.ts new file mode 100644 index 0000000..8cd7df6 --- /dev/null +++ b/integrations/standalone/src/app/app.config.ts @@ -0,0 +1,30 @@ +import { ApplicationConfig, importProvidersFrom } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { routes } from './app.routes'; +import { initializeApp, provideFirebaseApp } from '@angular/fire/app'; +import { getFirestore, provideFirestore } from '@angular/fire/firestore'; +import { NgxsModule } from '@ngxs/store'; +import { NgxsLoggerPluginModule } from '@ngxs/logger-plugin'; +import { environment } from '../environments/environment'; +import { TestState } from './states/test.state'; +import { provideNgxsFirestore } from '@ngxs-labs/firestore-plugin'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideRouter(routes), + importProvidersFrom( + provideFirebaseApp(() => initializeApp(environment.firebase)), + provideFirestore(() => getFirestore()), + NgxsModule.forRoot([TestState], { + developmentMode: !environment.production + }), + NgxsLoggerPluginModule.forRoot({ + disabled: environment.production + }) + ), + provideNgxsFirestore({ + developmentMode: true + }) + ] +}; diff --git a/integrations/standalone/src/app/app.routes.ts b/integrations/standalone/src/app/app.routes.ts new file mode 100644 index 0000000..dc39edb --- /dev/null +++ b/integrations/standalone/src/app/app.routes.ts @@ -0,0 +1,3 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = []; diff --git a/integrations/standalone/src/app/services/test.firestore.ts b/integrations/standalone/src/app/services/test.firestore.ts new file mode 100644 index 0000000..f6d35b1 --- /dev/null +++ b/integrations/standalone/src/app/services/test.firestore.ts @@ -0,0 +1,7 @@ +import { Injectable } from '@angular/core'; +import { NgxsFirestore } from '@ngxs-labs/firestore-plugin'; + +@Injectable({ providedIn: 'root' }) +export class TestFirestore extends NgxsFirestore { + path = 'test'; +} diff --git a/integrations/standalone/src/app/states/test.actions.ts b/integrations/standalone/src/app/states/test.actions.ts new file mode 100644 index 0000000..1e14d3b --- /dev/null +++ b/integrations/standalone/src/app/states/test.actions.ts @@ -0,0 +1,8 @@ +export class GetAll { + static readonly type = '[Test] GetAll'; +} + +export class Create { + static readonly type = '[Test] Create'; + constructor(public payload: any) {} +} diff --git a/integrations/standalone/src/app/states/test.selectors.ts b/integrations/standalone/src/app/states/test.selectors.ts new file mode 100644 index 0000000..8ae887a --- /dev/null +++ b/integrations/standalone/src/app/states/test.selectors.ts @@ -0,0 +1,6 @@ +import { createSelector } from '@ngxs/store'; +import { TestState, TestStateModel } from './test.state'; + +export const all = createSelector([TestState], (state: TestStateModel) => { + return state.items; +}); diff --git a/integrations/standalone/src/app/states/test.state.ts b/integrations/standalone/src/app/states/test.state.ts new file mode 100644 index 0000000..5164c22 --- /dev/null +++ b/integrations/standalone/src/app/states/test.state.ts @@ -0,0 +1,38 @@ +import { Injectable } from '@angular/core'; +import { Action, NgxsOnInit, State, StateContext } from '@ngxs/store'; +import { TestFirestore } from './../services/test.firestore'; +import { Create, GetAll } from './test.actions'; +import { Emitted, NgxsFirestoreConnect, StreamEmitted } from '@ngxs-labs/firestore-plugin'; + +export interface TestStateModel { + items: any[]; +} + +@State({ + name: 'test', + defaults: { + items: [] + } +}) +@Injectable() +export class TestState implements NgxsOnInit { + constructor(private testFS: TestFirestore, private ngxsFirestoreConnect: NgxsFirestoreConnect) {} + + ngxsOnInit(ctx: StateContext) { + this.ngxsFirestoreConnect.connect(GetAll, { + to: () => this.testFS.collection$() + }); + } + + @Action(StreamEmitted(GetAll)) + getAll(ctx: StateContext, { payload }: Emitted) { + ctx.patchState({ + items: payload || [] + }); + } + + @Action(Create) + async sendMessage(ctx: StateContext, { payload }: any) { + return this.testFS.create$(payload); + } +} diff --git a/integrations/standalone/src/assets/.gitkeep b/integrations/standalone/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/integrations/standalone/src/environments/environment.prod.ts b/integrations/standalone/src/environments/environment.prod.ts new file mode 100644 index 0000000..e4aecb7 --- /dev/null +++ b/integrations/standalone/src/environments/environment.prod.ts @@ -0,0 +1,12 @@ +export const environment = { + production: true, + firebase: { + apiKey: 'AIzaSyDODLVMuwrvGobMXkI89DktOLgwf0mCM24', + authDomain: 'joaq-lab.firebaseapp.com', + databaseURL: 'https://joaq-lab.firebaseio.com', + projectId: 'joaq-lab', + storageBucket: 'joaq-lab.appspot.com', + messagingSenderId: '794748950011', + appId: '1:794748950011:web:815fe385e7317c11' + } +}; diff --git a/integrations/standalone/src/environments/environment.ts b/integrations/standalone/src/environments/environment.ts new file mode 100644 index 0000000..ddb47aa --- /dev/null +++ b/integrations/standalone/src/environments/environment.ts @@ -0,0 +1,24 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false, + firebase: { + apiKey: 'AIzaSyDODLVMuwrvGobMXkI89DktOLgwf0mCM24', + authDomain: 'joaq-lab.firebaseapp.com', + databaseURL: 'https://joaq-lab.firebaseio.com', + projectId: 'joaq-lab', + storageBucket: 'joaq-lab.appspot.com', + messagingSenderId: '794748950011', + appId: '1:794748950011:web:815fe385e7317c11' + } +}; + +/* + * In development mode, to ignore zone related error stack frames such as + * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can + * import the following file, but please comment it out in production mode + * because it will have performance impact when throw error + */ +// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. diff --git a/integrations/standalone/src/favicon.ico b/integrations/standalone/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..57614f9c967596fad0a3989bec2b1deff33034f6 GIT binary patch literal 15086 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 Nr__JTFzvMr^FKp4S3v*( literal 0 HcmV?d00001 diff --git a/integrations/standalone/src/index.html b/integrations/standalone/src/index.html new file mode 100644 index 0000000..a5e265a --- /dev/null +++ b/integrations/standalone/src/index.html @@ -0,0 +1,13 @@ + + + + + Standalone + + + + + + + + diff --git a/integrations/standalone/src/main.ts b/integrations/standalone/src/main.ts new file mode 100644 index 0000000..17447a5 --- /dev/null +++ b/integrations/standalone/src/main.ts @@ -0,0 +1,5 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)); diff --git a/integrations/standalone/src/styles.scss b/integrations/standalone/src/styles.scss new file mode 100644 index 0000000..90d4ee0 --- /dev/null +++ b/integrations/standalone/src/styles.scss @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/integrations/standalone/tsconfig.app.json b/integrations/standalone/tsconfig.app.json new file mode 100644 index 0000000..7411960 --- /dev/null +++ b/integrations/standalone/tsconfig.app.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/integrations/standalone/tsconfig.spec.json b/integrations/standalone/tsconfig.spec.json new file mode 100644 index 0000000..063a6f0 --- /dev/null +++ b/integrations/standalone/tsconfig.spec.json @@ -0,0 +1,9 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +}