Fixing to update stuff to the library
This commit is contained in:
parent
585ece2d39
commit
fce545d2c4
3
.gitignore
vendored
3
.gitignore
vendored
@ -80,7 +80,8 @@ typings/
|
|||||||
|
|
||||||
# Nuxt.js build / generate output
|
# Nuxt.js build / generate output
|
||||||
.nuxt
|
.nuxt
|
||||||
dist
|
dist-nodejs
|
||||||
|
dist-browser
|
||||||
temp
|
temp
|
||||||
|
|
||||||
# Gatsby files
|
# Gatsby files
|
||||||
|
@ -3,8 +3,21 @@ set DIR=%~dp0
|
|||||||
cd "%DIR%"
|
cd "%DIR%"
|
||||||
SETLOCAL
|
SETLOCAL
|
||||||
echo Compiling Backend
|
echo Compiling Backend
|
||||||
(npx tsc -p ./tsconfigBackend.json --pretty) && (
|
(npm run-script prettier-format) && (
|
||||||
echo Done
|
(npm run-script compile-nodejs) && (
|
||||||
) || (
|
echo Done
|
||||||
echo Done
|
) || (
|
||||||
)
|
(npm run-script compile-browser) && (
|
||||||
|
echo Done
|
||||||
|
) || (
|
||||||
|
(npm run-script build) && (
|
||||||
|
echo Done
|
||||||
|
) || (
|
||||||
|
echo Error
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) || (
|
||||||
|
echo Failed to pettier code
|
||||||
|
)
|
||||||
|
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
set DIR=%~dp0
|
|
||||||
cd "%DIR%"
|
|
||||||
|
|
||||||
call npx webpack -c .\webpack-typescript.config.js
|
|
11
10-push-to-npm.bat
Normal file
11
10-push-to-npm.bat
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
set DIR=%~dp0
|
||||||
|
cd "%DIR%"
|
||||||
|
|
||||||
|
node contribute/toBrowser.js
|
||||||
|
(npm publish --registry https://npm.zema.de/) && (
|
||||||
|
node contribute/toNodejs.js
|
||||||
|
npm publish --registry https://npm.zema.de/
|
||||||
|
) || (
|
||||||
|
node contribute/toNodejs.js
|
||||||
|
npm publish --registry https://npm.zema.de/
|
||||||
|
)
|
@ -1,7 +0,0 @@
|
|||||||
set DIR=%~dp0
|
|
||||||
cd "%DIR%"
|
|
||||||
|
|
||||||
call npx webpack -c .\webpack-typescript.config.js
|
|
||||||
|
|
||||||
cd build
|
|
||||||
xcopy * ..\..\nope-browser\
|
|
2
bin/nope
2
bin/nope
@ -1,2 +1,2 @@
|
|||||||
#! /usr/bin/env node
|
#! /usr/bin/env node
|
||||||
require("../dist/cli/nope").main().catch(console.error);
|
require("../dist-nodejs/cli/nope").main().catch(console.error);
|
1
contribute/VERSION
Normal file
1
contribute/VERSION
Normal file
@ -0,0 +1 @@
|
|||||||
|
1.0.7
|
20
contribute/toBrowser.js
Normal file
20
contribute/toBrowser.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
const { readFileSync, writeFileSync } = require("fs");
|
||||||
|
|
||||||
|
const version = readFileSync("./contribute/VERSION", { encoding: "utf-8" });
|
||||||
|
const package = JSON.parse(readFileSync("./package.json", { encoding: "utf-8" }));
|
||||||
|
|
||||||
|
package.description = "NoPE Runtime for the Browser";
|
||||||
|
delete package.main;
|
||||||
|
delete package.browser;
|
||||||
|
delete package.bin;
|
||||||
|
|
||||||
|
package.name = "nope-browser"
|
||||||
|
package.browser = "build/nope.js";
|
||||||
|
package.main = "build/nope.js";
|
||||||
|
package.version = version;
|
||||||
|
|
||||||
|
package.files = [
|
||||||
|
"build/**/*"
|
||||||
|
];
|
||||||
|
|
||||||
|
writeFileSync("./package.json", JSON.stringify(package, undefined, 2), { encoding: "utf-8" });
|
23
contribute/toNodejs.js
Normal file
23
contribute/toNodejs.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
const { readFileSync, writeFileSync } = require("fs");
|
||||||
|
|
||||||
|
const version = readFileSync("./contribute/VERSION", { encoding: "utf-8" });
|
||||||
|
const package = JSON.parse(readFileSync("./package.json", { encoding: "utf-8" }));
|
||||||
|
|
||||||
|
package.description = "NoPE Runtime for Nodejs. For Browser-Support please use nope-browser";
|
||||||
|
delete package.main;
|
||||||
|
delete package.browser;
|
||||||
|
|
||||||
|
package.bin = {
|
||||||
|
"nope-js": "./bin/nope"
|
||||||
|
};
|
||||||
|
|
||||||
|
package.name = "nope"
|
||||||
|
package.main = "dist-nodejs/index.nodejs.js";
|
||||||
|
package.version = version;
|
||||||
|
package.files = [
|
||||||
|
"dist-nodejs/**/*",
|
||||||
|
"lib/**/*",
|
||||||
|
"bin/*"
|
||||||
|
];
|
||||||
|
|
||||||
|
writeFileSync("./package.json", JSON.stringify(package, undefined, 2), { encoding: "utf-8" });
|
@ -12,10 +12,7 @@ import { join } from "path";
|
|||||||
import { createPath } from "../helpers/fileMethods";
|
import { createPath } from "../helpers/fileMethods";
|
||||||
import { getNopeLogger } from "../logger/getLogger";
|
import { getNopeLogger } from "../logger/getLogger";
|
||||||
|
|
||||||
const FOLDERS_TO_CREATE = [
|
const FOLDERS_TO_CREATE = ["config", "modules"];
|
||||||
"config",
|
|
||||||
"modules"
|
|
||||||
];
|
|
||||||
const BASE_FOLDER = __dirname;
|
const BASE_FOLDER = __dirname;
|
||||||
const FILES_TO_COPY = [
|
const FILES_TO_COPY = [
|
||||||
// Config-Files
|
// Config-Files
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
// server.js
|
|
||||||
const { createServer } = require('http')
|
|
||||||
const { parse,format } = require('url')
|
|
||||||
const next = require('next')
|
|
||||||
const join = require('path').join
|
|
||||||
const dev = process.env.NODE_ENV !== 'production'
|
|
||||||
const app = next({
|
|
||||||
dev,
|
|
||||||
useFileSystemPublicRoutes: false,
|
|
||||||
});
|
|
||||||
const handle = app.getRequestHandler()
|
|
||||||
|
|
||||||
const staticFiles = ['/hello']
|
|
||||||
|
|
||||||
|
|
||||||
app.prepare().then(() => {
|
|
||||||
const server = require('express')();
|
|
||||||
server.listen(3000, 'localhost', () => {
|
|
||||||
server.get('*', (req,res) => {
|
|
||||||
const { pathname, query } = parse(req.url, true);
|
|
||||||
|
|
||||||
if (staticFiles.indexOf(pathname) > -1) {
|
|
||||||
const path = join(__dirname, "..", pathname);
|
|
||||||
console.log(path)
|
|
||||||
// return handle(req,res,path)
|
|
||||||
// return app.serveStatic(req, res, path);
|
|
||||||
|
|
||||||
return res.redirect(
|
|
||||||
format({
|
|
||||||
pathname: path,
|
|
||||||
query,
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return handle(req,res)
|
|
||||||
|
|
||||||
|
|
||||||
})
|
|
||||||
});
|
|
||||||
})
|
|
@ -1,51 +0,0 @@
|
|||||||
import { runMiddleware } from "./runMiddleware";
|
|
||||||
import { Application } from "express";
|
|
||||||
import { assignIn } from "lodash";
|
|
||||||
|
|
||||||
export interface ICallOptions {
|
|
||||||
method: "post";
|
|
||||||
headers?: { "Content-Type": "application/json" };
|
|
||||||
|
|
||||||
body: {
|
|
||||||
[index: string]: any;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function that will generate an async accessor Function.
|
|
||||||
* @param app the provided Express App.
|
|
||||||
*/
|
|
||||||
export function getBackendAccesors(app: Application) {
|
|
||||||
// Create a Run-Middle-Ware
|
|
||||||
runMiddleware(app);
|
|
||||||
|
|
||||||
// Define a apiCall Function, which could be used to perform internal
|
|
||||||
// Request on the API.
|
|
||||||
function apiCall<T>(url: string, options: ICallOptions) {
|
|
||||||
return new Promise<T>((resolve, reject) => {
|
|
||||||
// Define the Default Options
|
|
||||||
const defaults: Partial<ICallOptions> = {
|
|
||||||
headers: { "Content-Type": "application/json" },
|
|
||||||
};
|
|
||||||
// Mix the Options.
|
|
||||||
const opts: ICallOptions = assignIn(defaults, options);
|
|
||||||
|
|
||||||
// Perform the Call
|
|
||||||
(app as any).runMiddleware(url, opts, (responseCode: number, body: T) => {
|
|
||||||
// Based on the Response code, decide whether the call was a Fail or not.
|
|
||||||
if (responseCode === 200) {
|
|
||||||
// If everything is fine,
|
|
||||||
// Just return the body.
|
|
||||||
return resolve(body);
|
|
||||||
} else {
|
|
||||||
const error = new Error(
|
|
||||||
"Call Ended with responseCode = " + responseCode.toString()
|
|
||||||
);
|
|
||||||
return reject(error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return apiCall;
|
|
||||||
}
|
|
@ -1,112 +0,0 @@
|
|||||||
// Adapted File from 'run-middleware'
|
|
||||||
import * as _ from "lodash";
|
|
||||||
|
|
||||||
export function runMiddleware(app) {
|
|
||||||
app.use((req, res, next) => {
|
|
||||||
req.runMiddleware = (path, options, callback) => {
|
|
||||||
if (_.isFunction(options)) {
|
|
||||||
callback = options;
|
|
||||||
options = {};
|
|
||||||
}
|
|
||||||
options.original_req = req;
|
|
||||||
options.original_res = res;
|
|
||||||
app.runMiddleware(path, options, callback);
|
|
||||||
};
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
if (app.runMiddleware) return; // Do not able to add us twice
|
|
||||||
|
|
||||||
app.runMiddleware = function (path, options, callback) {
|
|
||||||
if (callback) callback = _.once(callback);
|
|
||||||
if (typeof options == "function") {
|
|
||||||
callback = options;
|
|
||||||
options = null;
|
|
||||||
}
|
|
||||||
options = options || {};
|
|
||||||
options.url = path;
|
|
||||||
let new_req, new_res;
|
|
||||||
if (options.original_req) {
|
|
||||||
new_req = options.original_req;
|
|
||||||
for (const i in options) {
|
|
||||||
if (i == "original_req") continue;
|
|
||||||
new_req[i] = options[i];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
new_req = _createReq(path, options);
|
|
||||||
}
|
|
||||||
new_res = _createRes(callback);
|
|
||||||
app(new_req, new_res);
|
|
||||||
};
|
|
||||||
|
|
||||||
/* end - APP.runMiddleware*/
|
|
||||||
}
|
|
||||||
|
|
||||||
function _createReq(path, options) {
|
|
||||||
if (!options) options = {};
|
|
||||||
const req = _.extend(
|
|
||||||
{
|
|
||||||
method: "GET",
|
|
||||||
host: "",
|
|
||||||
cookies: {},
|
|
||||||
query: {},
|
|
||||||
url: path,
|
|
||||||
headers: {},
|
|
||||||
},
|
|
||||||
options
|
|
||||||
);
|
|
||||||
req.method = req.method.toUpperCase();
|
|
||||||
// req.connection=_req.connection
|
|
||||||
return req;
|
|
||||||
}
|
|
||||||
function _createRes(callback) {
|
|
||||||
const res: any = {
|
|
||||||
_removedHeader: {},
|
|
||||||
};
|
|
||||||
// res=_.extend(res,require('express/lib/response'));
|
|
||||||
|
|
||||||
const headers = {};
|
|
||||||
let code = 200;
|
|
||||||
res.set = res.header = function (x, y) {
|
|
||||||
if (arguments.length === 2) {
|
|
||||||
res.setHeader(x, y);
|
|
||||||
} else {
|
|
||||||
for (const key in x) {
|
|
||||||
res.setHeader(key, x[key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
};
|
|
||||||
res.setHeader = function (x, y) {
|
|
||||||
headers[x] = y;
|
|
||||||
headers[x.toLowerCase()] = y;
|
|
||||||
return res;
|
|
||||||
};
|
|
||||||
res.get = function (x) {
|
|
||||||
return headers[x];
|
|
||||||
};
|
|
||||||
res.redirect = function (_code, url) {
|
|
||||||
if (!_.isNumber(_code)) {
|
|
||||||
code = 301;
|
|
||||||
url = _code;
|
|
||||||
} else {
|
|
||||||
code = _code;
|
|
||||||
}
|
|
||||||
res.setHeader("Location", url);
|
|
||||||
res.end();
|
|
||||||
// callback(code,url)
|
|
||||||
};
|
|
||||||
res.status = function (number) {
|
|
||||||
code = number;
|
|
||||||
return res;
|
|
||||||
};
|
|
||||||
res.end =
|
|
||||||
res.send =
|
|
||||||
res.write =
|
|
||||||
function (data) {
|
|
||||||
if (callback) callback(code, data, headers);
|
|
||||||
// else if (!options.quiet){
|
|
||||||
// _res.send(data)
|
|
||||||
// }
|
|
||||||
};
|
|
||||||
return res;
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
import { readInArgs } from "../cli/runNopeBackend";
|
|
||||||
import { getNopeLogger } from "../logger/getLogger";
|
|
||||||
import { startOpenApiBackend } from "./startOpenApiBackend";
|
|
||||||
|
|
||||||
startOpenApiBackend(readInArgs(), {
|
|
||||||
port: 3001,
|
|
||||||
logger: getNopeLogger("open-api-server", "debug"),
|
|
||||||
});
|
|
@ -1,136 +0,0 @@
|
|||||||
/**
|
|
||||||
* @author Martin Karkowski
|
|
||||||
* @email m.karkowski@zema.de
|
|
||||||
* @create date 2020-11-12 11:21:41
|
|
||||||
* @modify date 2021-08-04 17:19:12
|
|
||||||
* @desc [description]
|
|
||||||
*/
|
|
||||||
|
|
||||||
import * as bodyParser from "body-parser";
|
|
||||||
import * as cors from "cors";
|
|
||||||
import * as express from "express";
|
|
||||||
import { initialize } from "express-openapi";
|
|
||||||
import { readFile } from "fs/promises";
|
|
||||||
import { ILogger } from "js-logger";
|
|
||||||
import { assignIn } from "lodash";
|
|
||||||
import { join } from "path";
|
|
||||||
import "reflect-metadata";
|
|
||||||
import { INopeDispatcher } from "../types/nope/nopeDispatcher.interface";
|
|
||||||
import { getBackendAccesors } from "./getBackendAccessors";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to generate the Base Api Documentation
|
|
||||||
* @param title The Title of the API
|
|
||||||
* @param version The Version
|
|
||||||
* @param basePath A Basepath for the API
|
|
||||||
*/
|
|
||||||
function _genApiDoc(
|
|
||||||
title: string,
|
|
||||||
version: string,
|
|
||||||
basePath: string,
|
|
||||||
definitions: any = {}
|
|
||||||
) {
|
|
||||||
// Default API Doc
|
|
||||||
const apiDoc = {
|
|
||||||
swagger: "2.0",
|
|
||||||
basePath: basePath || "/v1",
|
|
||||||
info: {
|
|
||||||
title,
|
|
||||||
version,
|
|
||||||
},
|
|
||||||
definitions,
|
|
||||||
paths: {},
|
|
||||||
};
|
|
||||||
|
|
||||||
return apiDoc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to start a Open-API-Server
|
|
||||||
* @param _dispatcher The Dispatcher, which should be used.
|
|
||||||
* @param options Options for the Server
|
|
||||||
*/
|
|
||||||
export async function startOpenApiBackend(
|
|
||||||
_dispatcher: INopeDispatcher,
|
|
||||||
options: {
|
|
||||||
port?: number;
|
|
||||||
backendPort?: number;
|
|
||||||
basePath?: string;
|
|
||||||
logger?: ILogger;
|
|
||||||
} = {}
|
|
||||||
) {
|
|
||||||
const app: express.Application = (express as any)();
|
|
||||||
|
|
||||||
// Define the Default Options
|
|
||||||
const defaults = {
|
|
||||||
port: 3001,
|
|
||||||
backendPort: 3002,
|
|
||||||
basePath: "/api",
|
|
||||||
};
|
|
||||||
// Mix the Options.
|
|
||||||
const opts = assignIn(defaults, options);
|
|
||||||
|
|
||||||
app.use(bodyParser.json());
|
|
||||||
app.use(cors());
|
|
||||||
|
|
||||||
let _definition = {};
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Extract the Elements provided in the API-Document.
|
|
||||||
_definition = JSON.parse(
|
|
||||||
await readFile(join(__dirname, "apidoc.json"), {
|
|
||||||
encoding: "utf8",
|
|
||||||
})
|
|
||||||
).definitions;
|
|
||||||
} catch (e) {
|
|
||||||
if (opts.logger) {
|
|
||||||
opts.logger.error("cant parse apidoc.json");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
initialize({
|
|
||||||
apiDoc: _genApiDoc("Backend API", "1.0.0", opts.basePath, _definition),
|
|
||||||
app,
|
|
||||||
paths: "./dist/open-api",
|
|
||||||
routesGlob: "**/*.{ts,js}",
|
|
||||||
routesIndexFileRegExp: /(?:index)?\.[tj]s$/,
|
|
||||||
dependencies: {
|
|
||||||
_dispatcher,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
app.use(((err, req, res, next) => {
|
|
||||||
res.status(err.status).json(err);
|
|
||||||
}) as express.ErrorRequestHandler);
|
|
||||||
|
|
||||||
const server = app.listen(opts.port);
|
|
||||||
|
|
||||||
const accessor = getBackendAccesors(app);
|
|
||||||
|
|
||||||
if (options.logger) {
|
|
||||||
options.logger.info(
|
|
||||||
"Server Running on http://localhost:" +
|
|
||||||
opts.port.toString() +
|
|
||||||
opts.basePath
|
|
||||||
);
|
|
||||||
options.logger.info(
|
|
||||||
"API Documentation available on http://localhost:" +
|
|
||||||
opts.port.toString() +
|
|
||||||
opts.basePath +
|
|
||||||
"/api-docs"
|
|
||||||
);
|
|
||||||
options.logger.debug("Checkout http://localhost:3000/docs");
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
app,
|
|
||||||
// Accessor for the Server
|
|
||||||
accessor,
|
|
||||||
// Function to extract the Definitions.
|
|
||||||
definitionUri: opts.basePath + "/api-docs",
|
|
||||||
// Function to Close the Server
|
|
||||||
close() {
|
|
||||||
server.close();
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
4529
package-lock.json
generated
4529
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
32
package.json
32
package.json
@ -1,27 +1,19 @@
|
|||||||
{
|
{
|
||||||
"name": "nope",
|
"name": "nope",
|
||||||
"version": "1.0.1",
|
"version": "1.0.7",
|
||||||
"description": "NoPE Runtime",
|
"description": "NoPE Runtime for Nodejs. For Browser-Support please use nope-browser",
|
||||||
"browser": "build/nope.js",
|
|
||||||
"main": "dist/index.nodejs.js",
|
|
||||||
"files": [
|
"files": [
|
||||||
"build",
|
"dist-nodejs/**/*",
|
||||||
"dist",
|
"lib/**/*",
|
||||||
"node_modules",
|
"bin/*"
|
||||||
"README.md",
|
|
||||||
"package.json"
|
|
||||||
],
|
],
|
||||||
"bin": {
|
|
||||||
"nope-js": "./bin/nope"
|
|
||||||
},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "mocha",
|
"test": "mocha",
|
||||||
"compile-nodejs": "tsc -p ./tsconfig.json",
|
"compile-nodejs": "tsc -p ./tsconfig.json",
|
||||||
"compile": "tsc -p ./tsconfig.browser.json",
|
"compile-browser": "tsc -p ./tsconfig.browser.json",
|
||||||
"build": "npx webpack -c webpack-typescript.config.js",
|
"build": "npx webpack -c webpack-typescript.config.js",
|
||||||
"doc": "npx jsdoc ./dist/**/* -d docs",
|
"doc": "npx jsdoc ./dist/**/* -d docs",
|
||||||
"dev": "NODE_OPTIONS='--inspect' next dev",
|
"start": "node ./dist/cli/repl.js",
|
||||||
"start": "node ./dist/lib/cli/nope.js",
|
|
||||||
"prettier-format": "run-script-os",
|
"prettier-format": "run-script-os",
|
||||||
"prettier-format:win32": "prettier \"./lib/**/*.ts\" --write",
|
"prettier-format:win32": "prettier \"./lib/**/*.ts\" --write",
|
||||||
"prettier-format:darwin:linux": "prettier 'lib/**/*.ts' --write",
|
"prettier-format:darwin:linux": "prettier 'lib/**/*.ts' --write",
|
||||||
@ -60,7 +52,6 @@
|
|||||||
"mathjs": "^10.0.2",
|
"mathjs": "^10.0.2",
|
||||||
"mqtt": "^4.3.4",
|
"mqtt": "^4.3.4",
|
||||||
"mqtt-pattern": "^1.2.0",
|
"mqtt-pattern": "^1.2.0",
|
||||||
"next": "^12.0.7",
|
|
||||||
"npm": "^8.3.0",
|
"npm": "^8.3.0",
|
||||||
"npx": "^10.2.2",
|
"npx": "^10.2.2",
|
||||||
"reflect-metadata": "^0.1.13",
|
"reflect-metadata": "^0.1.13",
|
||||||
@ -74,11 +65,10 @@
|
|||||||
"websocket-stream": "^5.5.2"
|
"websocket-stream": "^5.5.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/preset-typescript": "^7.16.7",
|
|
||||||
"@types/async": "^3.2.12",
|
"@types/async": "^3.2.12",
|
||||||
"@types/chai": "^4.3.0",
|
"@types/chai": "^4.3.0",
|
||||||
"@types/lodash": "^4.14.178",
|
"@types/lodash": "^4.14.178",
|
||||||
"@types/node": "^17.0.8",
|
"@types/node": "^17.0.9",
|
||||||
"@types/socket.io": "^3.0.1",
|
"@types/socket.io": "^3.0.1",
|
||||||
"@types/socket.io-client": "^1.4.36",
|
"@types/socket.io-client": "^1.4.36",
|
||||||
"chai": "^4.3.4",
|
"chai": "^4.3.4",
|
||||||
@ -96,5 +86,9 @@
|
|||||||
"typescript": "^4.5.4",
|
"typescript": "^4.5.4",
|
||||||
"webpack": "^4.46.0",
|
"webpack": "^4.46.0",
|
||||||
"webpack-cli": "^4.8.0"
|
"webpack-cli": "^4.8.0"
|
||||||
}
|
},
|
||||||
|
"bin": {
|
||||||
|
"nope-js": "./bin/nope"
|
||||||
|
},
|
||||||
|
"main": "dist-nodejs/index.nodejs.js"
|
||||||
}
|
}
|
99
package.json.bak
Normal file
99
package.json.bak
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"name": "nope",
|
||||||
|
"version": "1.0.3",
|
||||||
|
"description": "NoPE Runtime for Nodejs. For Browser-Support please use nope-browser",
|
||||||
|
"browser": "build/nope.js",
|
||||||
|
"main": "dist-nodejs/index.nodejs.js",
|
||||||
|
"files": [
|
||||||
|
"build/**/*",
|
||||||
|
"dist-nodejs/**/*",
|
||||||
|
"lib/**/*",
|
||||||
|
"bin/*"
|
||||||
|
],
|
||||||
|
"bin": {
|
||||||
|
"nope-js": "./bin/nope"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "mocha",
|
||||||
|
"compile-nodejs": "tsc -p ./tsconfig.json",
|
||||||
|
"compile": "tsc -p ./tsconfig.browser.json",
|
||||||
|
"build": "npx webpack -c webpack-typescript.config.js",
|
||||||
|
"doc": "npx jsdoc ./dist/**/* -d docs",
|
||||||
|
"dev": "NODE_OPTIONS='--inspect' next dev",
|
||||||
|
"start": "node ./dist/lib/cli/nope.js",
|
||||||
|
"prettier-format": "run-script-os",
|
||||||
|
"prettier-format:win32": "prettier \"./lib/**/*.ts\" --write",
|
||||||
|
"prettier-format:darwin:linux": "prettier 'lib/**/*.ts' --write",
|
||||||
|
"prettier-format:default": "prettier 'lib/**/*.ts' --write",
|
||||||
|
"prettier-watch": "run-script-os",
|
||||||
|
"prettier-watch:win32": "onchange \"lib/**/*.ts\" -- prettier --write {{changed}}",
|
||||||
|
"prettier-watch:darwin:linux": "onchange 'lib/**/*.ts' -- prettier --write {{changed}}",
|
||||||
|
"prettier-watch:default": "onchange 'lib/**/*.ts' -- prettier --write {{changed}}"
|
||||||
|
},
|
||||||
|
"mocha": {
|
||||||
|
"reporter": "spec",
|
||||||
|
"spec": "dist/**/*.spec.js"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://git.zema.de/tfs/ZISS/_git/nope-js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "Martin Karkowski",
|
||||||
|
"license": "MIT",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://git.zema.de/tfs/ZISS/_git/nope-js/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://git.zema.de/tfs/ZISS/_git/nope-js#readme",
|
||||||
|
"dependencies": {
|
||||||
|
"async": "^3.2.2",
|
||||||
|
"comment-parser": "^1.3.0",
|
||||||
|
"cors": "^2.8.5",
|
||||||
|
"handlebars": "^4.7.7",
|
||||||
|
"inquirer": "^8.2.0",
|
||||||
|
"inquirer-fuzzy-path": "^2.3.0",
|
||||||
|
"inquirer-search-list": "^1.2.6",
|
||||||
|
"inversify": "^6.0.1",
|
||||||
|
"js-logger": "^1.6.1",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
|
"mathjs": "^10.0.2",
|
||||||
|
"mqtt": "^4.3.4",
|
||||||
|
"mqtt-pattern": "^1.2.0",
|
||||||
|
"next": "^12.0.7",
|
||||||
|
"npm": "^8.3.0",
|
||||||
|
"npx": "^10.2.2",
|
||||||
|
"reflect-metadata": "^0.1.13",
|
||||||
|
"run-script-os": "^1.1.6",
|
||||||
|
"rxjs": "^7.5.1",
|
||||||
|
"socket.io": "^4.4.1",
|
||||||
|
"socket.io-client": "^4.4.1",
|
||||||
|
"ts-morph": "^13.0.2",
|
||||||
|
"typescript-json-schema": "^0.52.0",
|
||||||
|
"uuid": "^8.3.2",
|
||||||
|
"websocket-stream": "^5.5.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/preset-typescript": "^7.16.7",
|
||||||
|
"@types/async": "^3.2.12",
|
||||||
|
"@types/chai": "^4.3.0",
|
||||||
|
"@types/lodash": "^4.14.178",
|
||||||
|
"@types/node": "^17.0.8",
|
||||||
|
"@types/socket.io": "^3.0.1",
|
||||||
|
"@types/socket.io-client": "^1.4.36",
|
||||||
|
"chai": "^4.3.4",
|
||||||
|
"dts-bundle": "^0.7.3",
|
||||||
|
"dts-bundle-webpack": "^1.0.2",
|
||||||
|
"eslint": "^8.6.0",
|
||||||
|
"eslint-config-prettier": "^8.3.0",
|
||||||
|
"eslint-plugin-import": "^2.25.4",
|
||||||
|
"eslint-plugin-prettier": "^4.0.0",
|
||||||
|
"mocha": "^9.1.3",
|
||||||
|
"npm-check-updates": "^12.1.0",
|
||||||
|
"onchange": "^7.1.0",
|
||||||
|
"prettier": "2.5.1",
|
||||||
|
"typedoc": "^0.22.10",
|
||||||
|
"typescript": "^4.5.4",
|
||||||
|
"webpack": "^4.46.0",
|
||||||
|
"webpack-cli": "^4.8.0"
|
||||||
|
}
|
||||||
|
}
|
@ -12,15 +12,13 @@
|
|||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"noFallthroughCasesInSwitch": false,
|
"noFallthroughCasesInSwitch": false,
|
||||||
"noImplicitReturns": true,
|
"noImplicitReturns": true,
|
||||||
"outDir": "./dist",
|
"outDir": "./dist-browser",
|
||||||
"pretty": false,
|
"pretty": false,
|
||||||
"removeComments": true,
|
"removeComments": true,
|
||||||
"rootDir": "./",
|
|
||||||
"stripInternal": true,
|
"stripInternal": true,
|
||||||
"downlevelIteration": true,
|
"downlevelIteration": true,
|
||||||
"noImplicitAny": false,
|
"noImplicitAny": false,
|
||||||
"declaration": true,
|
"declaration": true,
|
||||||
"noEmitOnError": true
|
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"lib"
|
"lib"
|
||||||
@ -28,6 +26,7 @@
|
|||||||
"exclude": [
|
"exclude": [
|
||||||
"node_modules",
|
"node_modules",
|
||||||
"temp",
|
"temp",
|
||||||
"dist"
|
"dist-nodejs",
|
||||||
|
"dist-browser"
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -12,7 +12,7 @@
|
|||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"noFallthroughCasesInSwitch": false,
|
"noFallthroughCasesInSwitch": false,
|
||||||
"noImplicitReturns": true,
|
"noImplicitReturns": true,
|
||||||
"outDir": "./dist",
|
"outDir": "./dist-nodejs",
|
||||||
"pretty": false,
|
"pretty": false,
|
||||||
"removeComments": false,
|
"removeComments": false,
|
||||||
"stripInternal": true,
|
"stripInternal": true,
|
||||||
@ -32,6 +32,7 @@
|
|||||||
"exclude": [
|
"exclude": [
|
||||||
"node_modules",
|
"node_modules",
|
||||||
"temp",
|
"temp",
|
||||||
"dist"
|
"dist-nodejs",
|
||||||
|
"dist-browser"
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -3,12 +3,12 @@ const DtsBundleWebpack = require("dts-bundle-webpack");
|
|||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
mode: "production",
|
mode: "production",
|
||||||
entry: path.resolve(__dirname, "dist", "index.browser.js"),
|
entry: path.resolve(__dirname, "dist-browser", "index.browser.js"),
|
||||||
devtool: "inline-source-map",
|
devtool: "inline-source-map",
|
||||||
output: {
|
output: {
|
||||||
path: path.resolve(__dirname, "build"),
|
path: path.resolve(__dirname, "build"),
|
||||||
filename: "nope.js",
|
filename: "nope.js",
|
||||||
library: "nope_browser",
|
library: "nope-browser",
|
||||||
libraryTarget: "commonjs2",
|
libraryTarget: "commonjs2",
|
||||||
},
|
},
|
||||||
// resolve: {
|
// resolve: {
|
||||||
@ -16,8 +16,8 @@ module.exports = {
|
|||||||
// },
|
// },
|
||||||
plugins: [
|
plugins: [
|
||||||
new DtsBundleWebpack({
|
new DtsBundleWebpack({
|
||||||
name: "nope_browser",
|
name: "nope-browser",
|
||||||
main: path.resolve(__dirname, "dist", "index.browser.d.ts"),
|
main: path.resolve(__dirname, "dist-browser", "index.browser.d.ts"),
|
||||||
baseDir: path.resolve(__dirname),
|
baseDir: path.resolve(__dirname),
|
||||||
out: path.resolve(__dirname, "build", "nope.d.ts"),
|
out: path.resolve(__dirname, "build", "nope.d.ts"),
|
||||||
// baseDir: path.resolve(__dirname, "dist"),
|
// baseDir: path.resolve(__dirname, "dist"),
|
||||||
|
64
wiki/00-Getting-Started.md
Normal file
64
wiki/00-Getting-Started.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Getting started
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation:
|
||||||
|
|
||||||
|
### Using https://npm.zema.de/
|
||||||
|
|
||||||
|
Use the following code: `npm --registry https://npm.zema.de/ install nope`
|
||||||
|
|
||||||
|
### Use this Libary locally:
|
||||||
|
|
||||||
|
1. Clone the repo: `git clone -b lib https://git.zema.de/tfs/ZISS/_git/nope-js`
|
||||||
|
2. Install the depencies by typing `npm install`
|
||||||
|
3. Go to your desired folder and create a local link `npm link` _``path to the cloned package`_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
The Documentation is contained in here. Alternative you can create a Documentation using `npm run-script doc`. This will create the Documentation under `docs`.
|
||||||
|
|
||||||
|
You'll additional help under `wiki`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Contribute
|
||||||
|
|
||||||
|
To contribute to the Project, please perform the following steps:
|
||||||
|
|
||||||
|
0. Perform the Steps in `PREPARE_VSCODE.md`
|
||||||
|
1. Assign a new Version under `contribute/VERSION`
|
||||||
|
2. Fillout the Change Log in the `CHANGELOG.md`
|
||||||
|
3. Implement Your Changes and **Test-Cases**:
|
||||||
|
|
||||||
|
1. For Testing the Library [`mocha`](https://mochajs.org/) is used (click [here](https://mochajs.org/) for more details).
|
||||||
|
2. name your tests `*.spec.ts`
|
||||||
|
3. run the tests with `npm test`
|
||||||
|
|
||||||
|
4. If the Test are successfully proceed, otherwise perform your Bugfixes
|
||||||
|
5. Run the Code-Formater: `npm run-script prettier-format`
|
||||||
|
6. Push the Code to the Git
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Commiting Changes
|
||||||
|
|
||||||
|
For simpler usage, you can use the following helpers:
|
||||||
|
|
||||||
|
- `00-compile.bat`, which will compile the library for the browser and nodejs
|
||||||
|
- `10-push-to-npm.bat`, which will push the library to the npm registry.
|
||||||
|
|
||||||
|
#### Browser
|
||||||
|
|
||||||
|
1. Compile the code: `npm run-script compile-browser`
|
||||||
|
2. Build the Library; `npm run-script build`
|
||||||
|
3. Switch the Package Defintion to `browser` by `node ./contribute/toBrowser.js`
|
||||||
|
4. Publish the Code to `https://npm.zema.de/` using `npm publish --registry https://npm.zema.de/`
|
||||||
|
|
||||||
|
#### Nodejs
|
||||||
|
|
||||||
|
1. Compile the code: `npm run-script compile-nodejs`
|
||||||
|
2. Switch the Package Defintion to `nodejs` by `node ./contribute/toNodejs.js`
|
||||||
|
3. Publish the Code to `https://npm.zema.de/` using `npm publish --registry https://npm.zema.de/`
|
Loading…
Reference in New Issue
Block a user