mirror of
https://github.com/ragestudio/linebridge.git
synced 2025-06-09 10:34:17 +00:00
moved entire projecto to one source
This commit is contained in:
parent
b39948a0a9
commit
fc3a816e32
@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"devRuntime": {
|
"development": {
|
||||||
"headPackage": "relic"
|
"origitGit": ""
|
||||||
},
|
},
|
||||||
"version": "0.1.2"
|
"modulesAliases": {
|
||||||
|
"@classes": "./dist/classes"
|
||||||
|
}
|
||||||
}
|
}
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,7 +1,13 @@
|
|||||||
node_modules
|
node_modules
|
||||||
|
dist
|
||||||
|
dumps.log
|
||||||
|
origin.server
|
||||||
|
server.registry
|
||||||
|
server.manifest
|
||||||
|
|
||||||
*/**/node_modules
|
*/**/node_modules
|
||||||
*/**/dist
|
*/**/dist
|
||||||
*/**/dumps.log
|
*/**/dumps.log
|
||||||
|
|
||||||
*/**/origin.server
|
*/**/origin.server
|
||||||
*/**/server.registry
|
*/**/server.registry
|
||||||
|
*/**/server.manifest
|
6
bin/server.js
Normal file
6
bin/server.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env corenode
|
||||||
|
const cloudlink = require("../src/dist")
|
||||||
|
const random = require("corenode/dist/libs/random")
|
||||||
|
|
||||||
|
// create server
|
||||||
|
new cloudlink.Server({ autoInit: true, id: runtime.args.id ?? random.generateName() })
|
@ -1,4 +1,4 @@
|
|||||||
const { Storage } = require('@@classes')
|
const { Storage } = require('@classes')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const { performance } = require('perf_hooks')
|
const { performance } = require('perf_hooks')
|
||||||
|
|
@ -5,7 +5,7 @@ const fs = require('fs')
|
|||||||
|
|
||||||
//* LIBS
|
//* LIBS
|
||||||
const { objectToArrayMap } = require("@corenode/utils")
|
const { objectToArrayMap } = require("@corenode/utils")
|
||||||
const TOKENIZER = require("./lib/tokenizer")
|
const tokenizer = require("corenode/dist/libs/tokenizer")
|
||||||
const { websocket } = require("corenode").net
|
const { websocket } = require("corenode").net
|
||||||
|
|
||||||
//* GLOBALS
|
//* GLOBALS
|
||||||
@ -24,7 +24,7 @@ const HUB = {
|
|||||||
ids: {},
|
ids: {},
|
||||||
addresses: {}, // not storaged to registry
|
addresses: {}, // not storaged to registry
|
||||||
entries: [],
|
entries: [],
|
||||||
oids: [],
|
oskids: [],
|
||||||
registry: {},
|
registry: {},
|
||||||
add: (payload) => {
|
add: (payload) => {
|
||||||
|
|
||||||
@ -35,12 +35,12 @@ const HUB = {
|
|||||||
HUB.update()
|
HUB.update()
|
||||||
},
|
},
|
||||||
del: (oid) => {
|
del: (oid) => {
|
||||||
const addressIndex = HUB.oids.indexOf(oid)
|
const addressIndex = HUB.oskids.indexOf(oid)
|
||||||
const item = HUB.registry[oid]
|
const item = HUB.registry[oid]
|
||||||
|
|
||||||
delete HUB.ids[item.id]
|
delete HUB.ids[item.id]
|
||||||
delete HUB.registry[oid]
|
delete HUB.registry[oid]
|
||||||
delete HUB.oids[addressIndex]
|
delete HUB.oskids[addressIndex]
|
||||||
delete HUB.entries[addressIndex]
|
delete HUB.entries[addressIndex]
|
||||||
|
|
||||||
HUB.update()
|
HUB.update()
|
||||||
@ -49,7 +49,7 @@ const HUB = {
|
|||||||
const data = {
|
const data = {
|
||||||
ids: HUB.ids,
|
ids: HUB.ids,
|
||||||
entries: HUB.entries,
|
entries: HUB.entries,
|
||||||
oids: HUB.oids,
|
oids: HUB.oskids,
|
||||||
registry: HUB.registry,
|
registry: HUB.registry,
|
||||||
}
|
}
|
||||||
return fs.writeFileSync(SERVER_REGISTRYPATH, JSON.stringify(data, null, 2), { encoding: "utf-8" })
|
return fs.writeFileSync(SERVER_REGISTRYPATH, JSON.stringify(data, null, 2), { encoding: "utf-8" })
|
||||||
@ -59,7 +59,7 @@ const HUB = {
|
|||||||
const data = JSON.parse(fs.readFileSync(SERVER_REGISTRYPATH, 'utf8')) ?? {}
|
const data = JSON.parse(fs.readFileSync(SERVER_REGISTRYPATH, 'utf8')) ?? {}
|
||||||
|
|
||||||
HUB.entries = data.entries
|
HUB.entries = data.entries
|
||||||
HUB.oids = data.oids
|
HUB.oskids = data.oids
|
||||||
HUB.registry = data.registry
|
HUB.registry = data.registry
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -86,7 +86,7 @@ const GEN = {
|
|||||||
create: () => {
|
create: () => {
|
||||||
let data = {
|
let data = {
|
||||||
created: Date.now(),
|
created: Date.now(),
|
||||||
serverToken: TOKENIZER.generate()
|
serverToken: tokenizer.generate()
|
||||||
}
|
}
|
||||||
|
|
||||||
GEN.write(data)
|
GEN.write(data)
|
||||||
@ -117,7 +117,7 @@ function getUptime() {
|
|||||||
}
|
}
|
||||||
function getRegistryFromEntry(entry) {
|
function getRegistryFromEntry(entry) {
|
||||||
const index = HUB.entries.indexOf(entry)
|
const index = HUB.entries.indexOf(entry)
|
||||||
const oid = HUB.oids[index]
|
const oid = HUB.oskids[index]
|
||||||
|
|
||||||
return HUB.registry[oid]
|
return HUB.registry[oid]
|
||||||
}
|
}
|
||||||
@ -153,29 +153,6 @@ function init() {
|
|||||||
start()
|
start()
|
||||||
}
|
}
|
||||||
|
|
||||||
function startHeartbeatServer() {
|
|
||||||
const heartbeatServer = websocket.server.createInstance({
|
|
||||||
port: 1011,
|
|
||||||
onMessage: (connection, message) => {
|
|
||||||
setTimeout(() => {
|
|
||||||
const index = Number(message.utf8Data)
|
|
||||||
connection.send(index + 1)
|
|
||||||
}, 1000)
|
|
||||||
},
|
|
||||||
authorizeOrigin: (origin) => {
|
|
||||||
// await 5s to simulate an authorization process
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
setTimeout(() => {
|
|
||||||
return resolve(true)
|
|
||||||
}, 5000)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
onClose: () => {
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
//? set middlewares
|
//? set middlewares
|
||||||
@ -203,8 +180,6 @@ function start() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// TODO: set websocket server heap & events
|
|
||||||
startHeartbeatServer()
|
|
||||||
SERVER.get("/heartbeat", (req, res, next) => {
|
SERVER.get("/heartbeat", (req, res, next) => {
|
||||||
res.json({
|
res.json({
|
||||||
uptime: getUptime()
|
uptime: getUptime()
|
||||||
@ -229,7 +204,7 @@ function start() {
|
|||||||
|
|
||||||
//? validate oid token
|
//? validate oid token
|
||||||
if (typeof oid !== "undefined") {
|
if (typeof oid !== "undefined") {
|
||||||
if (!TOKENIZER.valid(oid)) {
|
if (!tokenizer.valid(oid)) {
|
||||||
res.status(403)
|
res.status(403)
|
||||||
return res.json({
|
return res.json({
|
||||||
error: `[${oid}] Is an invalid OID!`
|
error: `[${oid}] Is an invalid OID!`
|
||||||
@ -261,12 +236,12 @@ function start() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (typeof oid === "undefined") {
|
if (typeof oid === "undefined") {
|
||||||
oid = TOKENIZER.generate(address)
|
oid = tokenizer.generate(address)
|
||||||
}
|
}
|
||||||
|
|
||||||
//? add to hub
|
//? add to hub
|
||||||
HUB.entries.push(entry)
|
HUB.entries.push(entry)
|
||||||
HUB.oids.push(oid)
|
HUB.oskids.push(oid)
|
||||||
HUB.addresses[address] = Number(addresses[address]) + 1 ?? Number(1)
|
HUB.addresses[address] = Number(addresses[address]) + 1 ?? Number(1)
|
||||||
|
|
||||||
mutation.oid = oid
|
mutation.oid = oid
|
17
nethub/src/lib/tokenizer/index.js
Normal file
17
nethub/src/lib/tokenizer/index.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
const { validate, version, v5, v4 } = require('uuid')
|
||||||
|
const os = require('os')
|
||||||
|
|
||||||
|
// Unique session ID
|
||||||
|
function generateUSID() {
|
||||||
|
return v4()
|
||||||
|
}
|
||||||
|
// Origin Server Key ID
|
||||||
|
function generateOSKID(hostname) {
|
||||||
|
return v5(hostname ?? os.hostname(), v4())
|
||||||
|
}
|
||||||
|
|
||||||
|
function validateOSKID(uuid) {
|
||||||
|
return validate(uuid) && version(uuid) === 5
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { generateUSID, generateOSKID, validateOSKID }
|
7443
package-lock.json
generated
7443
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
41
package.json
41
package.json
@ -1,23 +1,36 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"name": "cloudlink",
|
||||||
"name": "relic",
|
"version": "0.2.5",
|
||||||
"version": "0.1.2",
|
"main": "dist/index.js",
|
||||||
"author": "RageStudio",
|
"types": "dist/index.d.ts",
|
||||||
"license": "ISC",
|
|
||||||
"workspaces": [
|
|
||||||
"packages/*"
|
|
||||||
],
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev:server": "cd ./packages/server && npm run dev",
|
"start:server": "corenode ./bin/server.js",
|
||||||
"dev:nethub": "cd ./packages/nethub && npm run dev",
|
"dev:server": "cross-env NODE_ENV=development nodemon --ignore dist/ --exec 'corenode build && corenode' ./bin/server.js"
|
||||||
"dev:relic": "cd ./packages/relic && npm run dev"
|
|
||||||
},
|
},
|
||||||
|
"bin": {
|
||||||
|
"clserver": "./bin/server.js"
|
||||||
|
},
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"dist",
|
||||||
|
".corenode.json",
|
||||||
|
"load.addon.js"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"axios": "^0.21.1",
|
||||||
"corenode": "^0.25.1",
|
"corenode": "^0.25.1",
|
||||||
"@babel/runtime": "^7.14.0"
|
"cors": "^2.8.5",
|
||||||
|
"express": "^4.17.1",
|
||||||
|
"express-fileupload": "^1.2.1",
|
||||||
|
"morgan": "^1.10.0",
|
||||||
|
"uuid": "^8.3.2",
|
||||||
|
"websocket": "^1.0.34"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"cross-env": "^7.0.3",
|
"nodemon": "^2.0.7",
|
||||||
"nodemon": "^2.0.7"
|
"cross-env": "^7.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,12 +0,0 @@
|
|||||||
const { validate, version, v5, v4 } = require('uuid')
|
|
||||||
const os = require('os')
|
|
||||||
|
|
||||||
function generate(hostname) {
|
|
||||||
return v5(hostname ?? os.hostname(), v4())
|
|
||||||
}
|
|
||||||
|
|
||||||
function valid(uuid) {
|
|
||||||
return validate(uuid) && version(uuid) === 5
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = { generate, valid }
|
|
@ -1 +0,0 @@
|
|||||||
# relic
|
|
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@ragestudio/relic",
|
|
||||||
"version": "0.1.2",
|
|
||||||
"main": "dist/index.js",
|
|
||||||
"types": "dist/index.d.ts",
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"dist",
|
|
||||||
"load.addon.js"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"axios": "^0.21.1",
|
|
||||||
"websocket": "^1.0.34"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"development": {
|
|
||||||
"origitGit": ""
|
|
||||||
},
|
|
||||||
"modulesAliases": {
|
|
||||||
"@classes": "./dist/classes"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env corenode
|
|
||||||
const relic = require("../dist")
|
|
||||||
const script = process.argv[2]
|
|
||||||
|
|
||||||
// create server
|
|
||||||
new relic.Server({ autoInit: true })
|
|
@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@ragestudio/relic-server",
|
|
||||||
"version": "0.2.2",
|
|
||||||
"main": "dist/index.js",
|
|
||||||
"types": "dist/index.d.ts",
|
|
||||||
"scripts": {
|
|
||||||
"start": "corenode ./bin/index.js",
|
|
||||||
"dev": "cross-env NODE_ENV=development nodemon --ignore dist/ --exec 'corenode build && corenode' ./bin/index.js"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"rcs": "corenode ./bin/index.js"
|
|
||||||
},
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"dist",
|
|
||||||
".corenode.json",
|
|
||||||
"load.addon.js"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"axios": "^0.21.1",
|
|
||||||
"corenode": "^0.25.1",
|
|
||||||
"cors": "^2.8.5",
|
|
||||||
"express": "^4.17.1",
|
|
||||||
"express-fileupload": "^1.2.1",
|
|
||||||
"morgan": "^1.10.0",
|
|
||||||
"uuid": "^8.3.2",
|
|
||||||
"websocket": "^1.0.34"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"nodemon": "^2.0.7",
|
|
||||||
"cross-env": "^7.0.3"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
class Tokenizer {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = { Tokenizer }
|
|
@ -1,12 +0,0 @@
|
|||||||
const { validate, version, v5, v4 } = require('uuid')
|
|
||||||
const os = require('os')
|
|
||||||
|
|
||||||
function generate(hostname) {
|
|
||||||
return v5(hostname ?? os.hostname(), v4())
|
|
||||||
}
|
|
||||||
|
|
||||||
function valid(uuid) {
|
|
||||||
return validate(uuid) && version(uuid) === 5
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = { generate, valid }
|
|
@ -2,5 +2,3 @@ export { Authorization } from './Authorization'
|
|||||||
export { Controller } from './Controller'
|
export { Controller } from './Controller'
|
||||||
export { Database } from './Database'
|
export { Database } from './Database'
|
||||||
export { Storage } from './Storage'
|
export { Storage } from './Storage'
|
||||||
|
|
||||||
export { Tokenizer } from './Tokenization'
|
|
14
src/index.js
Normal file
14
src/index.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
const path = require('path')
|
||||||
|
|
||||||
|
//* set globals
|
||||||
|
global.IS_DEV = runtime.helpers.isDevMode()
|
||||||
|
global.SERVER_VERSION = runtime.helpers.getVersion()
|
||||||
|
global.SERVER_MANIFEST = "server.manifest"
|
||||||
|
global.SERVER_MANIFEST_PATH = path.resolve(process.cwd(), SERVER_MANIFEST)
|
||||||
|
|
||||||
|
//* import libraries
|
||||||
|
const classes = require('./classes')
|
||||||
|
const Server = require("./server")
|
||||||
|
|
||||||
|
//* export libraries
|
||||||
|
module.exports = { Server, ...classes }
|
17
src/lib/tokenizer/index.js
Normal file
17
src/lib/tokenizer/index.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
const { validate, version, v5, v4 } = require('uuid')
|
||||||
|
const os = require('os')
|
||||||
|
|
||||||
|
// Unique session ID
|
||||||
|
function generateUSID() {
|
||||||
|
return v4()
|
||||||
|
}
|
||||||
|
// Origin Server Key ID
|
||||||
|
function generateOSKID(hostname) {
|
||||||
|
return v5(hostname ?? os.hostname(), v4())
|
||||||
|
}
|
||||||
|
|
||||||
|
function validateOSKID(uuid) {
|
||||||
|
return validate(uuid) && version(uuid) === 5
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { generateUSID, generateOSKID, validateOSKID }
|
@ -1,53 +1,12 @@
|
|||||||
const uuid = require("uuid")
|
|
||||||
const os = require("os")
|
|
||||||
const path = require("path")
|
|
||||||
const fs = require("fs")
|
const fs = require("fs")
|
||||||
const express = require("express")
|
const express = require("express")
|
||||||
const { objectToArrayMap } = require("@corenode/utils")
|
const { objectToArrayMap } = require("@corenode/utils")
|
||||||
|
|
||||||
const SERVER_VERSION = global.SERVER_VERSION = runtime.helpers.getVersion()
|
const serverManifest = require("../serverManifest")
|
||||||
const SERVER_GENFILE = "origin.server"
|
const tokenizer = require("../lib/tokenizer")
|
||||||
const SERVER_GENFILEPATH = path.resolve(process.cwd(), SERVER_GENFILE)
|
const classes = require("../classes")
|
||||||
const IS_DEV = global.IS_DEV = runtime.helpers.isDevMode()
|
const { getLocalEndpoints, fetchController } = require("../lib/helpers")
|
||||||
|
const nethub = require("../lib/nethub")
|
||||||
const { Controller } = require("@classes")
|
|
||||||
const { getLocalEndpoints, fetchController } = require("./lib/helpers")
|
|
||||||
const nethub = require("./lib/nethub")
|
|
||||||
const TOKENIZER = require("./lib/tokenizer")
|
|
||||||
|
|
||||||
const GEN = {
|
|
||||||
stat: () => {
|
|
||||||
return fs.lstatSync(SERVER_GENFILEPATH)
|
|
||||||
},
|
|
||||||
get: (key) => {
|
|
||||||
let data = {}
|
|
||||||
if (fs.existsSync(SERVER_GENFILEPATH)) {
|
|
||||||
data = JSON.parse(fs.readFileSync(SERVER_GENFILEPATH, 'utf8'))
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof key === "string") {
|
|
||||||
return data[key]
|
|
||||||
}
|
|
||||||
return data
|
|
||||||
},
|
|
||||||
write: (mutation) => {
|
|
||||||
let data = GEN.get()
|
|
||||||
data = { ...data, ...mutation }
|
|
||||||
|
|
||||||
GEN.data = data
|
|
||||||
return fs.writeFileSync(SERVER_GENFILEPATH, JSON.stringify(data, null, 2), { encoding: "utf-8" })
|
|
||||||
},
|
|
||||||
create: () => {
|
|
||||||
let data = {
|
|
||||||
created: Date.now(),
|
|
||||||
serverToken: TOKENIZER.generate()
|
|
||||||
}
|
|
||||||
|
|
||||||
GEN.write(data)
|
|
||||||
},
|
|
||||||
file: SERVER_GENFILE,
|
|
||||||
filepath: SERVER_GENFILEPATH,
|
|
||||||
}
|
|
||||||
|
|
||||||
const defaultMiddlewares = [
|
const defaultMiddlewares = [
|
||||||
require('cors')(),
|
require('cors')(),
|
||||||
@ -63,32 +22,25 @@ const defaultHeaders = {
|
|||||||
"Access-Control-Allow-Credentials": "true",
|
"Access-Control-Allow-Credentials": "true",
|
||||||
}
|
}
|
||||||
|
|
||||||
class RequestServer {
|
class Server {
|
||||||
constructor(params, endpoints, middlewares) {
|
constructor(params, endpoints, middlewares) {
|
||||||
this.params = params ?? {}
|
this.params = params ?? {}
|
||||||
|
|
||||||
// set params jails
|
//* set params jails
|
||||||
this.id = this.params.id ?? runtime.helpers.getRootPackage().name
|
|
||||||
this.routes = []
|
this.routes = []
|
||||||
this.endpoints = { ...endpoints }
|
this.endpoints = { ...endpoints }
|
||||||
this.middlewares = [...defaultMiddlewares]
|
this.middlewares = [...defaultMiddlewares, ...middlewares ?? []]
|
||||||
this.headers = {
|
this.headers = { ...defaultHeaders, ...this.params.headers }
|
||||||
...defaultHeaders,
|
|
||||||
...this.params.headers
|
|
||||||
}
|
|
||||||
|
|
||||||
// process params
|
//* set server basics
|
||||||
if (typeof middlewares !== "undefined" && Array.isArray(middlewares)) {
|
|
||||||
middlewares.forEach((middleware) => {
|
|
||||||
this.middlewares.push(middleware)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// set server basics
|
|
||||||
this.httpServer = require("express")()
|
this.httpServer = require("express")()
|
||||||
this.usid = uuid.v5(os.hostname(), uuid.v4()) // unique session identifier
|
|
||||||
this.oid = GEN.get("serverToken")
|
|
||||||
|
|
||||||
|
//* set id's
|
||||||
|
this.id = this.params.id ?? runtime.helpers.getRootPackage().name
|
||||||
|
this.usid = tokenizer.generateUSID()
|
||||||
|
this.oskid = serverManifest.get("serverToken")
|
||||||
|
|
||||||
|
//* set events & params
|
||||||
this._everyRequest = null
|
this._everyRequest = null
|
||||||
this._onRequest = {}
|
this._onRequest = {}
|
||||||
|
|
||||||
@ -118,7 +70,7 @@ class RequestServer {
|
|||||||
|
|
||||||
registerEndpoint(method, route, controller) {
|
registerEndpoint(method, route, controller) {
|
||||||
if (typeof controller === "function") {
|
if (typeof controller === "function") {
|
||||||
controller = new Controller(route, controller)
|
controller = new classes.Controller(route, controller)
|
||||||
}
|
}
|
||||||
|
|
||||||
const endpoint = { method: method, route: route, controller: controller }
|
const endpoint = { method: method, route: route, controller: controller }
|
||||||
@ -148,26 +100,26 @@ class RequestServer {
|
|||||||
|
|
||||||
init() {
|
init() {
|
||||||
//? check if origin.server exists
|
//? check if origin.server exists
|
||||||
if (!fs.existsSync(SERVER_GENFILEPATH)) {
|
if (!fs.existsSync(SERVER_MANIFEST_PATH)) {
|
||||||
GEN.create()
|
serverManifest.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
//? check origin.server integrity
|
//? check origin.server integrity
|
||||||
const GENDATA = global.GENDATA = GEN.get()
|
const MANIFEST_DATA = global.MANIFEST_DATA = serverManifest.get()
|
||||||
const GENSTAT = global.GENSTAT = GEN.stat()
|
const MANIFEST_STAT = global.MANIFEST_STAT = serverManifest.stat()
|
||||||
|
|
||||||
if (typeof GENDATA.created === "undefined") {
|
if (typeof MANIFEST_DATA.created === "undefined") {
|
||||||
console.warn("Server generation file not contains an creation date")
|
console.warn("Server generation file not contains an creation date")
|
||||||
GEN.write({ created: Date.parse(GENSTAT.birthtime) })
|
serverManifest.write({ created: Date.parse(MANIFEST_STAT.birthtime) })
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof GENDATA.serverToken === "undefined") {
|
if (typeof MANIFEST_DATA.serverToken === "undefined") {
|
||||||
console.warn("Missing server token!")
|
console.warn("Missing server token!")
|
||||||
GEN.create()
|
serverManifest.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
//? set last start
|
//? set last start
|
||||||
GEN.write({ lastStart: Date.now() })
|
serverManifest.write({ lastStart: Date.now() })
|
||||||
|
|
||||||
const localEndpoints = getLocalEndpoints()
|
const localEndpoints = getLocalEndpoints()
|
||||||
|
|
||||||
@ -205,7 +157,7 @@ class RequestServer {
|
|||||||
fn = "default"
|
fn = "default"
|
||||||
}
|
}
|
||||||
|
|
||||||
this.registerEndpoint(method, route, new Controller(route, controller[fn]))
|
this.registerEndpoint(method, route, new classes.Controller(route, controller[fn]))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
runtime.logger.dump(error)
|
runtime.logger.dump(error)
|
||||||
console.error(error)
|
console.error(error)
|
||||||
@ -218,9 +170,10 @@ class RequestServer {
|
|||||||
this.registerEndpoint("get", "/", (req, res) => {
|
this.registerEndpoint("get", "/", (req, res) => {
|
||||||
// here server origin resolver
|
// here server origin resolver
|
||||||
res.json({
|
res.json({
|
||||||
time: new Date().getTime(),
|
id: this.id,
|
||||||
usid: this.usid,
|
usid: this.usid,
|
||||||
originID: this.params.oid ?? "RelicServer",
|
oskid: this.oskid,
|
||||||
|
time: new Date().getTime(),
|
||||||
version: SERVER_VERSION
|
version: SERVER_VERSION
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -232,10 +185,14 @@ class RequestServer {
|
|||||||
})
|
})
|
||||||
|
|
||||||
this.httpServer.listen(this.params.port, () => {
|
this.httpServer.listen(this.params.port, () => {
|
||||||
nethub.registerOrigin({ entry: "/", oid: this.oid, id: this.id })
|
//? register to nethub
|
||||||
|
if (this.params.onlineNethub) {
|
||||||
|
nethub.registerOrigin({ entry: "/", oskid: this.oskid, id: this.id })
|
||||||
|
}
|
||||||
|
|
||||||
console.log(`✅ Ready on port ${this.params.port}!`)
|
console.log(`✅ Ready on port ${this.params.port}!`)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { Controller, Server: RequestServer }
|
module.exports = Server
|
42
src/serverManifest/index.js
Normal file
42
src/serverManifest/index.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
const tokenizer = require("../lib/tokenizer")
|
||||||
|
const path = require("path")
|
||||||
|
const fs = require("fs")
|
||||||
|
|
||||||
|
const SERVER_MANIFEST = global.SERVER_MANIFEST ?? "server.manifest"
|
||||||
|
const SERVER_MANIFEST_PATH = global.SERVER_MANIFEST_PATH ?? path.resolve(process.cwd(), SERVER_MANIFEST)
|
||||||
|
|
||||||
|
const serverfile = {
|
||||||
|
stat: () => {
|
||||||
|
return fs.lstatSync(SERVER_MANIFEST)
|
||||||
|
},
|
||||||
|
get: (key) => {
|
||||||
|
let data = {}
|
||||||
|
if (fs.existsSync(SERVER_MANIFEST)) {
|
||||||
|
data = JSON.parse(fs.readFileSync(SERVER_MANIFEST_PATH, 'utf8'))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof key === "string") {
|
||||||
|
return data[key]
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
},
|
||||||
|
write: (mutation) => {
|
||||||
|
let data = serverfile.get()
|
||||||
|
data = { ...data, ...mutation }
|
||||||
|
|
||||||
|
serverfile.data = data
|
||||||
|
return fs.writeFileSync(SERVER_MANIFEST_PATH, JSON.stringify(data, null, 2), { encoding: "utf-8" })
|
||||||
|
},
|
||||||
|
create: () => {
|
||||||
|
let data = {
|
||||||
|
created: Date.now(),
|
||||||
|
serverToken: tokenizer.generateOSKID()
|
||||||
|
}
|
||||||
|
|
||||||
|
serverfile.write(data)
|
||||||
|
},
|
||||||
|
file: SERVER_MANIFEST,
|
||||||
|
filepath: SERVER_MANIFEST_PATH,
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = serverfile
|
Loading…
x
Reference in New Issue
Block a user