New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

kamboja

Package Overview
Dependencies
Maintainers
1
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kamboja - npm Package Compare versions

Comparing version 0.0.1-21 to 0.0.1-22

8

lib/dts/core.d.ts

@@ -115,4 +115,5 @@ import { MethodMetaData, ClassMetaData } from "kecubung";

export interface MetaDataStorage {
get(classId: string): Kecubung.ClassMetaData;
getByCategory(category: MetaDataLoaderCategory): Kecubung.ParentMetaData[];
get(classId: string): QualifiedClassMetaData;
getFiles(category: MetaDataLoaderCategory): Kecubung.ParentMetaData[];
getClasses(category: MetaDataLoaderCategory): QualifiedClassMetaData[];
}

@@ -218,1 +219,4 @@ export interface Engine {

export declare function getRouteDetail(info: RouteInfo): string;
export interface QualifiedClassMetaData extends Kecubung.ClassMetaData {
qualifiedClassName: string;
}

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

import { MetaDataLoaderCategory, IdentifierResolver, MetaDataStorage } from "../core";
import { MetaDataLoaderCategory, IdentifierResolver, MetaDataStorage, QualifiedClassMetaData } from "../core";
import * as Kecubung from "kecubung";

@@ -6,8 +6,10 @@ export declare class MetaDataLoader implements MetaDataStorage {

private pathResolver;
private flatStorage;
private storage;
constructor(idResolver: IdentifierResolver);
load(path: string | string[], category: MetaDataLoaderCategory): void;
private getFiles(paths, category);
getByCategory(category: MetaDataLoaderCategory): Kecubung.ParentMetaData[];
get(classId: string): Kecubung.ClassMetaData;
private getFilePaths(paths, category);
getFiles(category: MetaDataLoaderCategory): Kecubung.ParentMetaData[];
getClasses(category: MetaDataLoaderCategory): QualifiedClassMetaData[];
get(classId: string): QualifiedClassMetaData;
}

@@ -9,4 +9,4 @@ export declare class QualifiedName {

isValid(): boolean;
equals(qualifiedName: any): boolean;
equals(qualifiedName: string | QualifiedName): boolean;
isArray(): boolean;
}

@@ -94,3 +94,3 @@ "use strict";

this.storage.load(this.options.modelPath, "Model");
var routeInfos = this.generateRoutes(this.storage.getByCategory("Controller"));
var routeInfos = this.generateRoutes(this.storage.getFiles("Controller"));
if (routeInfos.length == 0)

@@ -97,0 +97,0 @@ throw new Error("Fatal error");

@@ -9,2 +9,25 @@ "use strict";

var Babylon = require("babylon");
function flatten(metaList, fileName) {
var result = [];
metaList.forEach(function (x) {
switch (x.type) {
case "Module":
var file_1 = x;
var clazz = flatten(file_1.children, fileName);
if (clazz && clazz.length > 0) {
clazz.forEach(function (cls) {
cls.qualifiedClassName = file_1.name + "." + cls.qualifiedClassName;
});
result.push.apply(result, clazz);
}
break;
case "Class":
var curClass = x;
curClass.qualifiedClassName = curClass.name + ", " + fileName;
result.push(curClass);
break;
}
});
return result;
}
var MetaDataLoader = (function () {

@@ -14,3 +37,4 @@ function MetaDataLoader(idResolver) {

this.pathResolver = new path_resolver_1.PathResolver();
this.storage = [];
this.flatStorage = {};
this.storage = {};
}

@@ -20,5 +44,7 @@ MetaDataLoader.prototype.load = function (path, category) {

if (typeof path == "string")
files = this.getFiles([path], category);
files = this.getFilePaths([path], category);
else
files = this.getFiles(path, category);
files = this.getFilePaths(path, category);
var flatResult = [];
var result = [];
for (var _i = 0, files_1 = files; _i < files_1.length; _i++) {

@@ -30,6 +56,9 @@ var file = files_1[_i];

var meta = Kecubung.transform("ASTree", ast, fileName);
this.storage.push({ meta: meta, category: category });
flatResult.push.apply(flatResult, flatten(meta.children, meta.name));
result.push(meta);
}
this.flatStorage[category] = flatResult;
this.storage[category] = result;
};
MetaDataLoader.prototype.getFiles = function (paths, category) {
MetaDataLoader.prototype.getFilePaths = function (paths, category) {
var result = [];

@@ -54,33 +83,17 @@ var _loop_1 = function (path) {

};
MetaDataLoader.prototype.getByCategory = function (category) {
return this.storage.filter(function (x) { return x.category == category; })
.map(function (x) { return x.meta; });
MetaDataLoader.prototype.getFiles = function (category) {
return this.storage[category];
};
MetaDataLoader.prototype.getClasses = function (category) {
return this.flatStorage[category];
};
MetaDataLoader.prototype.get = function (classId) {
var qualifiedName = this.idResolver.getClassName(classId);
var classInfo = new qualified_name_1.QualifiedName(qualifiedName);
var file = this.storage
.map(function (x) { return x.meta; })
.filter(function (x) { return x.name == classInfo.fileName; })[0];
if (!file)
return;
var result = file;
var found = false;
for (var _i = 0, _a = classInfo.className.split("."); _i < _a.length; _i++) {
var className = _a[_i];
for (var _b = 0, _c = result.children; _b < _c.length; _b++) {
var item = _c[_b];
if (item.name == className) {
found = true;
if (item.type == "Class") {
return item;
}
else {
result = item;
break;
}
}
}
if (!found)
return;
var request = new qualified_name_1.QualifiedName(classId);
for (var key in this.flatStorage) {
var result = this.flatStorage[key].filter(function (x) {
var qualified = new qualified_name_1.QualifiedName(x.qualifiedClassName);
return request.equals(qualified);
});
if (result.length > 0)
return result[0];
}

@@ -87,0 +100,0 @@ };

@@ -28,3 +28,7 @@ "use strict";

QualifiedName.prototype.equals = function (qualifiedName) {
var qualified = new QualifiedName(qualifiedName);
var qualified;
if (typeof qualifiedName == "string")
qualified = new QualifiedName(qualifiedName);
else
qualified = qualifiedName;
return this.className === qualified.className

@@ -31,0 +35,0 @@ && this.fileName === qualified.fileName;

{
"name": "kamboja",
"version": "0.0.1-21",
"version": "0.0.1-22",
"description": "MVC Framework powered by TypeScript",

@@ -5,0 +5,0 @@ "main": "lib/source/index.js",

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