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

@travetto/registry

Package Overview
Dependencies
Maintainers
1
Versions
296
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@travetto/registry - npm Package Compare versions

Comparing version 0.0.17 to 0.0.18

src/source/class-source.ts

3

package.json

@@ -9,2 +9,3 @@ {

"@types/lodash": "^4.14.106",
"farmhash": "^2.0.5",
"lodash": "^4.17.5"

@@ -20,3 +21,3 @@ },

"scripts": {},
"version": "0.0.17"
"version": "0.0.18"
}
export * from './service';
export * from './source';
export * from './model';

@@ -5,2 +5,4 @@ declare global {

__filename: string;
__hash: string;
__methodHashes?: { [key: string]: any };
}

@@ -7,0 +9,0 @@ }

export * from './registry';
export * from './class-source';
export * from './metadata';
export * from './root';
export * from './compiler-source';
export * from './root';
import { Registry } from './registry';
import { CompilerClassSource } from './compiler-source';
import { ChangeEvent } from './class-source';
import { ChangeEvent } from '../source';
import { Class } from '../model';

@@ -87,3 +86,3 @@ import * as _ from 'lodash';

onInstall(cls: Class, e: ChangeEvent) {
onInstall(cls: Class, e: ChangeEvent<Class>) {
if (this.pending.has(cls.__id) || this.pendingMethods.has(cls.__id)) {

@@ -99,3 +98,3 @@ const result = this.onInstallFinalize(cls);

onUninstall(cls: Class, e: ChangeEvent) {
onUninstall(cls: Class, e: ChangeEvent<Class>) {
if (this.entries.has(cls.__id)) {

@@ -102,0 +101,0 @@ this.expired.set(cls.__id, this.entries.get(cls.__id)!);

import { Class } from '../model/types';
import { ClassSource, ChangeEvent } from './class-source';
import { ChangeSource, ChangeEvent } from '../source';
import { EventEmitter } from 'events';
export abstract class Registry implements ClassSource {
export abstract class Registry implements ChangeSource<Class> {

@@ -11,5 +11,5 @@ protected resolved: boolean;

protected descendents: Registry[] = [];
protected parents: ClassSource[] = [];
protected parents: ChangeSource<Class>[] = [];
constructor(...parents: ClassSource[]) {
constructor(...parents: ChangeSource<Class>[]) {
this.parents = parents;

@@ -63,11 +63,11 @@

onInstall(cls: Class, e: ChangeEvent): void {
onInstall(cls: Class, e: ChangeEvent<Class>): void {
}
onUninstall(cls: Class, e: ChangeEvent): void {
onUninstall(cls: Class, e: ChangeEvent<Class>): void {
}
uninstall(classes: Class | Class[], e: ChangeEvent) {
uninstall(classes: Class | Class[], e: ChangeEvent<Class>) {
if (!Array.isArray(classes)) {

@@ -81,3 +81,3 @@ classes = [classes];

install(classes: Class | Class[], e: ChangeEvent) {
install(classes: Class | Class[], e: ChangeEvent<Class>) {
if (!Array.isArray(classes)) {

@@ -91,3 +91,3 @@ classes = [classes];

onEvent(event: ChangeEvent) {
onEvent(event: ChangeEvent<Class>) {
console.debug('Received', this.constructor.__id, event.type, (event.curr || event.prev)!.__id);

@@ -111,11 +111,11 @@

emit(e: ChangeEvent) {
emit(e: ChangeEvent<Class>) {
this.events.emit('change', e);
}
on<T>(callback: (e: ChangeEvent) => any): void {
on<T>(callback: (e: ChangeEvent<Class>) => any): void {
this.events.on('change', callback);
}
listen(source: ClassSource) {
listen(source: ChangeSource<Class>) {
source.on(this.onEvent.bind(this));

@@ -122,0 +122,0 @@ }

import { Registry } from './registry';
import { CompilerClassSource } from './compiler-source';
import { ChangeEvent } from './class-source';
import { CompilerClassSource, ChangeEvent } from '../source';
import { Class } from '../model';

@@ -11,3 +11,3 @@ class $RootRegistry extends Registry {

// Auto propagate
async onEvent(e: ChangeEvent) {
async onEvent(e: ChangeEvent<Class>) {
await super.onEvent(e);

@@ -14,0 +14,0 @@ this.emit(e);

import * as ts from 'typescript';
import * as path from 'path';
import { TransformUtil, Import, State } from '@travetto/compiler';
const farmhash = require('farmhash');

@@ -10,2 +11,4 @@ const SEP = path.sep;

type MethodHashes = { [key: string]: { hash: number, clsId: ts.Identifier } };
interface IState extends State {

@@ -17,7 +20,7 @@ file: string;

function createStaticField(name: string, val: ts.Expression) {
function createStaticField(name: string, val: ts.Expression | string | number) {
return ts.createProperty(
undefined,
[ts.createToken(ts.SyntaxKind.StaticKeyword)],
name, undefined, undefined, val
name, undefined, undefined, ['string', 'number'].includes(typeof val) ? ts.createLiteral(val as any) : val as ts.Expression
);

@@ -27,3 +30,3 @@ }

function visitNode<T extends ts.Node>(context: ts.TransformationContext, node: T, state: IState): T {
if (ts.isClassDeclaration(node)) {
if (ts.isClassDeclaration(node) && node.name && node.parent && ts.isSourceFile(node.parent)) {
if (!state.imported) {

@@ -36,3 +39,13 @@ state.imported = ts.createIdentifier(`import_Register`);

}
return ts.updateClassDeclaration(node,
const hashes: any = {};
for (const child of node.members) {
if (ts.isMethodDeclaration(child)) {
const hash = farmhash.hash32(child.getText());
hashes[child.name.getText()] = ts.createLiteral(hash);
}
}
node = ts.updateClassDeclaration(node,
ts.createNodeArray(

@@ -47,7 +60,11 @@ [ts.createDecorator(

ts.createNodeArray([
createStaticField('__filename', ts.createLiteral(state.fullFile)),
createStaticField('__id', ts.createLiteral(`${state.file}#${node.name!.getText()}`)),
createStaticField('__filename', state.fullFile),
createStaticField('__id', `${state.file}#${node.name!.getText()}`),
createStaticField('__hash', farmhash.hash32(node.getText())),
createStaticField('__methodHashes', TransformUtil.extendObjectLiteral(hashes)),
...node.members
])
) as any;
return node;
}

@@ -59,3 +76,2 @@ return ts.visitEachChild(node, c => visitNode(context, c, state), context);

transformer: TransformUtil.importingVisitor<IState>((file: ts.SourceFile) => {
let fileRoot = file.fileName.split(process.cwd() + SEP)[1];

@@ -62,0 +78,0 @@ let ns = '@app';

@@ -11,4 +11,2 @@ export class Test {

}
}
console.log(Test6.__id)
}

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

import { Registry } from '../index';
import { Registry, MethodSource, CompilerClassSource, RootRegistry } from '../index';

@@ -6,2 +6,8 @@ class Simple extends Registry {

export const SimpleRegistry = new Simple();
export const SimpleRegistry = new Simple();
export const MethodListener = new MethodSource(RootRegistry);
MethodListener.on(e => {
console.log('Method changed', e);
});
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