├── .docker ├── Dockerfile_dev ├── Dockerfile_prod ├── nginx.conf ├── rm.optional.deps.js └── rm.optional.types.js ├── .dockerignore ├── .editorconfig ├── .github ├── CONTRIBUTING.md └── ISSUE_TEMPLATE.md ├── .gitignore ├── .snyk ├── .travis.yml ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── LICENSE ├── README.md ├── README.old.md ├── app.server.dev.js ├── app.server.prod.js ├── appveyor.yml ├── cypress.json ├── cypress ├── fixtures │ └── example.json ├── integration │ ├── about.component.e2e-spec.ts │ ├── app.component.e2e-spec.ts │ └── home.component.e2e-spec.ts ├── plugins │ ├── cy-ts-preprocessor.js │ └── index.js ├── support │ ├── commands.ts │ ├── commands_type.ts │ └── index.js └── tsconfig.json ├── docker-compose.dev.yml ├── docker-compose.prod.yml ├── gulpfile.ts ├── karma.conf.js ├── package-lock.json ├── package.json ├── src ├── client │ ├── app │ │ ├── about │ │ │ ├── about-routing.module.ts │ │ │ ├── about.component.css │ │ │ ├── about.component.html │ │ │ ├── about.component.spec.ts │ │ │ ├── about.component.ts │ │ │ └── about.module.ts │ │ ├── app-routing.module.ts │ │ ├── app.component.css │ │ ├── app.component.html │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ ├── core │ │ │ ├── core.module.ts │ │ │ ├── module-import-guard.ts │ │ │ ├── navbar │ │ │ │ ├── navbar.component.css │ │ │ │ ├── navbar.component.html │ │ │ │ └── navbar.component.ts │ │ │ └── toolbar │ │ │ │ ├── toolbar.component.css │ │ │ │ ├── toolbar.component.html │ │ │ │ └── toolbar.component.ts │ │ ├── home │ │ │ ├── home-routing.module.ts │ │ │ ├── home.component.css │ │ │ ├── home.component.html │ │ │ ├── home.component.spec.ts │ │ │ ├── home.component.ts │ │ │ └── home.module.ts │ │ ├── i18n.providers.ts │ │ ├── main-prod.ts │ │ ├── main.ts │ │ └── shared │ │ │ ├── config │ │ │ └── env.config.ts │ │ │ ├── name-list │ │ │ ├── name-list.service.spec.ts │ │ │ └── name-list.service.ts │ │ │ └── shared.module.ts │ ├── assets │ │ ├── favicon │ │ │ ├── favicon-DEV.ico │ │ │ └── favicon-PROD.ico │ │ └── svg │ │ │ └── more.svg │ ├── css │ │ └── main.css │ ├── index.html │ ├── ngsw-config.json │ ├── system-config.ts │ └── tsconfig.json └── server │ ├── data │ └── name.list.json │ ├── db │ └── redis.ts │ ├── index.ts │ ├── routes.ts │ ├── services │ ├── index.ts │ └── name.list.ts │ └── tsconfig.json ├── test-config.js ├── test-main.js ├── tools ├── .gitignore ├── README.md ├── config.ts ├── config │ ├── banner-256.txt │ ├── banner.txt │ ├── project.config.ts │ ├── project.tasks.json │ ├── seed.config.interfaces.ts │ ├── seed.config.ts │ ├── seed.tasks.json │ └── seed.tslint.json ├── debug.ts ├── env │ ├── base.ts │ ├── dev.ts │ ├── env-config.interface.ts │ └── prod.ts ├── manual_typings │ ├── project │ │ └── sample.package.d.ts │ └── seed │ │ ├── autoprefixer.d.ts │ │ ├── cssnano.d.ts │ │ ├── express-history-api-fallback.d.ts │ │ ├── istream.d.ts │ │ ├── karma.d.ts │ │ ├── merge-stream.d.ts │ │ ├── open.d.ts │ │ ├── slash.d.ts │ │ ├── systemjs-builder.d.ts │ │ └── tildify.d.ts ├── tasks │ ├── assets_task.ts │ ├── css_task.ts │ ├── project │ │ └── sample.task.ts │ ├── seed │ │ ├── build.assets.dev.ts │ │ ├── build.assets.prod.ts │ │ ├── build.bundles.app.rollup.aot.ts │ │ ├── build.bundles.ts │ │ ├── build.docs.ts │ │ ├── build.html_css.ts │ │ ├── build.index.dev.ts │ │ ├── build.index.prod.ts │ │ ├── build.js.dev.ts │ │ ├── build.js.prod.rollup.aot.ts │ │ ├── build.js.test.ts │ │ ├── build.server.prod.ts │ │ ├── build.server.ts │ │ ├── build.sme.prod.rollup.aot.ts │ │ ├── build.tools.ts │ │ ├── bundle.rxjs.ts │ │ ├── check.tools.ts │ │ ├── check.versions.ts │ │ ├── clean.all.ts │ │ ├── clean.coverage.ts │ │ ├── clean.dev.ts │ │ ├── clean.prod.ts │ │ ├── clean.sme.ts │ │ ├── clean.tools.ts │ │ ├── clear.files.ts │ │ ├── compile.ahead.prod.ts │ │ ├── copy.prod.rollup.aot.ts │ │ ├── copy.prod.ts │ │ ├── copy.server.assets.ts │ │ ├── css-lint.ts │ │ ├── e2e.ts │ │ ├── generate.manifest.ts │ │ ├── i18n.build.ts │ │ ├── i18n.merge.ts │ │ ├── karma.run.ts │ │ ├── karma.run.with_coverage.ts │ │ ├── karma.run.without_coverage.ts │ │ ├── karma.watch.ts │ │ ├── minify.bundles.ts │ │ ├── minify.index.ts │ │ ├── noop.ts │ │ ├── print.banner.ts │ │ ├── serve.coverage.ts │ │ ├── serve.coverage.watch.ts │ │ ├── serve.docs.ts │ │ ├── server.prod.ts │ │ ├── server.start.ts │ │ ├── start.deving.ts │ │ ├── sw.manifest.static.ts │ │ ├── test.watch.ts │ │ ├── transpile.bundles.rollup.aot.ts │ │ ├── tslint.ts │ │ ├── watch.dev.ts │ │ └── watch.test.ts │ ├── task.ts │ └── typescript_task.ts ├── utils.ts └── utils │ ├── project.utils.ts │ ├── project │ └── sample_util.ts │ ├── seed.utils.ts │ └── seed │ ├── build_optimizer.ts │ ├── clean.ts │ ├── code_change_tools.ts │ ├── karma.start.ts │ ├── server.ts │ ├── sme.ts │ ├── tasks_tools.ts │ ├── template_locals.ts │ ├── tsproject.ts │ └── watch.ts ├── tsconfig.json └── tslint.json /.docker/Dockerfile_dev: -------------------------------------------------------------------------------- 1 | FROM node:9.11 2 | 3 | WORKDIR /home/node/angular-seed 4 | 5 | # NB: Only copy files that are required by 'npm install' 6 | # The 'src' directory will be mounted as a shared volume by docker-compose (allowing for live-reload) 7 | COPY package.json . 8 | COPY package-lock.json . 9 | COPY gulpfile.ts . 10 | COPY tsconfig.json . 11 | COPY tslint.json . 12 | COPY tools ./tools/ 13 | COPY .docker/rm.optional.deps.js ./.docker/rm.optional.deps.js 14 | 15 | # before switching to non-root user, change ownership of home 16 | RUN chown -R node:node . 17 | USER node 18 | 19 | # NB: this is a workaround due to the fact that npm '--no-optional' flag doesn't work (open script below for more) 20 | RUN node .docker/rm.optional.deps.js 21 | 22 | RUN npm install --no-optional 23 | -------------------------------------------------------------------------------- /.docker/Dockerfile_prod: -------------------------------------------------------------------------------- 1 | FROM node:9.11 as builder 2 | 3 | WORKDIR /home/node/angular-seed 4 | 5 | # try to make good use of docker cache: don't copy our source files until after install 6 | # because there is no need to bust the "npm install" cache layer if only the app source files have changed 7 | COPY package.json package-lock.json gulpfile.ts tsconfig.json tslint.json ./ 8 | COPY tools ./tools/ 9 | COPY .docker/rm.optional.deps.js ./.docker/rm.optional.deps.js 10 | 11 | # before switching to non-root user, change ownership of home 12 | RUN chown -R node:node . 13 | USER node 14 | 15 | # NB: this is a workaround due to the fact that npm '--no-optional' flag doesn't work (open script below for more) 16 | RUN node .docker/rm.optional.deps.js 17 | 18 | RUN npm install --no-optional 19 | 20 | COPY src ./src/ 21 | COPY .docker/rm.optional.types.js ./.docker/rm.optional.types.js 22 | 23 | # temporarily switch back to root user to fix ownership of the newly added files 24 | USER root 25 | RUN chown -R node:node src .docker/rm.optional.types.js 26 | USER node 27 | 28 | RUN node .docker/rm.optional.types.js 29 | RUN npm run build.prod.rollup.aot 30 | 31 | FROM nginx:1.13 32 | COPY --from=builder /home/node/angular-seed/dist/prod /var/www/dist/prod 33 | COPY ./.docker/nginx.conf /etc/nginx/conf.d/angular-seed.template 34 | -------------------------------------------------------------------------------- /.docker/nginx.conf: -------------------------------------------------------------------------------- 1 | map $http_upgrade $connection_upgrade { 2 | default upgrade; 3 | '' close; 4 | } 5 | 6 | server { 7 | 8 | listen ${NGINX_PORT}; 9 | 10 | server_name ${NGINX_HOST}; 11 | # ssl on; 12 | # ssl_certificate angular-seed_server.crt; 13 | # ssl_certificate_key angular-seed_server.pem; 14 | # 15 | # ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; 16 | # ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 17 | # ssl_prefer_server_ciphers on; 18 | # ssl_session_cache shared:SSL:10m; 19 | # ssl_session_tickets off; # Requires nginx >= 1.5.9 20 | # add_header Strict-Transport-Security "max-age=63072000; preload"; 21 | # add_header X-Frame-Options DENY; 22 | # 23 | # location /api/microservice1 { 24 | # rewrite ^/api/microservice1/(.*)$ /$1 break; 25 | # proxy_pass https://microservice1/; 26 | # proxy_http_version 1.1; 27 | # proxy_set_header X-Forwarded-For $remote_addr; 28 | # } 29 | 30 | location / { 31 | root /var/www/dist/prod; 32 | try_files $uri /index.html; 33 | index index.html; 34 | gzip on; 35 | gzip_types text/css text/javascript application/x-javascript application/json; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /.docker/rm.optional.deps.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | /** 4 | * This is a workaround due to 'npm install --no-optional' not working as expected: 5 | * https://github.com/npm/npm/issues/17633 6 | * https://github.com/npm/npm/issues/20769 7 | * To be used when building docker images, since they don't need test libraries installed 8 | */ 9 | // package.json 10 | const npmPackage = JSON.parse(fs.readFileSync('package.json')); 11 | delete npmPackage['optionalDependencies']; 12 | fs.writeFileSync('package.json', JSON.stringify(npmPackage, null, 2)); 13 | -------------------------------------------------------------------------------- /.docker/rm.optional.types.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | /** 4 | * Fixme is there a better way to handdle optional types in tsconfig.json ? 5 | */ 6 | let tsConfigJson = 'src/client/tsconfig.json'; // only copied in the prod image 7 | if (fs.existsSync(tsConfigJson)) { 8 | const tsConfig = JSON.parse(fs.readFileSync(tsConfigJson)); 9 | tsConfig['compilerOptions']['types'] = tsConfig['compilerOptions']['types'].filter(t => t !== 'jasmine'); 10 | fs.writeFileSync(tsConfigJson, JSON.stringify(tsConfig, null, 2)); 11 | } 12 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | # compiled output 2 | dist 3 | tmp 4 | sme 5 | 6 | # dependencies 7 | node_modules 8 | bower_components 9 | 10 | # IDEs and editors 11 | .idea 12 | .vscode 13 | .project 14 | .classpath 15 | *.launch 16 | .settings/ 17 | .editorconfig 18 | 19 | # misc 20 | .sass-cache 21 | connect.lock 22 | coverage/* 23 | coverage_js/* 24 | libpeerconnection.log 25 | npm-debug.log 26 | testem.log 27 | typings 28 | 29 | # test 30 | *.spec.ts 31 | e2e/*.js 32 | e2e/*.map 33 | test-config.js 34 | test-main.js 35 | karma.conf.js 36 | 37 | #System Files 38 | .DS_Store 39 | Thumbs.db 40 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | insert_final_newline = false 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Submitting Pull Requests 2 | 3 | **Please follow these basic steps to simplify pull request reviews - if you don't you'll probably just be asked to anyway.** 4 | 5 | * Please rebase your branch against the current master 6 | * Run ```npm install``` to make sure your development dependencies are up-to-date 7 | * Please ensure that the test suite passes **and** that code is lint free before submitting a PR by running: 8 | * ```npm test``` 9 | * If you've added new functionality, **please** include tests which validate its behaviour 10 | * Make reference to possible [issues](https://github.com/mgechev/angular2-seed/issues) on PR comment 11 | 12 | ## Submitting bug reports 13 | 14 | * Please detail the affected browser(s) and operating system(s) 15 | * Please be sure to state which version of node **and** npm you're using 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 4 | 5 | **I'm submitting a ...** (check one with "x") 6 | ``` 7 | [ ] bug report => search github for a similar issue or PR before submitting 8 | [ ] feature request 9 | [ ] support request => Please do not submit support request here, instead see use [gitter](https://gitter.im/mgechev/angular2-seed) or [stackoverflow](https://stackoverflow.com/questions/tagged/angular2) 10 | ``` 11 | 12 | **Current behavior** 13 | 14 | 15 | **Expected behavior** 16 | 17 | 18 | **Minimal reproduction of the problem with instructions** 19 | 23 | 24 | **What is the motivation / use case for changing the behavior?** 25 | 26 | 27 | **Please tell us about your environment:** 28 | 29 | 30 | * **Angular Seed Version:** `aaaaf75` 31 | 32 | 33 | * **Node:** `node --version` = 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | coverage_js 16 | 17 | # Directory for source-map-explorer reports 18 | sme 19 | 20 | # ignore documentation 21 | documentation 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directory 30 | # Commenting this out is preferred by some people, see 31 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- 32 | node_modules 33 | typings 34 | ts-node 35 | 36 | # Users Environment Variables 37 | .lock-wscript 38 | .tsdrc 39 | .typingsrc 40 | 41 | #IDE configuration files 42 | .idea 43 | *.iml 44 | 45 | /tools/**/*.js 46 | dist 47 | dev 48 | docs 49 | lib 50 | test 51 | tmp 52 | cypress/videos 53 | 54 | gulpfile.js 55 | gulpfile.js.map 56 | 57 | # OS X trash files 58 | .DS_Store 59 | src/client/app/shared/config/env.config.js 60 | src/client/app/shared/config/env.config.js.map 61 | 62 | tools/env/env-config.interface.d.ts 63 | tools/env/env-config.interface.ngsummary.json 64 | tools/manual_typings/project/sample.package.ngsummary.json 65 | -------------------------------------------------------------------------------- /.snyk: -------------------------------------------------------------------------------- 1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. 2 | version: v1.13.5 3 | ignore: {} 4 | # patches apply the minimum changes required to fix a vulnerability 5 | patch: 6 | SNYK-JS-LODASH-450202: 7 | - pm2 > async > lodash: 8 | patched: '2019-07-04T03:12:54.438Z' 9 | - pm2 > @pm2/js-api > async > lodash: 10 | patched: '2019-07-04T03:12:54.438Z' 11 | - pm2 > pm2-deploy > async > lodash: 12 | patched: '2019-07-04T03:12:54.438Z' 13 | - pm2 > vizion > async > lodash: 14 | patched: '2019-07-04T03:12:54.438Z' 15 | - snyk > lodash: 16 | patched: '2019-07-26T07:47:48.980Z' 17 | - snyk > @snyk/dep-graph > lodash: 18 | patched: '2019-07-26T07:47:48.980Z' 19 | - snyk > inquirer > lodash: 20 | patched: '2019-07-26T07:47:48.980Z' 21 | - snyk > snyk-config > lodash: 22 | patched: '2019-07-26T07:47:48.980Z' 23 | - snyk > snyk-nodejs-lockfile-parser > lodash: 24 | patched: '2019-07-26T07:47:48.980Z' 25 | - snyk > snyk-nuget-plugin > lodash: 26 | patched: '2019-07-26T07:47:48.980Z' 27 | - snyk > @snyk/dep-graph > graphlib > lodash: 28 | patched: '2019-07-26T07:47:48.980Z' 29 | - snyk > snyk-go-plugin > graphlib > lodash: 30 | patched: '2019-07-26T07:47:48.980Z' 31 | - snyk > snyk-nodejs-lockfile-parser > graphlib > lodash: 32 | patched: '2019-07-26T07:47:48.980Z' 33 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: stable 3 | 4 | sudo: false 5 | 6 | install: true # yarn bug 7 | 8 | addons: 9 | firefox: latest 10 | chrome: stable 11 | 12 | os: 13 | - linux 14 | # - osx 15 | 16 | before_install: 17 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi 18 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew outdated xctool || brew upgrade xctool; fi 19 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CHROME_BIN=chromium-browser; fi # Karma CI 20 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew cask install google-chrome; fi # Karma CI 21 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0; fi 22 | 23 | before_script: 24 | - npm install 25 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sh -e /etc/init.d/xvfb start; fi 26 | 27 | 28 | after_failure: 29 | - cat /home/travis/build/vyakymenko/angular-seed-express/npm-debug.log 30 | 31 | branches: 32 | only: master 33 | 34 | notifications: 35 | email: true 36 | 37 | cache: 38 | directories: 39 | - "$HOME/.npm" 40 | 41 | script: 42 | # - npm run tests.all 43 | - npm run test 44 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Launch Chrome against localhost, with sourcemaps", 6 | "type": "chrome", 7 | "preLaunchTask": "start", 8 | "request": "launch", 9 | "url": "http://localhost:5555", 10 | "sourceMaps": true, 11 | "webRoot": "${workspaceRoot}/src/client", 12 | "sourceMapPathOverrides": { 13 | "app/*": "${webRoot}/app/*" 14 | } 15 | }, 16 | { 17 | "name": "Attach to Chrome, with sourcemaps", 18 | "type": "chrome", 19 | "request": "attach", 20 | "port": 9222, 21 | "sourceMaps": true, 22 | "webRoot": "${workspaceRoot}/src/client", 23 | "sourceMapPathOverrides": { 24 | "app/*": "${webRoot}/app/*" 25 | } 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "typescript.tsdk": "node_modules/typescript/lib", 4 | "search.exclude": { 5 | "**/coverage_js": true, 6 | "**/coverage": true, 7 | "**/dist": true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "npm", 4 | "isShellCommand": true, 5 | "showOutput": "always", 6 | "suppressTaskName": true, 7 | "tasks": [ 8 | { 9 | "taskName": "tslint", 10 | "args": [ "run", "lint" ], 11 | "problemMatcher": { 12 | "owner": "tslint", 13 | "fileLocation": [ 14 | "relative", 15 | "${workspaceRoot}" 16 | ], 17 | "severity": "warning", 18 | "pattern": { 19 | "regexp": "^(\\S.*)\\[(\\d+), (\\d+)\\]:\\s+(.*)$", 20 | "file": 1, 21 | "line": 2, 22 | "column": 3, 23 | "message": 4 24 | } 25 | } 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Minko Gechev 4 | Copyright (c) 2016 Valentyn Yakymenko 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # No longer under active maintenance 2 | 3 | For starting a new project consider [Angular Express](https://github.com/vyakymenko/angular-express). -------------------------------------------------------------------------------- /app.server.dev.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ng2 Server Runner `Development`. 3 | */ 4 | require('./dist/server/dev').init(9001, 'dev'); 5 | -------------------------------------------------------------------------------- /app.server.prod.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ng2 Server Runner `Production`. 3 | */ 4 | require('./dist/server/prod').init(9000); 5 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | # AppVeyor file 2 | # http://www.appveyor.com/docs/appveyor-yml 3 | # This file: cloned from https://github.com/gruntjs/grunt/blob/master/appveyor.yml 4 | 5 | # Build version format 6 | version: "{build}" 7 | 8 | # Test against this version of Node.js 9 | environment: 10 | nodejs_version: "Stable" 11 | 12 | build: off 13 | 14 | clone_depth: 10 15 | 16 | # Fix line endings on Windows 17 | init: 18 | - git config --global core.autocrlf true 19 | 20 | install: 21 | - ps: Install-Product node $env:nodejs_version 22 | - ps: $env:path = $env:appdata + "\npm;" + $env:path 23 | - npm install && npm install karma-ie-launcher 24 | 25 | test_script: 26 | # Output useful info for debugging. 27 | - node --version && npm --version 28 | # We test multiple Windows shells because of prior stdout buffering issues 29 | # filed against Grunt. https://github.com/joyent/node/issues/3584 30 | - ps: "npm --version # PowerShell" # Pass comment to PS for easier debugging 31 | # - npm run tests.all 32 | - npm run test 33 | 34 | cache: 35 | - '%APPDATA%\npm-cache' 36 | -------------------------------------------------------------------------------- /cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "baseUrl": "http://localhost:9000", 3 | "video": false 4 | } 5 | -------------------------------------------------------------------------------- /cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } -------------------------------------------------------------------------------- /cypress/integration/about.component.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | describe('About', () => { 2 | 3 | it('should have correct feature heading', () => { 4 | cy.visit('/about'); 5 | cy.get('sd-about h2').should('have.text', 'Features'); 6 | }); 7 | 8 | it('should use our custom cypress command', () => { 9 | cy.visitAbout(); 10 | cy.get('sd-about h2').should('have.text', 'Features'); 11 | }); 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /cypress/integration/app.component.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | describe('App', () => { 2 | 3 | beforeEach(() => { 4 | cy.visit('/'); 5 | }); 6 | 7 | it('should have a title', () => { 8 | cy.title().should('be.equal', 'Welcome to angular-seed!'); 9 | }); 10 | 11 | it('should have