Skip to content

Commit

Permalink
Merge pull request #1038 from Tzahi12345/codespaces-support
Browse files Browse the repository at this point in the history
Added codespaces support
  • Loading branch information
Tzahi12345 authored Dec 4, 2023
2 parents 6b59446 + 4bf03bf commit cdf82ab
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 3 deletions.
39 changes: 39 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// README at: https:/devcontainers/templates/tree/main/src/javascript-node
{
"name": "Node.js",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/javascript-node:0-18-bullseye",
"features": {
"ghcr.io/devcontainers-contrib/features/jshint:2": {},
"ghcr.io/devcontainers-contrib/features/angular-cli:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [4200, 17442],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "npm install && cd backend && npm install",

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-python.python",
"Angular.ng-template",
"dbaeumer.vscode-eslint",
"waderyan.gitblame",
"42Crunch.vscode-openapi",
"christian-kohler.npm-intellisense",
"redhat.vscode-yaml",
"hbenl.vscode-mocha-test-adapter",
"DavidAnson.vscode-markdownlint"
]
}
}

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
11 changes: 11 additions & 0 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@
}
]
},
"codespaces": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.codespaces.ts"
}
]
},
"es": {
"localize": ["es"]
}
Expand All @@ -83,6 +91,9 @@
},
"es": {
"browserTarget": "youtube-dl-material:build:es"
},
"codespaces": {
"browserTarget": "youtube-dl-material:build:codespaces"
}
}
},
Expand Down
1 change: 1 addition & 0 deletions backend/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,7 @@ function loadConfigValues() {
}

function getOrigin() {
if (process.env.CODESPACES) return `https://${process.env.CODESPACE_NAME}-4200.${process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}`;
return url_domain.origin;
}

Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"scripts": {
"ng": "ng",
"start": "ng serve",
"codespaces": "ng serve --configuration=codespaces",
"build": "ng build --configuration production",
"prebuild": "node src/postbuild.mjs",
"heroku-postbuild": "npm install --prefix backend",
Expand Down
3 changes: 2 additions & 1 deletion src/app/posts.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ import {
import { isoLangs } from './dialogs/user-profile-dialog/locales_list';
import { Title } from '@angular/platform-browser';
import { MatDrawerMode } from '@angular/material/sidenav';
import { environment } from '../environments/environment';

@Injectable()
export class PostsService implements CanActivate {
Expand Down Expand Up @@ -176,7 +177,7 @@ export class PostsService implements CanActivate {

if (isDevMode()) {
this.debugMode = true;
this.path = 'http://localhost:17442/api/';
this.path = !environment.codespaces ? 'http://localhost:17442/api/' : `${window.location.origin.replace('4200', '17442')}/api/`;
}

this.http_params = `apiKey=${this.auth_token}`
Expand Down
9 changes: 9 additions & 0 deletions src/environments/environment.codespaces.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// The file contents for the current environment will overwrite these during build.
// The build system defaults to the dev environment which uses `environment.ts`, but if you do
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
// The list of which env maps to which file can be found in `.angular-cli.json`.

export const environment = {
production: false,
codespaces: true
};
3 changes: 2 additions & 1 deletion src/environments/environment.prod.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export const environment = {
production: true
production: true,
codespaces: false
};
3 changes: 2 additions & 1 deletion src/environments/environment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
// The list of which env maps to which file can be found in `.angular-cli.json`.

export const environment = {
production: true
production: false,
codespaces: false
};

0 comments on commit cdf82ab

Please sign in to comment.