Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------ routes/application.ts -----
- import Route from '@ember/routing/route';
- import type Transition from '@ember/routing/transition';
- import { service } from '@ember/service';
- import Store from '@ember-data/store';
- export default class ApplicationRoute extends Route {
- @service store!: Store;
- async beforeModel(transition: Transition): Promise<void> {
- console.log('ApplicationRoute#beforeModel loaded');
- try {
- await this.store.findAll('table-summary');
- } catch (error) {
- console.error('Error fetching table-summary data:', error);
- // handle error, possibly by redirecting to an error route
- }
- }
- }
- ------ models/table-summary.js -----------
- import Model, { attr } from '@ember-data/model';
- export default class TableSummaryModel extends Model {
- @attr('string') prettyName;
- @attr('string') description;
- }
- ------ adapters/table-summary.js ---------
- import JSONAPIAdapter from '@ember-data/adapter/json-api';
- import { getStaticDataURL } from 'static-data/utils/URLUtil';
- export default class TableSummaryAdapter extends JSONAPIAdapter {
- // This is the URL that the adapter will use to make requests
- host = getStaticDataURL();
- namespace = '';
- headers = {
- 'Content-Type': 'application/json',
- Accept: 'application/json',
- };
- pathForType() {
- return 'table-summaries';
- }
- }
- ------ Payload -----------
- {
- "data": [
- {
- "type": "table-summary",
- "id": "2",
- "attributes": {
- "prettyName": "City lookup",
- "description": "Maps city codes to city names"
- }
- },
- {
- "type": "table-summary",
- "id": "1",
- "attributes": {
- "prettyName": "Hotel lookup",
- "description": "Maps hotel codes to hotel names"
- }
- }
- ]
- }
- ------ package.json --------
- {
- "name": "static-data",
- "version": "0.0.0",
- "private": true,
- "description": "Small description for static-data goes here",
- "repository": "",
- "license": "MIT",
- "author": "",
- "directories": {
- "doc": "doc",
- "test": "tests"
- },
- "scripts": {
- "build": "ember build --environment=production",
- "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"",
- "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"",
- "lint:types": "tsc --noEmit",
- "start": "ember serve",
- "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"",
- "test:ember": "ember test"
- },
- "devDependencies": {
- "@babel/core": "^7.24.3",
- "@ember/optional-features": "^2.1.0",
- "@ember/render-modifiers": "^2.1.0",
- "@ember/string": "^3.1.1",
- "@ember/test-helpers": "^3.3.0",
- "@embroider/compat": "^3.4.6",
- "@embroider/core": "^3.4.6",
- "@embroider/webpack": "^3.2.2",
- "@glimmer/component": "^1.1.2",
- "@glimmer/tracking": "^1.1.2",
- "@glint/environment-ember-loose": "^1.4.0",
- "@glint/template": "^1.4.0",
- "@tsconfig/ember": "^3.0.8",
- "@types/ember": "^4.0.11",
- "@types/ember-data": "^4.4.16",
- "@types/ember-data__adapter": "^4.0.6",
- "@types/ember-data__model": "^4.0.5",
- "@types/ember-data__serializer": "^4.0.6",
- "@types/ember-data__store": "^4.0.7",
- "@types/ember-qunit": "^6.1.1",
- "@types/ember-resolver": "^9.0.0",
- "@types/ember__application": "^4.0.11",
- "@types/ember__array": "^4.0.10",
- "@types/ember__component": "^4.0.22",
- "@types/ember__controller": "^4.0.12",
- "@types/ember__debug": "^4.0.8",
- "@types/ember__destroyable": "^4.0.5",
- "@types/ember__engine": "^4.0.11",
- "@types/ember__error": "^4.0.6",
- "@types/ember__helper": "^4.0.7",
- "@types/ember__modifier": "^4.0.9",
- "@types/ember__object": "^4.0.12",
- "@types/ember__owner": "^4.0.9",
- "@types/ember__polyfills": "^4.0.6",
- "@types/ember__routing": "^4.0.22",
- "@types/ember__runloop": "^4.0.10",
- "@types/ember__service": "^4.0.9",
- "@types/ember__string": "^3.0.15",
- "@types/ember__template": "^4.0.7",
- "@types/ember__test": "^4.0.6",
- "@types/ember__utils": "^4.0.7",
- "@types/qunit": "^2.19.10",
- "@types/rsvp": "^4.0.9",
- "broccoli-asset-rev": "^3.0.0",
- "concurrently": "^8.2.2",
- "ember-auto-import": "^2.7.2",
- "ember-cli": "~5.7.0",
- "ember-cli-app-version": "^6.0.1",
- "ember-cli-babel": "^8.2.0",
- "ember-cli-clean-css": "^3.0.0",
- "ember-cli-dependency-checker": "^3.3.2",
- "ember-cli-htmlbars": "^6.3.0",
- "ember-cli-inject-live-reload": "^2.1.0",
- "ember-cli-sass": "^11.0.1",
- "ember-cli-typescript": "^5.3.0",
- "ember-data": "~5.3.8",
- "ember-fetch": "^8.1.2",
- "ember-load-initializers": "^2.1.2",
- "ember-modifier": "^4.1.0",
- "ember-page-title": "^8.2.3",
- "ember-qunit": "^8.0.2",
- "ember-resolver": "^11.0.1",
- "ember-source": "~5.7.0",
- "ember-truth-helpers": "^4.0.3",
- "loader.js": "^4.7.0",
- "qunit": "^2.20.1",
- "qunit-dom": "^2.0.0",
- "sass-embedded": "^1.72.0",
- "tracked-built-ins": "^3.3.0",
- "typescript": "^5.5.3",
- "webpack": "^5.91.0"
- },
- "engines": {
- "node": ">= 18"
- },
- "ember": {
- "edition": "octane"
- },
- "dependencies": {
- "@fortawesome/ember-fontawesome": "^2.0.0",
- "@fortawesome/fontawesome-svg-core": "^6.5.1",
- "@fortawesome/free-regular-svg-icons": "^6.5.1",
- "@fortawesome/free-solid-svg-icons": "^6.5.1",
- "babel": "^6.23.0",
- "ember-models-table": "5",
- "ember-set-helper": "^3.0.1",
- "ember-table": "^5.0.6"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment