mantis-app
Advanced tools
{ | ||
"name": "mantis-app", | ||
"version": "0.8.1", | ||
"version": "0.9.0", | ||
"author": "FuturizeWorld", | ||
@@ -5,0 +5,0 @@ "license": "SEE LICENSE IN <LICENSE> FILE", |
@@ -38,6 +38,3 @@ { | ||
"files": ["*.spec.ts", "*.spec.tsx", "*.spec.js", "*.spec.jsx"], | ||
"extends": ["plugin:jest/recommended", "plugin:jest/style"], | ||
"env": { | ||
"jest": true | ||
}, | ||
"extends": ["plugin:vitest/recommended"], | ||
"rules": {} | ||
@@ -44,0 +41,0 @@ } |
@@ -5,7 +5,7 @@ { | ||
"esbenp.prettier-vscode", | ||
"firsttris.vscode-jest-runner", | ||
"dbaeumer.vscode-eslint", | ||
"angular.ng-template", | ||
"ionic.ionic" | ||
"ionic.ionic", | ||
"vitest.explorer" | ||
] | ||
} |
@@ -27,11 +27,3 @@ { | ||
} | ||
], | ||
"@angular-eslint/component-class-suffix": [ | ||
"error", | ||
{ | ||
"suffixes": ["Page", "Component"] | ||
} | ||
], | ||
"@angular-eslint/no-empty-lifecycle-method": 0, | ||
"@typescript-eslint/no-empty-function": 0 | ||
] | ||
} | ||
@@ -38,0 +30,0 @@ }, |
@@ -7,3 +7,3 @@ import type { StorybookConfig } from '@storybook/angular'; | ||
addons: ['@storybook/addon-essentials', '@storybook/addon-interactions'], | ||
staticDirs: ['../src/assets'], | ||
staticDirs: ['../src/public'], | ||
framework: { | ||
@@ -10,0 +10,0 @@ name: '@storybook/angular', |
@@ -8,3 +8,3 @@ import { | ||
import { initialize, mswLoader } from 'msw-storybook-addon'; | ||
import { ConfigService } from 'app/services/config.service'; | ||
import { ConfigService } from '../src/app/services/config.service'; | ||
import projectConfig from '../project.json'; | ||
@@ -11,0 +11,0 @@ import { Injectable, importProvidersFrom } from '@angular/core'; |
@@ -5,6 +5,8 @@ { | ||
"emitDecoratorMetadata": true, | ||
"resolveJsonModule": true | ||
"resolveJsonModule": true, | ||
"allowSyntheticDefaultImports": true | ||
}, | ||
"exclude": ["../**/*.spec.ts"], | ||
"include": [ | ||
"../src/**/*.d.ts", | ||
"../src/**/*.stories.ts", | ||
@@ -11,0 +13,0 @@ "../src/**/*.stories.js", |
@@ -6,3 +6,3 @@ import { CapacitorConfig } from '@capacitor/cli'; | ||
appName: 'mobile-client', | ||
webDir: '../../dist/apps/mobile-client', | ||
webDir: '../../dist/apps/mobile-client/analog/public', | ||
bundledWebRuntime: false, | ||
@@ -9,0 +9,0 @@ server: { |
@@ -5,77 +5,46 @@ { | ||
"projectType": "application", | ||
"prefix": "app", | ||
"sourceRoot": "apps/mobile-client/src", | ||
"tags": [], | ||
"targets": { | ||
"build": { | ||
"executor": "@angular-devkit/build-angular:browser", | ||
"outputs": ["{options.outputPath}"], | ||
"executor": "@analogjs/platform:vite", | ||
"outputs": [ | ||
"{options.outputPath}", | ||
"{workspaceRoot}/dist/apps/mobile-client/.nitro", | ||
"{workspaceRoot}/dist/apps/mobile-client/ssr", | ||
"{workspaceRoot}/dist/apps/mobile-client/analog" | ||
], | ||
"options": { | ||
"outputPath": "dist/apps/mobile-client", | ||
"index": "apps/mobile-client/src/index.html", | ||
"main": "apps/mobile-client/src/main.ts", | ||
"polyfills": ["zone.js"], | ||
"tsConfig": "apps/mobile-client/tsconfig.app.json", | ||
"inlineStyleLanguage": "scss", | ||
"assets": [ | ||
"apps/mobile-client/src/assets", | ||
{ | ||
"glob": "**/*.svg", | ||
"input": "node_modules/ionicons/dist/ionicons/svg", | ||
"output": "./svg" | ||
} | ||
], | ||
"styles": [ | ||
"apps/mobile-client/src/styles.scss", | ||
{ | ||
"input": "apps/mobile-client/src/theme/variables.scss" | ||
} | ||
], | ||
"scripts": [] | ||
"configFile": "apps/mobile-client/vite.config.ts", | ||
"outputPath": "dist/apps/mobile-client/client", | ||
"tsConfig": "apps/mobile-client/tsconfig.app.json" | ||
}, | ||
"defaultConfiguration": "production", | ||
"configurations": { | ||
"development": { | ||
"mode": "development" | ||
}, | ||
"production": { | ||
"budgets": [ | ||
{ | ||
"type": "initial", | ||
"maximumWarning": "500kb", | ||
"maximumError": "1mb" | ||
}, | ||
{ | ||
"type": "anyComponentStyle", | ||
"maximumWarning": "2kb", | ||
"maximumError": "4kb" | ||
} | ||
], | ||
"outputHashing": "all" | ||
}, | ||
"development": { | ||
"optimization": false, | ||
"extractLicenses": false, | ||
"sourceMap": true, | ||
"fileReplacements": [ | ||
{ | ||
"replace": "apps/mobile-client/src/environments/environment.ts", | ||
"with": "apps/mobile-client/src/environments/environment.development.ts" | ||
} | ||
] | ||
"sourcemap": false, | ||
"mode": "production" | ||
} | ||
}, | ||
"defaultConfiguration": "production" | ||
} | ||
}, | ||
"serve": { | ||
"executor": "@angular-devkit/build-angular:dev-server", | ||
"executor": "@analogjs/platform:vite-dev-server", | ||
"defaultConfiguration": "development", | ||
"options": { | ||
"buildTarget": "mobile-client:build", | ||
"port": 4300, | ||
"open": true | ||
}, | ||
"configurations": { | ||
"development": { | ||
"buildTarget": "mobile-client:build:development", | ||
"hmr": true | ||
}, | ||
"production": { | ||
"buildTarget": "mobile-client:build:production" | ||
}, | ||
"development": { | ||
"port": 4300, | ||
"buildTarget": "mobile-client:build:development" | ||
} | ||
}, | ||
"defaultConfiguration": "development" | ||
} | ||
}, | ||
@@ -85,11 +54,8 @@ "extract-i18n": { | ||
"options": { | ||
"buildTarget": "mobile-client:build" | ||
"browserTarget": "mobile-client:build" | ||
} | ||
}, | ||
"test": { | ||
"executor": "@nx/jest:jest", | ||
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"], | ||
"options": { | ||
"jestConfig": "apps/mobile-client/jest.config.ts" | ||
} | ||
"executor": "@analogjs/platform:vitest", | ||
"outputs": ["{projectRoot}/coverage"] | ||
}, | ||
@@ -199,3 +165,4 @@ "serve-static": { | ||
"browserTarget": "mobile-client:build", | ||
"compodoc": false | ||
"compodoc": false, | ||
"styles": ["apps/mobile-client/src/styles.scss"] | ||
}, | ||
@@ -202,0 +169,0 @@ "configurations": { |
@@ -1,4 +0,3 @@ | ||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; | ||
import { TestBed } from '@angular/core/testing'; | ||
import { RouterTestingModule } from '@angular/router/testing'; | ||
import { AppComponent } from './app.component'; | ||
@@ -9,4 +8,3 @@ | ||
await TestBed.configureTestingModule({ | ||
declarations: [AppComponent], | ||
schemas: [CUSTOM_ELEMENTS_SCHEMA], | ||
imports: [RouterTestingModule, AppComponent], | ||
}).compileComponents(); | ||
@@ -13,0 +11,0 @@ }); |
import { Component } from '@angular/core'; | ||
import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone'; | ||
@Component({ | ||
selector: 'app-root', | ||
templateUrl: 'app.component.html', | ||
styleUrls: ['app.component.scss'], | ||
standalone: true, | ||
imports: [IonApp, IonRouterOutlet], | ||
template: ` | ||
<ion-app> | ||
<ion-router-outlet></ion-router-outlet> | ||
</ion-app> | ||
`, | ||
styles: [], | ||
}) | ||
export class AppComponent {} |
@@ -9,6 +9,10 @@ import { | ||
import { FormsModule } from '@angular/forms'; | ||
import { Todo } from 'app/services/todos.service'; | ||
import { Todo } from '../../services/todos.service'; | ||
import { CommonModule } from '@angular/common'; | ||
import { IonicModule, IonItemSliding } from '@ionic/angular'; | ||
import { pencilOutline, trashOutline } from 'ionicons/icons'; | ||
import { addIcons } from 'ionicons'; | ||
addIcons({ pencilOutline, trashOutline }); | ||
@Component({ | ||
@@ -15,0 +19,0 @@ selector: 'app-todo-item', |
@@ -5,3 +5,3 @@ import { Component, Input, OnInit } from '@angular/core'; | ||
import { IonicModule } from '@ionic/angular'; | ||
import { CreateTodo, Todo } from 'app/services/todos.service'; | ||
import { CreateTodo, Todo } from '../../services/todos.service'; | ||
@@ -8,0 +8,0 @@ @Component({ |
import { Injectable } from '@angular/core'; | ||
import { environment } from 'environments/environment'; | ||
@@ -7,4 +6,4 @@ @Injectable({ providedIn: 'root' }) | ||
getBackendBaseUrl(): string { | ||
return environment.backendBaseUrl; | ||
return `${import.meta.env.VITE_PUBLIC_BACKEND_URL}/api/v1`; | ||
} | ||
} |
import { Injectable } from '@angular/core'; | ||
import { HttpClient } from '@angular/common/http'; | ||
import { Observable } from 'rxjs'; | ||
import { Observable, catchError, of, retry } from 'rxjs'; | ||
import { ConfigService } from './config.service'; | ||
@@ -22,3 +22,8 @@ | ||
getAllTodos(): Observable<Todo[]> { | ||
return this.http.get<Todo[]>(`${this.config.getBackendBaseUrl()}/todos`); | ||
return this.http | ||
.get<Todo[]>(`${this.config.getBackendBaseUrl()}/todos`) | ||
.pipe( | ||
retry(3), | ||
catchError(() => of([])), | ||
); | ||
} | ||
@@ -25,0 +30,0 @@ |
@@ -1,6 +0,8 @@ | ||
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; | ||
import { AppModule } from './app/app.module'; | ||
import 'zone.js'; | ||
import { bootstrapApplication } from '@angular/platform-browser'; | ||
import { appConfig } from './app/app.config'; | ||
import { AppComponent } from './app/app.component'; | ||
platformBrowserDynamic() | ||
.bootstrapModule(AppModule) | ||
.catch((err) => console.error(err)); | ||
bootstrapApplication(AppComponent, appConfig).catch((err) => | ||
console.error(err), | ||
); |
@@ -1,8 +0,12 @@ | ||
// @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment | ||
globalThis.ngJest = { | ||
testEnvironmentOptions: { | ||
errorOnUnknownElements: true, | ||
errorOnUnknownProperties: true, | ||
}, | ||
}; | ||
import 'jest-preset-angular/setup-jest'; | ||
import '@analogjs/vite-plugin-angular/setup-vitest'; | ||
import { | ||
BrowserDynamicTestingModule, | ||
platformBrowserDynamicTesting, | ||
} from '@angular/platform-browser-dynamic/testing'; | ||
import { getTestBed } from '@angular/core/testing'; | ||
getTestBed().initTestEnvironment( | ||
BrowserDynamicTestingModule, | ||
platformBrowserDynamicTesting(), | ||
); |
@@ -5,10 +5,15 @@ { | ||
"outDir": "../../dist/out-tsc", | ||
"types": [] | ||
"types": [], | ||
"target": "ES2022", | ||
"useDefineForClassFields": false | ||
}, | ||
"files": ["src/main.ts"], | ||
"include": ["src/**/*.d.ts"], | ||
"files": ["src/main.ts", "src/main.server.ts"], | ||
"include": [ | ||
"src/**/*.d.ts", | ||
"src/app/routes/**/*.ts", | ||
"src/app/pages/**/*.page.ts" | ||
], | ||
"exclude": [ | ||
"jest.config.ts", | ||
"src/**/*.test.ts", | ||
"src/**/*.spec.ts", | ||
"**/*.test.ts", | ||
"**/*.spec.ts", | ||
"**/*.stories.ts", | ||
@@ -15,0 +20,0 @@ "**/*.stories.js" |
{ | ||
"extends": "./tsconfig.json", | ||
"include": ["src/**/*.ts"], | ||
"include": ["**/*.ts"], | ||
"compilerOptions": { | ||
"types": ["jest", "node"] | ||
"types": ["node", "vitest/globals"] | ||
} | ||
} |
{ | ||
"extends": "../../tsconfig.base.json", | ||
"compilerOptions": { | ||
"target": "es2022", | ||
"baseUrl": "src", | ||
"useDefineForClassFields": false, | ||
"esModuleInterop": true, | ||
"target": "es2020", | ||
"forceConsistentCasingInFileNames": true, | ||
@@ -16,2 +14,3 @@ "strict": true, | ||
"include": [], | ||
"exclude": [], | ||
"references": [ | ||
@@ -31,3 +30,2 @@ { | ||
], | ||
"extends": "../../tsconfig.base.json", | ||
"angularCompilerOptions": { | ||
@@ -34,0 +32,0 @@ "enableI18nLegacyMessageIdFormat": false, |
@@ -5,13 +5,6 @@ { | ||
"outDir": "../../dist/out-tsc", | ||
"module": "commonjs", | ||
"target": "es2016", | ||
"types": ["jest", "node"] | ||
"types": ["node", "vitest/globals"] | ||
}, | ||
"files": ["src/test-setup.ts"], | ||
"include": [ | ||
"jest.config.ts", | ||
"src/**/*.test.ts", | ||
"src/**/*.spec.ts", | ||
"src/**/*.d.ts" | ||
] | ||
"include": ["src/**/*.spec.ts", "**/*.d.ts"] | ||
} |
{ | ||
"name": "web-client", | ||
"$schema": "../node_modules/nx/schemas/project-schema.json", | ||
"$schema": "../../node_modules/nx/schemas/project-schema.json", | ||
"projectType": "application", | ||
@@ -106,3 +106,3 @@ "sourceRoot": "apps/web-client/src", | ||
"options": { | ||
"command": "test-storybook -c apps/web-client/.storybook --url=http://localhost:4400" | ||
"command": "test-storybook -c apps/web-client/.storybook --url=http://localhost:5200" | ||
} | ||
@@ -109,0 +109,0 @@ }, |
@@ -9,3 +9,2 @@ { | ||
"!{projectRoot}/tsconfig.spec.json", | ||
"!{projectRoot}/jest.config.[jt]s", | ||
"!{projectRoot}/src/test-setup.[jt]s", | ||
@@ -12,0 +11,0 @@ "!{projectRoot}/test-setup.[jt]s", |
@@ -8,4 +8,4 @@ { | ||
"dependencies": { | ||
"@analogjs/content": "^1.1.2", | ||
"@analogjs/router": "^1.1.2", | ||
"@analogjs/content": "^1.2.0", | ||
"@analogjs/router": "^1.2.0", | ||
"@angular/animations": "^17.3.3", | ||
@@ -20,7 +20,7 @@ "@angular/common": "^17.3.3", | ||
"@angular/router": "^17.3.3", | ||
"@capacitor/app": "^5.0.7", | ||
"@capacitor/core": "^5.7.1", | ||
"@ionic/angular": "^7.8.4", | ||
"@ionic/core": "^7.8.4", | ||
"ionicons": "^7.2.2", | ||
"@capacitor/app": "^6.0.0", | ||
"@capacitor/core": "^6.0.0", | ||
"@ionic/angular": "^8.1.1", | ||
"@ionic/core": "^8.1.1", | ||
"ionicons": "^7.4.0", | ||
"mongoose": "^8.2.1", | ||
@@ -33,4 +33,4 @@ "rxjs": "^7.8.1", | ||
"devDependencies": { | ||
"@analogjs/platform": "^1.1.2", | ||
"@analogjs/vite-plugin-angular": "^1.1.2", | ||
"@analogjs/platform": "^1.2.0", | ||
"@analogjs/vite-plugin-angular": "^1.2.0", | ||
"@angular-devkit/build-angular": "^17.3.3", | ||
@@ -45,5 +45,5 @@ "@angular-devkit/core": "^17.3.3", | ||
"@angular/language-service": "^17.3.3", | ||
"@capacitor/android": "^5.7.1", | ||
"@capacitor/cli": "^5.7.1", | ||
"@capacitor/ios": "^5.7.1", | ||
"@capacitor/android": "^6.0.0", | ||
"@capacitor/cli": "^6.0.0", | ||
"@capacitor/ios": "^6.0.0", | ||
"@ionic/angular-toolkit": "^11.0.1", | ||
@@ -54,10 +54,7 @@ "@ionic/cli": "^7.2.0", | ||
"@nx/cypress": "18.2.4", | ||
"@nx/devkit": "18.2.4", | ||
"@nx/eslint": "18.2.4", | ||
"@nx/eslint-plugin": "18.2.4", | ||
"@nx/jest": "18.2.4", | ||
"@nx/js": "18.2.4", | ||
"@nx/storybook": "18.2.4", | ||
"@nx/vite": "18.2.4", | ||
"@nx/web": "18.2.4", | ||
"@nx/webpack": "18.2.4", | ||
@@ -70,3 +67,2 @@ "@nx/workspace": "18.2.4", | ||
"@types/fs-extra": "^11.0.4", | ||
"@types/jest": "^29.5.12", | ||
"@types/node": "^20.12.7", | ||
@@ -80,8 +76,4 @@ "@typescript-eslint/eslint-plugin": "^7.6.0", | ||
"eslint-plugin-cypress": "^2.15.1", | ||
"eslint-plugin-jest": "^28.2.0", | ||
"eslint-plugin-vitest": "^0.4.1", | ||
"fs-extra": "^11.2.0", | ||
"jest": "^29.7.0", | ||
"jest-environment-jsdom": "^29.7.0", | ||
"jest-environment-node": "^29.7.0", | ||
"jest-preset-angular": "^14.0.3", | ||
"jsdom": "^24.0.0", | ||
@@ -98,8 +90,7 @@ "mongodb-memory-server": "^9.2.0", | ||
"tailwindcss": "^3.0.2", | ||
"ts-jest": "^29.1.2", | ||
"typescript": "^5.4.4", | ||
"vite": "^5.2.8", | ||
"vite-tsconfig-paths": "^4.2.0", | ||
"vitest": "^1.0.4" | ||
"vitest": "^1.3.1" | ||
} | ||
} |
@@ -113,2 +113,2 @@ # Mantis Todo Example | ||
- [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode): Integrates [Prettier](https://prettier.io/) into VS Code. | ||
- [Jest Runner](https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner): Makes it easy to debug Jest tests within VS Code. | ||
- [Vitest](https://marketplace.visualstudio.com/items?itemName=vitest.explorer): Makes it easy to debug Vitest tests within VS Code. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
191472
1.86%136
-4.9%3614
-0.33%