feat: migrate from github

This commit is contained in:
Naomi Carrigan 2024-05-12 01:25:15 -07:00
commit 84061b75e7
No known key found for this signature in database
GPG Key ID: 7019A402E94A9808
39 changed files with 11136 additions and 0 deletions

16
.editorconfig Normal file
View File

@ -0,0 +1,16 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
[*.md]
max_line_length = off
trim_trailing_whitespace = false

3
.eslintrc.json Normal file
View File

@ -0,0 +1,3 @@
{
"extends": "@nhcarrigan/eslint-config-angular"
}

42
.gitignore vendored Normal file
View File

@ -0,0 +1,42 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# Compiled output
/dist
/tmp
/out-tsc
/bazel-out
# Node
/node_modules
npm-debug.log
yarn-error.log
# IDEs and editors
.idea/
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# Miscellaneous
/.angular/cache
.sass-cache/
/connect.lock
/coverage
/libpeerconnection.log
testem.log
/typings
# System files
.DS_Store
Thumbs.db

1
.prettierrc.json Normal file
View File

@ -0,0 +1 @@
"@nhcarrigan/prettier-config"

3
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,3 @@
# Code of Conduct
Our Code of Conduct can be found here: https://docs.nhcarrigan.com/#/coc

3
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,3 @@
# Contributing
Our contributing guidelines can be found here: https://docs.nhcarrigan.com/#/contributing

5
LICENSE.md Normal file
View File

@ -0,0 +1,5 @@
# License
This software is licensed under our [global software license](https://docs.nhcarrigan.com/#/license).
Copyright held by Naomi Carrigan.

27
README.md Normal file
View File

@ -0,0 +1,27 @@
# Nhcarrigan
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.2.
## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.

3
SECURITY.md Normal file
View File

@ -0,0 +1,3 @@
# Security Policy
Our security policy can be found here: https://docs.nhcarrigan.com/#/security

3
TERMS.md Normal file
View File

@ -0,0 +1,3 @@
# Terms of Service
Our Terms of Service can be found here: https://docs.nhcarrigan.com/#/terms

100
angular.json Normal file
View File

@ -0,0 +1,100 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"nhcarrigan": {
"projectType": "application",
"schematics": {},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser-esbuild",
"options": {
"outputPath": "dist/nhcarrigan",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": ["zone.js"],
"tsConfig": "tsconfig.app.json",
"assets": ["src/favicon.ico", "src/assets"],
"styles": ["src/styles.css"],
"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": "nhcarrigan:build:production"
},
"development": {
"buildTarget": "nhcarrigan:build:development"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"buildTarget": "nhcarrigan:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": ["src/favicon.ico", "src/assets"],
"styles": ["src/styles.css"],
"scripts": []
}
},
"deploy": {
"builder": "angular-cli-ghpages:deploy",
"options": {
"baseHref": "https://nhcarrigan.com",
"cname": "nhcarrigan.com",
"name": "Naomi Carrigan",
"email": "nhcarrigan@gmail.com"
}
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
}
}
}
}
},
"cli": {
"analytics": "7b13e4ca-046c-4eec-a791-b4c316f294e5"
}
}

47
karma.conf.js Normal file
View File

@ -0,0 +1,47 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: "",
frameworks: ["jasmine", "@angular-devkit/build-angular"],
plugins: [
require("karma-jasmine"),
require("karma-chrome-launcher"),
require("karma-jasmine-html-reporter"),
require("karma-coverage"),
require("@angular-devkit/build-angular/plugins/karma"),
],
client: {
jasmine: {
// you can add configuration options for Jasmine here
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
// for example, you can disable the random execution with `random: false`
// or set a specific seed with `seed: 4321`
},
clearContext: false, // leave Jasmine Spec Runner output visible in browser
},
jasmineHtmlReporter: {
suppressAll: true, // removes the duplicated traces
},
coverageReporter: {
dir: require("path").join(__dirname, "./coverage/profile"),
subdir: ".",
reporters: [{ type: "html" }, { type: "text-summary" }],
},
reporters: ["progress", "kjhtml"],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ["Chrome", "ChromeHeadless", "ChromeHeadlessCI"],
customLaunchers: {
ChromeHeadlessCI: {
base: "ChromeHeadless",
flags: ["--no-sandbox"],
},
},
singleRun: false,
restartOnFileChange: true,
});
};

50
package.json Normal file
View File

@ -0,0 +1,50 @@
{
"name": "nhcarrigan",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"lint": "ng lint && prettier src --check",
"test": "ng test --no-watch --no-progress --browsers=ChromeHeadlessCI",
"deploy": "ng deploy"
},
"private": true,
"dependencies": {
"@angular/animations": "17.3.5",
"@angular/common": "17.3.5",
"@angular/compiler": "17.3.5",
"@angular/core": "17.3.5",
"@angular/forms": "17.3.5",
"@angular/platform-browser": "17.3.5",
"@angular/platform-browser-dynamic": "17.3.5",
"@angular/router": "17.3.5",
"@fortawesome/angular-fontawesome": "0.14.1",
"@fortawesome/fontawesome-svg-core": "6.5.2",
"@fortawesome/free-brands-svg-icons": "6.5.2",
"@fortawesome/free-regular-svg-icons": "6.5.2",
"@fortawesome/free-solid-svg-icons": "6.5.2",
"rxjs": "7.8.1",
"tslib": "2.6.2",
"zone.js": "0.14.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "17.3.7",
"@angular/cli": "17.3.7",
"@angular/compiler-cli": "17.3.5",
"@nhcarrigan/eslint-config-angular": "1.0.1",
"@nhcarrigan/prettier-config": "3.2.0",
"@types/jasmine": "5.1.4",
"angular-cli-ghpages": "1.0.7",
"eslint": "8.57.0",
"jasmine-core": "5.1.2",
"karma": "6.4.3",
"karma-chrome-launcher": "3.2.0",
"karma-coverage": "2.2.1",
"karma-jasmine": "5.1.0",
"karma-jasmine-html-reporter": "2.1.0",
"prettier": "3.2.5",
"typescript": "5.4.5"
}
}

9609
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

10
src/app/app.component.css Normal file
View File

@ -0,0 +1,10 @@
.glow {
position: fixed;
z-index: 1;
pointer-events: none;
height: 250px;
width: 250px;
background: radial-gradient(circle, #00eeffaa 0%, #00eeff00 50%);
background-repeat: no-repeat;
background-position: center;
}

View File

@ -0,0 +1,7 @@
<div class="content"><router-outlet></router-outlet></div>
<div
class="glow"
[style.left.px]="glowX"
[style.top.px]="glowY"
[style.display]="display"
></div>

View File

@ -0,0 +1,27 @@
import { ComponentFixture, TestBed } from "@angular/core/testing";
import { AppComponent } from "./app.component";
describe("AppComponent", () => {
let component: AppComponent;
let fixture: ComponentFixture<AppComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [AppComponent]
}).compileComponents();
fixture = TestBed.createComponent(AppComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it("should create the app", () => {
expect(component).toBeTruthy();
});
it(`should have the 'nhcarrigan' title`, () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
expect(app.title).toEqual("nhcarrigan");
});
});

40
src/app/app.component.ts Normal file
View File

@ -0,0 +1,40 @@
import { CommonModule } from "@angular/common";
import { Component, HostListener } from "@angular/core";
import { RouterOutlet } from "@angular/router";
/**
*
*/
@Component({
selector: "app-root",
standalone: true,
imports: [CommonModule, RouterOutlet],
templateUrl: "./app.component.html",
styleUrl: "./app.component.css"
})
export class AppComponent {
title = "nhcarrigan";
glowX = 0;
glowY = 0;
display = "none";
/**
* Moves the sun when the mouse moves.
*
* @param {MouseEvent} e The mouse event.
*/
@HostListener("document:mousemove", ["$event"])
onMouseMove(e: MouseEvent) {
this.display = "block";
this.glowX = e.clientX - 125;
this.glowY = e.clientY - 125;
}
/**
* Hides the sun when the mouse leaves.
*/
@HostListener("document:mouseout", ["$event"])
onMouseOut() {
this.display = "none";
}
}

8
src/app/app.config.ts Normal file
View File

@ -0,0 +1,8 @@
import { ApplicationConfig } from "@angular/core";
import { provideRouter } from "@angular/router";
import { routes } from "./app.routes";
export const appConfig: ApplicationConfig = {
providers: [provideRouter(routes)]
};

5
src/app/app.routes.ts Normal file
View File

@ -0,0 +1,5 @@
import { Routes } from "@angular/router";
import { HomeComponent } from "./home/home.component";
export const routes: Routes = [{ path: "", component: HomeComponent }];

View File

@ -0,0 +1,205 @@
@font-face {
font-family: "vt323";
src: url("../../assets/fonts/vt323.woff");
font-display: swap;
}
@font-face {
font-family: "odudo";
src: url("../../assets/fonts/odudo.otf");
font-display: swap;
}
hr {
border: 2px solid var(--text);
margin: 1rem auto;
max-width: 1125px;
}
h2 {
font-size: 1.5rem;
}
.smaller {
font-size: 1rem;
max-width: 1125px;
margin: auto;
}
.logo {
height: 50px;
}
.logo-container {
margin: auto;
max-width: 1125px;
display: flex;
justify-content: space-around;
flex-wrap: wrap;
}
.socials {
font-size: 2rem;
margin-bottom: 1rem;
}
.socials a {
margin: auto 10px;
}
.legend {
display: flex;
max-width: 1125px;
margin: auto;
justify-content: space-evenly;
}
.legend p {
font-size: 1rem;
}
.legend .current {
color: #8cff98;
font-family: "odudo";
}
.legend .former {
color: #b48cff;
font-family: "vt323";
}
.legend .volunteer {
padding: 2px;
border: 2px dashed var(--text);
}
.timeline {
position: relative;
max-width: 1200px;
margin: auto;
}
.timeline::after {
content: "";
position: absolute;
width: 6px;
background-color: var(--text);
top: 0;
bottom: 0;
left: 50%;
margin-left: -3px;
}
.container {
padding: 10px 40px;
position: relative;
width: 50%;
background-color: transparent;
color: var(--bg);
}
.info {
color: var(--text);
border-radius: 1rem;
border: 2px solid var(--text);
overflow: hidden;
}
.container::after {
content: "";
position: absolute;
width: 25px;
height: 25px;
right: -12.5px;
background-color: var(--text);
border-radius: 50%;
top: 30px;
z-index: 1;
}
.hypothetical .info {
border-color: white;
border-style: dotted;
}
.hypothetical .info,
.hypothetical a,
.hypothetical a:visited {
color: white;
}
.hypothetical::after {
background-color: white;
}
.current .info {
border-color: #8cff98;
font-family: "odudo";
}
.current .info,
.current a,
.current a:visited {
color: #8cff98;
}
.current::after {
background-color: #8cff98;
}
.former .info {
border-color: #b48cff;
font-family: "vt323";
}
.former .info,
.former a,
.former a:visited {
color: #b48cff;
}
.former::after {
background-color: #b48cff;
}
.volunteer .info {
border-style: dashed;
}
.company {
font-size: 1rem;
}
.left {
left: 0;
}
.right {
left: 50%;
}
.right::after {
left: -12.5px;
}
.date {
font-size: 1rem;
font-style: italic;
}
@media screen and (max-width: 600px) {
.container {
width: 100%;
padding-left: 70px;
padding-right: 25px;
}
.right {
left: 0;
}
.left::after,
.right::after {
left: 17.5px;
}
.timeline::after {
left: 31px;
}
}

View File

@ -0,0 +1,335 @@
<h1>Naomi Carrigan</h1>
<p>Software Engineer | Community Manager</p>
<p class="smaller">
Creative professional with a focus on developing unique Discord bots and
fostering engaged online communities. Eager to leverage technical and
interpersonal skills to drive impactful, user-centric projects. Seeking
clients where my expertise in designing user-centric solutions and managing
vibrant digital spaces can drive engagement and growth.
</p>
<hr />
<h2>Contact</h2>
<div class="socials">
<a
href="https://chat.naomi.lgbt"
target="_blank"
rel="noopener noreferrer"
aria-label="Discord"
><fa-icon alt="Discord Logo" [icon]="discord"></fa-icon
></a>
<a
href="https://linkedin.com/in/naomi-lgbt"
target="_blank"
rel="noopener noreferrer"
aria-label="LinkedIn"
><fa-icon alt="LinkedIn Logo" [icon]="linkedIn"></fa-icon
></a>
<a
href="https://reddit.com/r/nhcarrigan"
target="_blank"
rel="noopener noreferrer"
aria-label="Reddit"
><fa-icon alt="Reddit Logo" [icon]="reddit"></fa-icon
></a>
<a
href="https://blog.nhcarrigan.com"
target="_blank"
rel="noopener noreferrer"
aria-label="Hashnode Blog"
><fa-icon alt="Hashnode Logo" [icon]="blog"></fa-icon
></a>
<a
href="https://resume.nhcarrigan.com"
target="_blank"
rel="noopener noreferrer"
aria-label="Peerlist Resume"
><fa-icon alt="Peerlist Logo" [icon]="peerlist"></fa-icon
></a>
<a
href="https://www.polywork.com/nhcarrigan"
target="_blank"
rel="noopener noreferrer"
aria-label="Polywork"
><fa-icon alt="Polywork Logo" [icon]="polywork"></fa-icon
></a>
</div>
<hr />
<h2>Featured Clients</h2>
<div class="logo-container">
<a href="https://freecodecamp.org" target="_blank" rel="noopener noreferrer">
<img
class="logo"
src="../../assets/img/fcc_primary_large.svg"
alt="freeCodeCamp"
height="50px"
/>
</a>
<a href="https://rythm.fm" target="_blank" rel="noopener noreferrer">
<img
class="logo"
src="../../assets/img/rythm.svg"
alt="Rythm"
height="50px"
/>
</a>
<a href="https://deepgram.com" target="_blank" rel="noopener noreferrer">
<img
class="logo"
src="../../assets/img/deepgram.svg"
alt="Deepgram AI"
height="50px"
/>
</a>
</div>
<hr />
<h2>All Work</h2>
<div class="legend">
<p class="current">Current</p>
<p class="former">Former</p>
<p class="volunteer">Volunteer</p>
</div>
<div class="timeline">
<div class="container left hypothetical">
<div class="info">
<h2>
<a
href="https://docs.nhcarrigan.com/#/hire"
target="_blank"
rel="noopener noreferrer"
>Consultant</a
>
</h2>
<p class="date">Today</p>
<p class="company">Your Company!</p>
</div>
</div>
<div class="container right current volunteer">
<div class="info">
<h2>
<a
href="https://art4palestine.org/"
target="_blank"
rel="noopener noreferrer"
>Development Lead</a
>
</h2>
<p class="date">November 2023</p>
<p class="company">Art 4 Palestine</p>
</div>
</div>
<div class="container left current volunteer">
<div class="info">
<h2>
<a
href="https://discord.gg/kYpjgEB"
target="_blank"
rel="noopener noreferrer"
>Community Moderator</a
>
</h2>
<p class="date">September 2023</p>
<p class="company">AngelRose</p>
</div>
</div>
<div class="container right current">
<div class="info">
<h2>
<a href="https://deepgram.com" target="_blank" rel="noopener noreferrer"
>Community Bot Engineer</a
>
</h2>
<p class="date">July 2023</p>
<p class="company">Deepgram</p>
</div>
</div>
<div class="container left former">
<div class="info">
<h2>
<a
href="https://linktr.ee/bigbadbeaver"
target="_blank"
rel="noopener noreferrer"
>Twitch Integration Engineer</a
>
</h2>
<p class="date">October 2022</p>
<p class="company">BigBadBeaver Productions</p>
</div>
</div>
<div class="container right former">
<div class="info">
<h2>
<a
href="https://www.semasoftware.com/"
target="_blank"
rel="noopener noreferrer"
>Community Manager and Open-Source Engineer</a
>
</h2>
<p class="date">May 2023</p>
<p class="company">Sema Software</p>
</div>
</div>
<div class="container left former">
<div class="info">
<h2>
<a
href="https://discord.gg/kYpjgEB"
target="_blank"
rel="noopener noreferrer"
>Community Manager</a
>
</h2>
<p class="date">May 2023</p>
<p class="company">4C</p>
</div>
</div>
<div class="container right current">
<div class="info">
<h2>
<a href="https://rythm.fm/" target="_blank" rel="noopener noreferrer"
>Senior Integrations Engineer</a
>
</h2>
<p class="date">April 2022</p>
<p class="company">Rythm</p>
</div>
</div>
<div class="container left former">
<div class="info">
<h2>
<a
href="https://tweetshift.com/"
target="_blank"
rel="noopener noreferrer"
>Community Manager</a
>
</h2>
<p class="date">January 2022</p>
<p class="company">TweetShift</p>
</div>
</div>
<div class="container right current">
<div class="info">
<h2>
<a
href="https://streamcord.io/"
target="_blank"
rel="noopener noreferrer"
>Community Manager and Infrastructure Engineer</a
>
</h2>
<p class="date">August 2021</p>
<p class="company">Streamcord</p>
</div>
</div>
<div class="container left former volunteer">
<div class="info">
<h2>
<a
href="https://play.battlesnake.com/"
target="_blank"
rel="noopener noreferrer"
>Community Moderator</a
>
</h2>
<p class="date">June 2021</p>
<p class="company">Battlesnake</p>
</div>
</div>
<div class="container right current volunteer">
<div class="info">
<h2>
<a
href="https://discord.gg/infinite"
target="_blank"
rel="noopener noreferrer"
>Discord Administrator and Platform Engineering Manager</a
>
</h2>
<p class="date">June 2021</p>
<p class="company">Caylus Crew</p>
</div>
</div>
<div class="container left former volunteer">
<div class="info">
<h2>
<a
href="http://discord.gg/U3jQVYNbJt"
target="_blank"
rel="noopener noreferrer"
>Integrations Engineer</a
>
</h2>
<p class="date">April 2021</p>
<p class="company">Xcentric Collective</p>
</div>
</div>
<div class="container right current volunteer">
<div class="info">
<h2>
<a
href="https://hacktoberfest.com"
target="_blank"
rel="noopener noreferrer"
>Hacktoberfest Community Moderator</a
>
</h2>
<p class="date">April 2021</p>
<p class="company">DigitalOcean</p>
</div>
</div>
<div class="container left former volunteer">
<div class="info">
<h2>
<a
href="https://www.eddiehub.org/"
target="_blank"
rel="noopener noreferrer"
>Discord Administrator</a
>
</h2>
<p class="date">January 2021</p>
<p class="company">EddieHub</p>
</div>
</div>
<div class="container right current volunteer">
<div class="info">
<h2>
<a
href="https://discord.gg/StwJYeq"
target="_blank"
rel="noopener noreferrer"
>Discord Administrator and Lead Integrations Engineer</a
>
</h2>
<p class="date">December 2020</p>
<p class="company">Commit Your Code</p>
</div>
</div>
<div class="container left current volunteer">
<div class="info">
<h2>
<a
href="https://freecodecamp.org"
target="_blank"
rel="noopener noreferrer"
>Educational Developer and Community Manager</a
>
</h2>
<p class="date">December 2020</p>
<p class="company">freeCodeCamp</p>
</div>
</div>
<div class="container right hypothetical">
<div class="info">
<h2>
<a href="https://naomi.lgbt" target="_blank" rel="noopener noreferrer"
>Began Development Journey</a
>
</h2>
<p class="date">April 2020</p>
<p class="company">nhcarrigan</p>
</div>
</div>
</div>

View File

@ -0,0 +1,29 @@
import { ComponentFixture, TestBed } from "@angular/core/testing";
import { HomeComponent } from "./home.component";
describe("HomeComponent", () => {
let component: HomeComponent;
let fixture: ComponentFixture<HomeComponent>;
let compiled: HTMLElement;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [HomeComponent]
}).compileComponents();
fixture = TestBed.createComponent(HomeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
compiled = fixture.nativeElement;
});
it("should create", () => {
expect(component).toBeTruthy();
});
it("should render correctly", () => {
const header = compiled.querySelector("h1");
expect(header?.innerText.trim()).toBe("Naomi Carrigan");
});
});

View File

@ -0,0 +1,226 @@
import { CommonModule } from "@angular/common";
import { Component } from "@angular/core";
import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
import {
faDiscord,
faReddit,
faLinkedinIn,
faHashnode,
IconDefinition
} from "@fortawesome/free-brands-svg-icons";
/**
*
*/
@Component({
selector: "app-home",
standalone: true,
imports: [CommonModule, FontAwesomeModule],
templateUrl: "./home.component.html",
styleUrl: "./home.component.css"
})
export class HomeComponent {
discord = faDiscord;
reddit = faReddit;
linkedIn = faLinkedinIn;
blog = faHashnode;
peerlist: IconDefinition = {
prefix: "xxx",
iconName: "yyy",
icon: [
512,
512,
[],
"U+E002",
`M 214.00,0.14
C 214.00,0.14 243.00,0.14 243.00,0.14
243.00,0.14 291.00,0.14 291.00,0.14
291.00,0.14 301.00,1.00 301.00,1.00
301.00,1.00 311.00,1.00 311.00,1.00
311.00,1.00 328.00,2.83 328.00,2.83
375.51,7.58 421.85,17.89 457.91,51.42
483.50,75.23 497.13,112.43 503.80,146.00
507.93,166.77 510.12,187.89 511.04,209.00
511.04,209.00 512.00,220.00 512.00,220.00
512.59,270.71 513.41,322.24 502.42,372.00
495.29,404.31 483.17,434.75 459.72,458.83
437.47,481.67 407.37,493.82 377.00,501.37
326.73,513.88 274.38,512.08 223.00,512.00
223.00,512.00 208.00,511.00 208.00,511.00
208.00,511.00 204.00,511.00 204.00,511.00
204.00,511.00 166.00,507.13 166.00,507.13
125.75,501.54 81.42,488.74 52.28,458.83
18.32,423.96 7.84,375.75 2.84,329.00
2.84,329.00 0.91,302.00 0.91,302.00
0.91,302.00 0.00,290.00 0.00,290.00
0.00,290.00 0.00,253.00 0.00,253.00
0.00,253.00 0.00,223.00 0.00,223.00
0.00,223.00 1.00,205.00 1.00,205.00
1.00,205.00 6.59,155.00 6.59,155.00
11.95,123.04 22.32,89.63 42.81,64.00
74.31,24.60 121.91,10.61 170.00,4.28
170.00,4.28 201.00,1.09 201.00,1.09
201.00,1.09 214.00,0.14 214.00,0.14 Z
M 234.00,18.14
C 227.52,19.22 223.42,18.99 217.00,19.00
217.00,19.00 205.00,20.04 205.00,20.04
205.00,20.04 197.00,20.04 197.00,20.04
149.57,24.69 92.98,33.42 60.44,72.00
34.70,102.51 25.98,143.28 21.84,182.00
21.84,182.00 19.00,224.00 19.00,224.00
19.00,224.00 18.00,241.00 18.00,241.00
18.00,241.00 18.00,273.00 18.00,273.00
18.00,273.00 18.96,283.00 18.96,283.00
18.96,283.00 18.96,297.00 18.96,297.00
18.96,297.00 19.91,307.00 19.91,307.00
19.91,307.00 24.92,353.00 24.92,353.00
30.18,384.75 40.74,418.98 63.09,443.00
93.04,475.19 139.93,485.66 182.00,490.16
182.00,490.16 205.00,492.09 205.00,492.09
205.00,492.09 215.00,493.04 215.00,493.04
215.00,493.04 229.00,493.04 229.00,493.04
229.00,493.04 241.00,494.00 241.00,494.00
241.00,494.00 271.00,494.00 271.00,494.00
271.00,494.00 283.00,493.04 283.00,493.04
283.00,493.04 295.00,493.04 295.00,493.04
295.00,493.04 307.00,492.09 307.00,492.09
327.86,490.66 348.55,488.59 369.00,483.88
398.65,477.06 426.42,466.49 447.96,444.00
469.93,421.06 480.00,389.49 486.00,359.00
490.02,338.59 492.97,308.77 493.00,288.00
493.00,288.00 494.00,271.00 494.00,271.00
494.00,271.00 494.00,241.00 494.00,241.00
494.00,241.00 493.04,229.00 493.04,229.00
493.04,229.00 493.04,217.00 493.04,217.00
493.04,217.00 492.09,205.00 492.09,205.00
490.82,186.52 489.06,168.22 485.40,150.00
478.89,117.63 467.20,84.85 442.00,62.17
412.18,35.33 368.80,25.99 330.00,21.84
330.00,21.84 307.00,19.91 307.00,19.91
307.00,19.91 295.00,18.96 295.00,18.96
295.00,18.96 283.00,18.96 283.00,18.96
283.00,18.96 271.00,18.14 271.00,18.14
271.00,18.14 234.00,18.14 234.00,18.14 Z
M 156.00,101.00
C 156.00,101.00 231.00,101.00 231.00,101.00
231.00,101.00 270.00,101.00 270.00,101.00
304.65,101.05 338.60,117.93 361.91,143.00
370.38,152.10 378.11,164.62 383.14,176.00
398.86,211.57 395.05,254.17 374.58,287.00
365.39,301.73 358.75,306.40 347.28,318.17
331.52,334.35 322.21,343.76 301.00,353.14
279.20,362.77 264.27,364.00 241.00,364.00
241.00,364.00 241.00,411.00 241.00,411.00
241.00,411.00 223.00,411.00 223.00,411.00
223.00,411.00 223.00,429.00 223.00,429.00
223.00,429.00 138.00,429.00 138.00,429.00
138.00,429.00 138.00,119.00 138.00,119.00
138.00,119.00 156.00,119.00 156.00,119.00
156.00,119.00 156.00,101.00 156.00,101.00 Z
M 223.00,329.00
C 263.91,329.00 301.86,332.36 336.00,304.54
349.16,293.81 359.70,280.51 366.69,265.00
374.05,248.67 375.20,234.53 375.00,217.00
374.56,179.46 346.33,143.35 313.00,128.31
291.09,118.42 270.44,118.00 247.00,118.00
247.00,118.00 207.00,118.00 207.00,118.00
207.00,118.00 182.00,118.00 182.00,118.00
180.01,118.00 176.19,117.77 174.60,119.02
172.62,120.59 173.00,124.70 173.00,127.00
173.00,127.00 173.00,332.00 173.00,332.00
173.00,332.00 173.00,385.00 173.00,385.00
173.02,393.64 173.36,393.98 182.00,394.00
182.00,394.00 223.00,394.00 223.00,394.00
223.00,394.00 223.00,329.00 223.00,329.00 Z
M 223.00,166.00
C 223.00,166.00 266.00,166.00 266.00,166.00
306.49,166.06 336.49,205.40 321.39,244.00
319.11,249.82 315.95,255.30 311.82,260.00
300.28,273.13 284.59,280.92 267.00,281.00
267.00,281.00 253.00,281.00 253.00,281.00
253.00,281.00 223.00,281.00 223.00,281.00
223.00,281.00 223.00,166.00 223.00,166.00 Z
M 241.00,202.00
C 241.00,202.00 241.00,255.00 241.00,255.00
241.02,263.64 241.36,263.98 250.00,264.00
258.53,264.02 277.96,264.47 284.58,259.01
289.25,255.16 289.06,244.57 289.00,239.00
288.79,221.67 275.23,207.53 259.00,203.16
253.08,201.56 247.07,202.00 241.00,202.00 Z`
]
} as never;
polywork: IconDefinition = {
prefix: "xxx",
iconName: "yyy",
icon: [
225, // SVG view box width
225, // SVG view box height
[],
"U+E002", // probably not important for SVG and JS approach
`M 153.00,155.00
C 153.00,177.49 155.16,201.18 134.00,215.78
117.90,226.88 101.50,224.00 83.00,224.00
83.00,224.00 57.00,224.00 57.00,224.00
36.75,224.00 21.13,223.75 8.22,205.00
5.78,201.46 3.67,197.12 2.44,193.00
0.64,186.98 0.01,182.25 0.00,176.00
0.00,176.00 0.00,49.00 0.00,49.00
0.05,19.44 19.43,0.05 49.00,0.00
49.00,0.00 176.00,0.00 176.00,0.00
203.99,0.04 223.96,18.67 224.00,47.00
224.00,47.00 224.00,89.00 224.00,89.00
224.00,112.86 226.74,132.44 204.00,147.95
200.27,150.49 196.33,152.29 192.00,153.56
182.70,156.30 170.69,156.05 161.00,156.00
157.55,155.98 156.36,155.95 153.00,155.00 Z
M 70.00,11.00
C 52.54,11.00 34.21,8.10 21.09,22.01
17.77,25.54 15.22,29.35 13.77,34.00
11.01,42.87 12.00,61.03 12.00,71.00
12.00,71.00 70.00,71.00 70.00,71.00
70.00,71.00 70.00,11.00 70.00,11.00 Z
M 141.00,71.00
C 141.00,71.00 141.00,19.00 141.00,19.00
140.94,10.87 139.73,11.02 132.00,11.00
132.00,11.00 82.94,11.00 82.94,11.00
82.94,11.00 82.94,65.00 82.94,65.00
82.65,71.56 84.51,70.99 91.00,71.00
91.00,71.00 141.00,71.00 141.00,71.00 Z
M 212.00,71.00
C 212.00,71.00 212.00,46.00 212.00,46.00
211.99,40.91 212.06,38.94 210.30,34.00
200.99,7.84 175.95,12.00 154.00,12.00
154.00,12.00 154.00,71.00 154.00,71.00
154.00,71.00 212.00,71.00 212.00,71.00 Z
M 70.00,84.00
C 70.00,84.00 11.00,84.00 11.00,84.00
11.00,84.00 11.00,136.00 11.00,136.00
11.02,144.64 11.36,144.98 20.00,145.00
20.00,145.00 70.00,145.00 70.00,145.00
70.00,145.00 70.00,84.00 70.00,84.00 Z
M 141.00,84.00
C 141.00,84.00 83.00,84.00 83.00,84.00
83.00,84.00 83.00,144.00 83.00,144.00
83.00,144.00 141.00,144.00 141.00,144.00
141.00,144.00 141.00,84.00 141.00,84.00 Z
M 212.00,84.00
C 212.00,84.00 154.00,84.00 154.00,84.00
154.00,84.00 154.00,145.00 154.00,145.00
176.30,145.00 201.22,148.17 210.45,122.00
212.02,117.55 211.99,114.59 212.00,110.00
212.00,110.00 212.00,84.00 212.00,84.00 Z
M 70.00,157.00
C 70.00,157.00 11.00,157.00 11.00,157.00
11.00,177.94 8.44,201.56 33.00,210.30
37.94,212.06 39.91,211.99 45.00,212.00
45.00,212.00 70.00,212.00 70.00,212.00
70.00,212.00 70.00,157.00 70.00,157.00 Z
M 141.00,158.00
C 141.00,158.00 83.00,158.00 83.00,158.00
83.00,158.00 83.00,213.00 83.00,213.00
83.00,213.00 106.00,213.00 106.00,213.00
110.59,212.99 113.55,213.02 118.00,211.45
143.85,202.34 141.00,180.01 141.00,158.00 Z`
]
} as never;
}

0
src/assets/.gitkeep Normal file
View File

BIN
src/assets/fonts/odudo.otf Normal file

Binary file not shown.

BIN
src/assets/fonts/vt323.woff Normal file

Binary file not shown.

View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg" width="45.6871mm" height="8.8199mm" viewBox="0 0 259 50">
<path id="Selection" fill="#ff94fd" stroke="black" stroke-width="1" stroke-opacity="0" d="M 0.00,0.00
C 6.77,0.00 19.27,-1.03 24.99,2.05
36.43,8.22 39.43,26.63 26.99,35.15
19.43,40.32 8.80,39.00 0.00,39.00
2.13,36.04 4.45,32.92 8.00,31.60
11.21,30.40 17.85,31.66 22.78,26.78
28.64,20.96 26.82,14.03 20.00,10.09
16.14,7.86 12.27,8.01 8.00,8.00
8.00,8.00 8.00,21.00 8.00,21.00
8.00,21.00 0.00,21.00 0.00,21.00
0.00,21.00 0.00,0.00 0.00,0.00 Z
M 65.00,29.00
C 62.63,40.09 49.59,41.43 43.19,36.35
38.88,32.94 37.57,27.25 38.11,22.00
39.26,10.60 52.90,7.73 59.90,12.72
65.00,16.37 64.98,21.39 65.00,27.00
65.00,27.00 46.00,27.00 46.00,27.00
50.50,35.50 54.58,30.75 58.28,29.51
60.20,28.88 62.96,29.01 65.00,29.00 Z
M 96.00,29.00
C 92.82,43.92 69.87,41.91 69.04,26.00
68.13,8.49 85.75,8.02 91.66,13.43
95.74,17.16 95.95,21.90 96.00,27.00
96.00,27.00 76.00,27.00 76.00,27.00
82.93,35.49 84.45,31.13 89.28,29.51
91.20,28.88 93.96,29.01 96.00,29.00 Z
M 109.00,13.00
C 126.25,0.73 137.33,31.29 121.00,37.99
118.90,38.85 116.25,39.10 114.00,38.89
111.35,38.65 110.33,38.08 108.00,37.00
108.00,37.00 108.00,50.00 108.00,50.00
108.00,50.00 101.02,48.40 101.02,48.40
101.02,48.40 100.00,41.00 100.00,41.00
100.00,41.00 100.00,11.00 100.00,11.00
104.11,11.01 105.54,10.53 109.00,13.00 Z
M 152.00,37.00
C 148.66,38.55 146.77,39.22 143.00,38.89
129.80,37.76 131.09,21.05 133.17,17.02
136.52,10.52 145.36,8.21 151.00,13.00
154.46,10.53 155.89,11.01 160.00,11.00
160.00,11.00 160.00,38.00 160.00,38.00
159.94,41.76 159.91,44.72 156.77,47.35
152.24,51.15 140.90,50.00 135.00,50.00
140.86,38.04 149.88,49.96 152.00,37.00 Z
M 186.00,21.00
C 188.17,8.02 203.28,8.27 208.30,14.34
212.19,19.05 211.00,32.75 211.00,39.00
207.15,38.99 204.61,39.88 203.00,36.00
193.53,42.24 184.84,37.41 186.29,29.02
188.09,18.66 198.04,25.75 203.00,18.00
192.55,14.35 197.53,20.60 186.00,21.00 Z
M 223.00,14.00
C 230.14,8.80 233.45,9.36 240.00,15.00
245.00,9.48 253.73,8.31 257.35,16.02
259.69,21.01 259.00,33.09 259.00,39.00
259.00,39.00 251.00,39.00 251.00,39.00
251.00,34.48 252.85,18.20 246.00,18.20
239.15,18.20 241.00,34.48 241.00,39.00
241.00,39.00 233.00,39.00 233.00,39.00
233.00,34.50 234.84,18.20 228.02,18.20
225.53,18.20 224.01,20.92 223.21,23.00
222.76,25.42 223.00,35.81 223.21,39.00
223.21,39.00 215.00,39.00 215.00,39.00
215.00,39.00 215.00,11.00 215.00,11.00
218.85,11.01 221.39,10.12 223.00,14.00 Z
M 166.00,11.00
C 170.11,11.01 171.54,10.53 175.00,13.00
175.00,13.00 184.00,11.00 184.00,11.00
184.00,11.00 184.00,17.00 184.00,17.00
170.90,17.77 174.00,29.35 174.00,39.00
174.00,39.00 166.00,39.00 166.00,39.00
166.00,39.00 166.00,11.00 166.00,11.00 Z
M 57.00,21.00
C 53.77,14.97 49.18,14.83 46.00,21.00
46.00,21.00 57.00,21.00 57.00,21.00 Z
M 88.00,21.00
C 84.91,15.23 79.58,14.32 77.00,21.00
77.00,21.00 88.00,21.00 88.00,21.00 Z
M 113.04,17.70
C 105.69,21.66 107.40,30.41 113.04,31.67
122.24,33.71 124.93,17.02 113.04,17.70 Z
M 145.04,17.54
C 135.47,21.27 139.98,33.59 147.89,31.55
153.87,30.01 155.20,17.81 145.04,17.54 Z
M 203.00,27.03
C 203.00,27.03 199.02,27.03 199.02,27.03
190.18,27.85 196.44,36.30 201.28,30.69
202.34,29.46 202.50,28.42 203.00,27.03 Z" />
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 38 KiB

29
src/assets/img/rythm.svg Normal file
View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg" width="0.326667in" height="0.333333in" viewBox="0 0 98 100">
<path id="Selection" fill="#ff94fd" stroke="black" stroke-width="1" stroke-opacity="0" d="M 43.00,72.00
C 43.00,78.52 44.63,91.02 39.77,95.72
36.51,98.89 22.15,101.16 18.99,97.26
17.75,95.72 18.00,91.94 18.00,90.00
18.00,90.00 18.00,53.00 18.00,53.00
18.01,49.59 17.74,46.03 19.74,43.06
24.77,35.57 40.02,37.47 47.00,41.00
52.45,43.75 54.79,47.76 59.00,48.67
64.19,49.80 69.33,45.62 71.14,41.00
73.68,34.54 68.03,28.14 62.00,26.56
58.95,25.75 51.50,26.00 48.00,26.00
48.00,26.00 22.00,26.00 22.00,26.00
14.11,25.90 8.90,23.58 4.22,16.96
2.05,13.89 -1.49,5.07 2.47,2.17
4.39,0.77 8.65,1.00 11.00,1.00
11.00,1.00 47.00,1.00 47.00,1.00
60.80,1.00 71.06,0.22 83.00,8.79
105.58,24.98 98.99,62.70 77.00,70.00
77.00,70.00 91.00,85.01 91.00,85.01
92.96,87.11 96.79,91.14 97.29,93.98
98.20,99.09 92.36,98.98 89.00,99.00
83.00,99.04 73.11,99.82 68.00,96.91
62.86,93.99 48.49,77.49 43.00,72.00 Z" />
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

51
src/index.html Normal file
View File

@ -0,0 +1,51 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Naomi Carrigan | Software Engineer and Community Manager</title>
<meta
name="description"
content="Creative professional with a focus on developing unique Discord bots and fostering engaged online communities. Eager to leverage technical and interpersonal skills to drive impactful, user-centric projects. Seeking clients where my expertise in designing user-centric solutions and managing vibrant digital spaces can drive engagement and growth."
/>
<!-- Facebook Meta Tags -->
<meta property="og:url" content="https://nhcarrigan.com/" />
<meta property="og:type" content="website" />
<meta
property="og:title"
content="Naomi Carrigan | Software Engineer and Community Manager"
/>
<meta
property="og:description"
content="Creative professional with a focus on developing unique Discord bots and fostering engaged online communities. Eager to leverage technical and interpersonal skills to drive impactful, user-centric projects. Seeking clients where my expertise in designing user-centric solutions and managing vibrant digital spaces can drive engagement and growth."
/>
<meta
property="og:image"
content="https://cdn.nhcarrigan.com/banners/nhcarrigan.png"
/>
<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta property="twitter:domain" content="nhcarrigan.com" />
<meta property="twitter:url" content="https://nhcarrigan.com/" />
<meta
name="twitter:title"
content="Naomi Carrigan | Software Engineer and Community Manager"
/>
<meta
name="twitter:description"
content="Creative professional with a focus on developing unique Discord bots and fostering engaged online communities. Eager to leverage technical and interpersonal skills to drive impactful, user-centric projects. Seeking clients where my expertise in designing user-centric solutions and managing vibrant digital spaces can drive engagement and growth."
/>
<meta
name="twitter:image"
content="https://cdn.nhcarrigan.com/banners/nhcarrigan.png"
/>
<meta name="twitter:creator" content="@nhcarrigan" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" type="image/x-icon" href="favicon.ico" />
</head>
<body>
<app-root></app-root>
</body>
</html>

6
src/main.ts Normal file
View File

@ -0,0 +1,6 @@
import { bootstrapApplication } from "@angular/platform-browser";
import { AppComponent } from "./app/app.component";
import { appConfig } from "./app/app.config";
bootstrapApplication(AppComponent, appConfig).catch((err) => alert(err));

52
src/polyfills.ts Normal file
View File

@ -0,0 +1,52 @@
/**
* This file includes polyfills needed by Angular and is loaded before the app.
* You can add your own extra polyfills to this file.
*
* This file is divided into 2 sections:
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
* file.
*
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
* automatically update themselves. This includes recent versions of Safari, Chrome (including
* Opera), Edge on the desktop, and iOS and Chrome on mobile.
*
* Learn more in https://angular.io/guide/browser-support.
*/
/***************************************************************************************************
* BROWSER POLYFILLS
*/
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags
* because those flags need to be set before `zone.js` being loaded, and webpack
* will put import in the top of bundle, so user need to create a separate file
* in this directory (for example: zone-flags.ts), and put the following flags
* into that file, and then add the following code before importing zone.js.
* Import './zone-flags';
*
* The flags allowed in zone-flags.ts are listed here.
*
* The following flags will work for all browsers.
*
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
* (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames.
*
* In IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
* with the following flag, it will bypass `zone.js` patch for IE/Edge.
*
* (window as any).__Zone_enable_cross_context_check = true;.
*
*/
/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
import "zone.js"; // Included with Angular CLI.
/***************************************************************************************************
* APPLICATION IMPORTS
*/

33
src/styles.css Normal file
View File

@ -0,0 +1,33 @@
:root {
--bg: #000c0f;
--text: #ff94fd;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
a,
a:visited {
color: var(--text);
}
html {
background-color: var(--bg);
color: var(--text);
text-align: center;
}
h1 {
font-size: 3rem;
}
h2 {
font-size: 2.5rem;
}
p {
font-size: 2rem;
}

14
src/test.ts Normal file
View File

@ -0,0 +1,14 @@
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import "zone.js/testing";
import { getTestBed } from "@angular/core/testing";
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from "@angular/platform-browser-dynamic/testing";
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);

10
tsconfig.app.json Normal file
View File

@ -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", "src/polyfills.ts"],
"include": ["src/**/*.d.ts"]
}

32
tsconfig.json Normal file
View File

@ -0,0 +1,32 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"esModuleInterop": true,
"sourceMap": true,
"declaration": false,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "ES2022",
"module": "ES2022",
"useDefineForClassFields": false,
"lib": [
"ES2022",
"dom"
]
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
}
}

10
tsconfig.spec.json Normal file
View File

@ -0,0 +1,10 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": ["jasmine"]
},
"files": ["src/test.ts", "src/polyfills.ts"],
"include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
}