Socket
Socket
Sign inDemoInstall

@adonisjs/core

Package Overview
Dependencies
Maintainers
2
Versions
218
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adonisjs/core - npm Package Compare versions

Comparing version 1.1.0 to 1.2.0

build/src/Config/index.d.ts

36

build/src/Ignitor/index.d.ts

@@ -1,22 +0,34 @@

declare type PreloadFile = {
import { Ioc } from '@adonisjs/fold';
declare type PreloadNode = {
file: string;
intent: string;
optional: boolean;
intent?: 'ace' | 'http';
};
export declare class Ignitor {
private _intent;
private _baseDir;
private _rcPath;
appRoot: string;
directories: {
[key: string]: string;
[identifier: string]: string;
};
preloads: PreloadFile[];
autoloads: {
[alias: string]: string;
};
typescript: boolean;
ioc: Ioc;
preloads: PreloadNode[];
server: any;
private _intent;
constructor(appRoot: string);
private _require;
private _parseRcFile;
private _loadRcFile;
private _loadAppFile;
private _instantiateIoCContainer;
private _registerAutoloads;
private _bootProviders;
private _bindHelpers;
private _preloadFiles;
private _ensureIntent;
forAce(): this;
forHttpServer(): this;
start(): void;
private _bootstrap;
private _createHttp;
private _listen;
startHttpServer(serverCallback?: (handler: any) => any): Promise<void>;
}
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const lodash_1 = require("lodash");
const http_1 = require("http");
const utils_1 = require("@adonisjs/utils");
const fold_1 = require("@adonisjs/fold");
const Helpers_1 = require("../Helpers");
const DEFAULTS = {
directories: {
controllers: 'Controllers/Http',
models: 'Models',
listeners: 'Listeners',
exceptions: 'Exceptions',
typescript: false,
autoloads: {
App: './app',
},
preloads: [],
autoloads: {
app: 'App',
directories: {
config: './config',
public: './public',
database: './database',
migrations: './database/migrations',
seeds: './database/seeds',
resources: './resources',
views: './resources/views',
tmp: './tmp',
start: './start',
},
runtime: 'javascript',
};
class Ignitor {
constructor() {
this._baseDir = __dirname;
this._rcPath = path_1.join(this._baseDir, '.adonisrc.json');
this.directories = {};
this.preloads = [];
constructor(appRoot) {
this.appRoot = appRoot;
}
_require(filePath, optional = false) {
try {
return require(filePath);
return utils_1.tsRequire(filePath, this.typescript);
}
catch (error) {
if (['ENOENT', 'MODULE_NOT_FOUND'].indexOf(error.code) > -1 && optional) {
if (['MODULE_NOT_FOUND', 'ENOENT'].indexOf(error.code) > -1 && optional) {
return null;

@@ -36,31 +42,90 @@ }

}
_parseRcFile() {
const config = this._require(this._rcPath, true) || {};
this.directories = Object.assign(DEFAULTS.directories, config.directories);
this.preloads = Object.assign(DEFAULTS.preloads, config.preloads);
_loadRcFile() {
const rcFile = this._require(path_1.join(this.appRoot, '.adonisrc.json'), true) || {};
this.directories = lodash_1.merge({}, DEFAULTS.directories, rcFile.directories);
this.autoloads = rcFile.autoloads || DEFAULTS.autoloads;
this.typescript = rcFile.typescript || DEFAULTS.typescript;
this.preloads = rcFile.preloads || [];
}
_loadAppFile() {
const appFile = path_1.join(this.appRoot, this.directories.start, 'app');
const appExports = this._require(appFile);
const requiredExports = ['providers', 'aceProviders', 'commands'];
requiredExports.forEach((prop) => {
if (!appExports[prop]) {
throw new utils_1.Exception(`export \`${prop}\` from \`${this.directories.start}/app\` file`, 500, 'E_MISSING_APP_ESSENTIALS');
}
});
return appExports;
}
_instantiateIoCContainer() {
this.ioc = new fold_1.Ioc(false, this.typescript);
}
_registerAutoloads() {
Object.keys(this.autoloads).forEach((alias) => {
this.ioc.autoload(path_1.join(this.appRoot, this.autoloads[alias]), alias);
});
}
async _bootProviders() {
const registrar = new fold_1.Registrar(this.ioc);
const { providers, aceProviders, aliases } = this._loadAppFile();
const list = this._intent === 'ace' ? providers.concat(aceProviders) : providers;
const providersInstances = registrar.useProviders(list).register();
if (aliases) {
Object.keys(aliases).forEach((alias) => {
this.ioc.alias(aliases[alias], alias);
});
}
await registrar.boot(providersInstances);
}
_bindHelpers() {
this.ioc.singleton('Adonis/Src/Helpers', () => new Helpers_1.Helpers(this.appRoot, this.directories));
this.ioc.alias('Adonis/Src/Helpers', 'Helpers');
}
_preloadFiles() {
this.preloads
.filter((file) => !file.intent || file.intent === this._intent)
.forEach((file) => this._require(path_1.join(this._baseDir, file.file), file.optional));
.filter((node) => node.intent === this._intent || !node.intent)
.forEach((node) => this._require(path_1.join(this.appRoot, node.file), node.optional));
}
_ensureIntent() {
if (this._intent === undefined) {
throw new utils_1.Exception('Cannot start ignitor as intent is missing', 500, 'E_MISSING_IGNITOR_INTENT');
}
async _bootstrap() {
this._loadRcFile();
this._instantiateIoCContainer();
this._bindHelpers();
await this._bootProviders();
this._registerAutoloads();
this._preloadFiles();
}
forAce() {
this._intent = 'ace';
return this;
_createHttp(serverCallback) {
const server = this.ioc.use('Adonis/Src/Server');
const router = this.ioc.use('Adonis/Src/Route');
router.commit();
server.optimize();
const handler = server.handle.bind(server);
this.server = serverCallback ? serverCallback(handler) : http_1.createServer(server.handle.bind(server));
}
forHttpServer() {
_listen(port, host) {
return new Promise((resolve, reject) => {
this.server.listen(port, host, (error) => {
if (error) {
reject(error);
}
else {
resolve();
}
});
});
}
async startHttpServer(serverCallback) {
this._intent = 'http';
return this;
try {
await this._bootstrap();
this._createHttp(serverCallback);
await this._listen(process.env.PORT, process.env.HOST);
}
catch (error) {
console.log(error);
process.exit(1);
}
}
start() {
this._ensureIntent();
this._parseRcFile();
this._preloadFiles();
}
}
exports.Ignitor = Ignitor;

@@ -6,8 +6,23 @@ # Change Log

# 1.1.0 (2019-01-26)
# [1.2.0](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/compare/@adonisjs/core@1.1.0...@adonisjs/core@1.2.0) (2019-02-01)
### Bug Fixes
* **core:** fix failing test ([915dcff](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/915dcff))
* **core:** tests still failing ([2efbc17](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/2efbc17))
### Features
* **core:** initiate core package ([938af90](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/938af90))
* **core:** start implementing server and ignitor ([cda3f96](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/cda3f96))
* **core:** add config module ([f573603](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/f573603))
* **core:** add env class ([66aa52a](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/66aa52a))
* **core:** add ignitor module ([eeb3ce5](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/eeb3ce5))
* **helpers:** add helpers ([7bcdb3f](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/7bcdb3f))
* **middleware:** add middleware store class ([8edf0a8](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/8edf0a8))
* **middleware:** implement middleware store ([165a023](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/165a023))
### Reverts
* **core:** start from blank slate ([ecd2c87](https://github.com/adonisjs/adonis-framework/tree/master/packages/core/commit/ecd2c87))
{
"name": "@adonisjs/core",
"version": "1.1.0",
"description": "AdonisJs core package to run HTTP server",
"version": "1.2.0",
"description": "AdonisJs core package",
"main": "build/index.js",

@@ -20,3 +20,7 @@ "files": [

},
"keywords": [],
"keywords": [
"http",
"http-server",
"adonisjs"
],
"author": "virk",

@@ -29,10 +33,2 @@ "homepage": "https://adonisjs.com",

"license": "MIT",
"dependencies": {
"@adonisjs/request": "^1.1.4",
"@adonisjs/response": "^1.1.4",
"@adonisjs/router": "^1.2.0",
"@adonisjs/utils": "^1.2.0",
"co-compose": "^5.0.2",
"macroable": "^2.0.0"
},
"nyc": {

@@ -49,3 +45,17 @@ "exclude": [

},
"bugs": {
"url": "https://github.com/adonisjs/adonis-framework/issues"
},
"dependencies": {
"@adonisjs/request": "^1.1.5",
"@adonisjs/response": "^1.1.6",
"@adonisjs/router": "^1.4.0",
"@adonisjs/server": "^1.2.0",
"@adonisjs/utils": "^1.3.0",
"dotenv": "^6.2.0",
"lodash": "^4.17.11",
"require-all": "^3.0.0"
},
"devDependencies": {
"@adonisjs/fold": "5.0.1",
"clear-module": "^3.1.0",

@@ -55,3 +65,3 @@ "fs-extra": "^7.0.1",

},
"gitHead": "945c1d53feb454f666ca6e7a24fe1bafd21e98f1"
"gitHead": "63d674532353e511365b08ebd1129a042a631c50"
}
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc