Socket
Socket
Sign inDemoInstall

nodart

Package Overview
Dependencies
335
Maintainers
1
Versions
56
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 5.2.1 to 5.3.0

core/interfaces/common.ts

6

core/interfaces/index.ts

@@ -0,1 +1,2 @@

import * as common from "./common";
import * as app from "./app";

@@ -14,4 +15,7 @@ import * as cli from "./cmd";

import * as store from "./store";
import * as mutable from "./mutable";
import * as relationModel from "./relation_model";
export {
common,
app,

@@ -30,2 +34,4 @@ cli,

store,
mutable,
relationModel,
};

8

dist/core/interfaces/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.store = exports.session = exports.service = exports.router = exports.orm = exports.observer = exports.object = exports.http = exports.exception = exports.engine = exports.di = exports.cli = exports.app = void 0;
exports.relationModel = exports.mutable = exports.store = exports.session = exports.service = exports.router = exports.orm = exports.observer = exports.object = exports.http = exports.exception = exports.engine = exports.di = exports.cli = exports.app = exports.common = void 0;
const common = require("./common");
exports.common = common;
const app = require("./app");

@@ -30,2 +32,6 @@ exports.app = app;

exports.store = store;
const mutable = require("./mutable");
exports.mutable = mutable;
const relationModel = require("./relation_model");
exports.relationModel = relationModel;
//# sourceMappingURL=index.js.map

8

dist/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpExceptionHandler = exports.RuntimeException = exports.HttpException = exports.ExceptionLog = exports.ExceptionHandler = exports.Exception = exports.Observer = exports.ServiceFactory = exports.Service = exports.OrmSeeder = exports.OrmSeedSource = exports.OrmMigrator = exports.OrmMigrationSource = exports.Orm = exports.Model = exports.Engine = exports.Controller = exports.BaseController = exports.Session = exports.Router = exports.CashierService = exports.OrmService = exports.ModuleService = exports.HttpServiceAcceptor = exports.HttpService = exports.HttpResponder = exports.HttpFormData = exports.HttpClient = exports.HttpHandler = exports.BaseDependencyInterceptor = exports.DependencyInterceptor = exports.DIContainer = exports.State = exports.Store = exports.AppModuleFacade = exports.AppModule = exports.AppFactory = exports.AppLoader = exports.AppConfig = exports.AppExceptionResolve = exports.AppServiceManager = exports.AppEnv = exports.AppBuilder = exports.AppEmitter = exports.App = exports.loaders = exports.injects = exports.utils = exports.cli = exports.nodart = void 0;
exports.HttpFormDataLoader = exports.HttpClientLoader = exports.CommandLineLoader = exports.ExceptionTemplateLoader = exports.ExceptionLogLoader = exports.ExceptionHandlerLoader = exports.OrmLoader = exports.StaticLoader = exports.EngineLoader = exports.SessionLoader = exports.ServiceLoader = exports.StoreLoader = exports.ModelLoader = exports.ControllerLoader = exports.AppBuilderLoader = exports.RuntimeExceptionHandler = void 0;
exports.HttpException = exports.ExceptionLog = exports.ExceptionHandler = exports.Exception = exports.Observer = exports.ServiceFactory = exports.Service = exports.OrmSeeder = exports.OrmSeedSource = exports.OrmMigrator = exports.OrmMigrationSource = exports.Orm = exports.Mutable = exports.RelationModel = exports.Model = exports.Engine = exports.Controller = exports.BaseController = exports.Session = exports.Router = exports.CashierService = exports.OrmService = exports.ModuleService = exports.HttpServiceAcceptor = exports.HttpService = exports.HttpResponder = exports.HttpFormData = exports.HttpClient = exports.HttpHandler = exports.BaseDependencyInterceptor = exports.DependencyInterceptor = exports.DIContainer = exports.State = exports.Store = exports.AppModuleFacade = exports.AppModule = exports.AppFactory = exports.AppLoader = exports.AppConfig = exports.AppExceptionResolve = exports.AppServiceManager = exports.AppEnv = exports.AppBuilder = exports.AppEmitter = exports.App = exports.loaders = exports.injects = exports.utils = exports.cli = exports.nodart = void 0;
exports.HttpFormDataLoader = exports.HttpClientLoader = exports.CommandLineLoader = exports.ExceptionTemplateLoader = exports.ExceptionLogLoader = exports.ExceptionHandlerLoader = exports.OrmLoader = exports.StaticLoader = exports.EngineLoader = exports.SessionLoader = exports.ServiceLoader = exports.StoreLoader = exports.ModelLoader = exports.ControllerLoader = exports.AppBuilderLoader = exports.RuntimeExceptionHandler = exports.HttpExceptionHandler = exports.RuntimeException = void 0;
const app_1 = require("./core/app");

@@ -37,2 +37,6 @@ Object.defineProperty(exports, "App", { enumerable: true, get: function () { return app_1.App; } });

Object.defineProperty(exports, "Model", { enumerable: true, get: function () { return model_1.Model; } });
const relation_model_1 = require("./core/relation_model");
Object.defineProperty(exports, "RelationModel", { enumerable: true, get: function () { return relation_model_1.RelationModel; } });
const mutable_1 = require("./core/mutable");
Object.defineProperty(exports, "Mutable", { enumerable: true, get: function () { return mutable_1.Mutable; } });
const orm_1 = require("./core/orm");

@@ -39,0 +43,0 @@ Object.defineProperty(exports, "Orm", { enumerable: true, get: function () { return orm_1.Orm; } });

@@ -25,2 +25,4 @@ import {

import { Model } from "./core/model";
import { RelationModel } from "./core/relation_model";
import { Mutable } from "./core/mutable";
import {

@@ -109,2 +111,4 @@ Orm,

Model,
RelationModel,
Mutable,
Orm,

@@ -111,0 +115,0 @@ OrmMigrationSource,

{
"name": "nodart",
"version": "5.2.1",
"version": "5.3.0",
"description": "A complete framework for creating microservices and large-scale server-side applications for businesses",

@@ -18,2 +18,3 @@ "repository": {

"format": "prettier --write .",
"format:readme": "prettier --write ./README.md",
"migrate@sources:up": "node cmd migrate all-source-up",

@@ -20,0 +21,0 @@ "migrate@sources:down": "node cmd migrate all-source-down",

@@ -205,7 +205,239 @@ <p align="center" dir="auto">

## SPECIFYING LOADERS
You can change the basic behavior of class loaders by specifying in the base project configuration
```typescript
import { App, ControllerLoader, nodart } from "nodart";
class ControllerLoaderOverride extends ControllerLoader {
protected _pathSuffix = "Controller";
}
const config = <nodart.app.AppConfigInterface>{
loaders: {
controller: ControllerLoaderOverride,
},
};
new App(config);
```
---
### CREATION OF CUSTOM SERVER
## RELATION MODEL
> An abstract class called `RelationModel` enhances the functionality of the standard query builder. The system by default use the well-liked `Knex` query builder: https://knexjs.org/guide/
> Using pre-written database queries, `RelationModel` enables you to create query blanks and chain them together into a series of inquiries. In this manner, retrieving a list or a single object from the database does not require you to always develop new methods in the data model.
### **USAGE SAMPLE**:
### `@/models/Book.ts`:
```typescript
import { RelationModel } from "nodart";
export interface IBook {
id: number;
author_id: number;
name: string;
meta_keywords: string;
meta_description: string;
}
export class Book extends RelationModel {
declare model: IBook;
get table() {
return "books";
}
static get table() {
return "books";
}
statements = (query: this["query"]) => ({
author: (author_id: number) =>
query.where("author_id", author_id) as Promise<IBook>,
});
}
```
### `@/controllers/BooksController.ts`:
```typescript
import { Controller, nodart } from "nodart";
import { Book, IBook } from "@/models/Book";
const statuses = nodart.http.HTTP_STATUS;
export class BooksController extends Controller {
model = {
Book: {} as Book,
};
declare book: Book;
init() {
this.book = this.model.Book;
}
/**
@returns: {Object<IBook>}
*/
async get(id: number) {
// Be aware to use the "result" property
// at the end of the call chain.
return await this.book.use.get({ id }).result;
}
/**
@returns: {Array<IBook>}
*/
async list(author_id: number) {
// The "result" property is not required
// after "on" property.
return await this.book.use.list("id", "name").on.author(author_id);
}
async patch(id: number) {
const { name } = this.http.data;
const result = await this.book.use.set({ name }).at({ id }).result;
return result ? { ok: true } : this.http.throw(statuses.NOT_FOUND);
}
async post() {
const data = this.http.data as IBook;
const result = await this.book.use.add(data).result; // Array<number>;
return { ok: !!result?.[0] };
}
async delete(id: number) {
const result = await this.book.use.delete({ id }).result;
return { ok: !!result };
}
}
```
---
## DATA MUTABLE
> `nodart.mutable.MutableInterface` is an interface that provides a property with methods to cast the source data to the desired data model.
### **USAGE SAMPLE**:
### `@/models/Book.ts`:
```typescript
import { RelationModel } from "nodart";
export interface IBook {
id: number;
author_id: number;
name: string;
meta_keywords: string;
meta_description: string;
}
export interface IBookAPI
extends Omit<IBook, "meta_keywords" | "meta_description"> {
meta: {
description: string;
keywords: string;
};
}
/**
RelationModel implements nodart.mutable.MutableInterface
*/
export class Book extends RelationModel {
declare model: IBook;
get table() {
return "books";
}
static get table() {
return "books";
}
readonly mutable = {
book: (data: IBook): [Partial<IBookAPI>, (keyof IBook)[]] => [
// This data will be assigned to the source data:
{
meta: {
description: data.meta_description,
keywords: data.meta_keywords,
},
},
// This optional part specifies which properties
// will be excluded from the source data:
["meta_description", "meta_keywords"],
],
};
statements = (query: this["query"]) => ({
author: (author_id: number) =>
query.where("author_id", author_id) as Promise<IBook>,
});
}
```
### `@/controllers/BooksController.ts`:
```typescript
import { Controller } from "nodart";
import { Book } from "@/models/Book";
export class BooksController extends Controller {
model = {
Book: {} as Book,
};
declare book: Book;
init() {
this.book = this.model.Book;
}
/**
@returns: {Object<IBookAPI>} -> {
id: number;
author_id: number;
name: string;
meta: {
description: string;
keywords: string;
}
}
*/
async get(id: number) {
const data = await this.book.use.get({ id }).result;
return this.book.mutate.get.book(data);
}
/**
@returns: {Array<IBookAPI>}
*/
async list(author_id: number) {
const data = await this.book.use.list().on.author(author_id);
return this.book.mutate.list.book(data);
}
}
```
---
## CREATION OF CUSTOM SERVER
```typescript
new App({ ...config }).init().then(async (app) => {

@@ -251,22 +483,2 @@ const server = await app.serve(3000, "https", "127.0.0.1", () => {

## SPECIFYING LOADERS
You can change the basic behavior of class loaders by specifying in the base project configuration
```typescript
import { App, ControllerLoader, nodart } from "nodart";
class ControllerLoaderOverride extends ControllerLoader {
protected _pathSuffix = "Controller";
}
const config = <nodart.app.AppConfigInterface>{
loaders: {
controller: ControllerLoaderOverride,
},
};
new App(config);
```
---

@@ -273,0 +485,0 @@

@@ -11,3 +11,3 @@ {

"dependencies": {
"nodart": "^5.2.1"
"nodart": "^5.3.0"
},

@@ -14,0 +14,0 @@ "devDependencies": {

@@ -12,3 +12,3 @@ {

"dependencies": {
"nodart": "^5.2.1"
"nodart": "^5.3.0"
},

@@ -15,0 +15,0 @@ "devDependencies": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc