Skip to content
This repository has been archived by the owner on Sep 5, 2023. It is now read-only.

Commit

Permalink
feat: package as an npm
Browse files Browse the repository at this point in the history
  • Loading branch information
mrkurt committed Oct 20, 2018
1 parent 330bad8 commit b53cec1
Show file tree
Hide file tree
Showing 6 changed files with 649 additions and 30 deletions.
22 changes: 14 additions & 8 deletions package.json
@@ -1,16 +1,20 @@
{
"name": "fly-site",
"version": "1.0.0",
"name": "@fly/site",
"version": "0.1.0",
"description": "Fly Site implemented as an edge app",
"main": "index.ts",
"main": "./dist/src/index.ts",
"files": [
"./dist/src/"
],
"scripts": {
"start": "yarn fly server",
"test": "yarn fly test",
"build": "yarn tsc"
"build": "yarn tsc",
"prepublishOnly": "yarn tsc"
},
"repository": {
"type": "git",
"url": "git+https://github.com/superfly/fly.git"
"url": "git+https://github.com/superfly/fl-site.git"
},
"keywords": [
"routing",
Expand All @@ -28,10 +32,12 @@
"homepage": "https://github.com/superfly/fly#readme",
"dependencies": {
"@fly/fly": "^0.42.2",
"@fly/load-balancer": "^0.1.2",
"@fly/load-balancer": "^0.1.2"
},
"devDependencies": {
"@types/source-map": "^0.5.2",
"standard-version": "^4.4.0",
"ts-loader": "^3.5.0",
"typescript": "^3.1.2"
},
"devDependencies": {}
}
}
2 changes: 2 additions & 0 deletions src/backends.ts
Expand Up @@ -12,6 +12,8 @@ export interface Backend {
info: BackendInfo
}

export type BackendMap = Map<String, Backend>

const notImplemented = ["aws_lambda", "aws_s3", "dropbox", "gravatar"]
export default function backend(backend: BackendInfo): Backend {
//TODO: Implement s3, dropbox, lamdba, etc
Expand Down
4 changes: 4 additions & 0 deletions src/index.ts
@@ -0,0 +1,4 @@
export { BackendInfo, BackendMap } from "./backends"
export { RuleInfo } from "./rules"
export { MiddlewareConfig } from "./middleware"
export { SiteConfig } from "./site"
7 changes: 2 additions & 5 deletions src/rules.ts
@@ -1,4 +1,4 @@
import { Backend } from "./backends";
import { BackendMap } from "./backends";
import { applyReplacements } from "./text-replacements";

export interface RuleInfo {
Expand All @@ -16,9 +16,6 @@ export interface RuleInfo {
}

declare var app: any
export interface BackendMap {
[key: string]: Backend
}

export default function rules(backends: BackendMap, rules: RuleInfo[]) {
const compiled = rules.map(compileRule)
Expand Down Expand Up @@ -46,7 +43,7 @@ export default function rules(backends: BackendMap, rules: RuleInfo[]) {
if (rule.actionType !== "rewrite") {
return new Response("Invalid rule action", { status: 500 })
}
const backend = rule.backendKey && backends ? backends[rule.backendKey] : undefined
const backend = rule.backendKey && backends ? backends.get(rule.backendKey) : undefined
if (!backend) {
return new Response("No backend for rule", { status: 502 })
}
Expand Down
8 changes: 4 additions & 4 deletions src/site.ts
@@ -1,5 +1,5 @@
import backend, { BackendInfo } from "./backends";
import rules, { RuleInfo, BackendMap } from "./rules";
import backend, { BackendInfo, BackendMap } from "./backends";
import rules, { RuleInfo } from "./rules";
import middleware, { MiddlewareConfig } from "./middleware";

export interface SiteConfig {
Expand All @@ -17,9 +17,9 @@ export class Site {
if (!isSite(config)) {
throw new Error('Invalid site config')
}
this.backends = {}
this.backends = new Map()
for (const k of Object.getOwnPropertyNames(config.backends)) {
this.backends[k] = backend(config.backends[k])
this.backends.set(k, backend(config.backends[k]))
}

let fn = rules(this.backends, config.rules)
Expand Down

0 comments on commit b53cec1

Please sign in to comment.