Comparing version 2.0.1 to 2.0.2
@@ -5,2 +5,8 @@ # Changelog | ||
## [2.0.2][] - 2021-01-26 | ||
- Move utils to metautil | ||
- Implement schemas for structures and scalars | ||
- Fixed path separators to support windows | ||
## [2.0.1][] - 2021-01-09 | ||
@@ -7,0 +13,0 @@ |
@@ -8,6 +8,6 @@ 'use strict'; | ||
const security = require('./security.js'); | ||
const { makePrivate } = require('./utils.js'); | ||
const EMPTY_CONTEXT = Object.freeze({}); | ||
const MODULE = 2; | ||
const win = process.platform === 'win32'; | ||
@@ -125,4 +125,4 @@ class Error extends global.Error { | ||
const rel = fileName.substring(this.apiPath.length + 1); | ||
if (!rel.includes('/')) return; | ||
const [interfaceName, methodFile] = rel.split('/'); | ||
if (!rel.includes(path.sep)) return; | ||
const [interfaceName, methodFile] = rel.split(path.sep); | ||
if (!methodFile.endsWith('.js')) return; | ||
@@ -206,3 +206,3 @@ const name = path.basename(methodFile, '.js'); | ||
if (typeof exports === 'function') exports = { method: exports }; | ||
iface = makePrivate(exports); | ||
iface = metautil.makePrivate(exports); | ||
} finally { | ||
@@ -222,3 +222,4 @@ this.addModule(namespaces, exports, iface); | ||
async loadFile(filePath) { | ||
const key = filePath.substring(this.staticPath.length); | ||
let key = filePath.substring(this.staticPath.length); | ||
if (win) key = metautil.replace(key, path.sep, '/'); | ||
try { | ||
@@ -235,3 +236,4 @@ const data = await fsp.readFile(filePath); | ||
async loadResource(filePath) { | ||
const key = filePath.substring(this.resourcesPath.length); | ||
let key = filePath.substring(this.resourcesPath.length); | ||
if (win) key = metautil.replace(key, path.sep, '/'); | ||
try { | ||
@@ -238,0 +240,0 @@ const data = await fsp.readFile(filePath); |
{ | ||
"name": "impress", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"author": "Timur Shemsedinov <timur.shemsedinov@gmail.com>", | ||
@@ -61,3 +61,3 @@ "description": "Impress application server for Node.js and Metarhia private cloud", | ||
"dependencies": { | ||
"metautil": "^3.0.0", | ||
"metautil": "^3.1.0", | ||
"@metarhia/config": "^2.0.0", | ||
@@ -69,5 +69,5 @@ "metacom": "1.1.0", | ||
"devDependencies": { | ||
"eslint": "^7.17.0", | ||
"eslint": "^7.18.0", | ||
"eslint-config-metarhia": "^7.0.1", | ||
"eslint-config-prettier": "^7.1.0", | ||
"eslint-config-prettier": "^7.2.0", | ||
"eslint-plugin-import": "^2.22.1", | ||
@@ -74,0 +74,0 @@ "eslint-plugin-impress": "^2.3.1", |
@@ -27,9 +27,9 @@ [![impress logo](http://habrastorage.org/files/d67/1b3/be5/d671b3be591d47a9bd10fe857e9d5319.png)](https://github.com/metarhia/impress) | ||
- Applied code need to be simple and secure, so we use code sandboxing with v8 | ||
- Applied code needs to be simple and secure, so we use code sandboxing with v8 | ||
isolated contexts, worker threads and minimal trusted npm dependencies; | ||
- Domain code need to be separated from system code; so we use DDE, layered | ||
- Domain code needs to be separated from system code; so we use DDE, layered | ||
(onion) architecture, DI, SOLID:DIP principle and contract-based approach; | ||
- Impress supports both stateful applications with RPC and client-session | ||
sticky to servers; microservices, centralized and distributed architectire; | ||
- No I/O is faster even then async I/O, so we hold state in memory and use | ||
sticky to servers; microservices, centralized and distributed architecture; | ||
- No I/O is faster even than async I/O, so we hold state in memory and use | ||
lazy I/O for persistent storage; | ||
@@ -40,7 +40,7 @@ | ||
- Auto API routing, just create endpoint files as an async js lambda function; | ||
- API code live reload with file system watch (when files changes on disk); | ||
- API code live reload with file system watch (when files change on disk); | ||
- Graceful shutdown and application state recovery after reload; | ||
- Minimum code size and dependencies; | ||
- Can scale on multiple threads and servers; | ||
- Code sandboxing for security, dependency injection and context isolation; | ||
- Code sandboxing for security, dependency injection, and context isolation; | ||
- Utilize multiple CPU cores and serve multiple ports with worker threads; | ||
@@ -54,3 +54,3 @@ - Inter-process communication and shared memory used for state management; | ||
- Database access layer for PostgreSQL and Relational db schemas; | ||
- Persistent sessions support with authentication, groups and anonymous; | ||
- Persistent sessions support with authentication, groups, and anonymous; | ||
- Multiple protocols: HTTP, HTTPS, WS, WSS; | ||
@@ -57,0 +57,0 @@ - Logging with buffering (lazy write) and rotation (keep logs N days); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
36372
822
Updatedmetautil@^3.1.0