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

@contember/schema-definition

Package Overview
Dependencies
Maintainers
5
Versions
268
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@contember/schema-definition - npm Package Compare versions

Comparing version 1.0.0-alpha.1 to 1.0.0-alpha.2

11

dist/src/model/definition/extensions.d.ts
import { Model } from '@contember/schema';
import { DecoratorFunction, EntityConstructor, FieldsDefinition } from './types';
export declare type EntityExtension = (entity: Model.Entity, definition: FieldsDefinition) => Model.Entity;
import { EntityRegistry } from './internal';
interface EntityExtensionArgs {
entity: Model.Entity;
definition: FieldsDefinition;
registry: EntityRegistry;
}
export declare type EntityExtension = (args: EntityExtensionArgs) => Model.Entity;
export declare const extendEntity: <T>(extension: EntityExtension) => DecoratorFunction<T>;
export declare const applyEntityExtensions: (cls: EntityConstructor, entity: Model.Entity, definition: FieldsDefinition) => Model.Entity;
export declare const applyEntityExtensions: (cls: EntityConstructor, args: EntityExtensionArgs) => Model.Entity;
export {};
//# sourceMappingURL=extensions.d.ts.map

2

dist/src/model/definition/extensions.js

@@ -11,4 +11,4 @@ "use strict";

exports.extendEntity = extendEntity;
const applyEntityExtensions = (cls, entity, definition) => (Reflect.getMetadata('extensions', cls) || []).reduce((entity, ext) => ext(entity, definition), entity);
const applyEntityExtensions = (cls, args) => (Reflect.getMetadata('extensions', cls) || []).reduce((entity, ext) => ext({ ...args, entity }), args.entity);
exports.applyEntityExtensions = applyEntityExtensions;
//# sourceMappingURL=extensions.js.map

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

};
return (0, extensions_1.applyEntityExtensions)(definition, entity, definitionInstance);
return (0, extensions_1.applyEntityExtensions)(definition, { entity, definition: definitionInstance, registry: this.entityRegistry });
});

@@ -55,0 +55,0 @@ return {

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

function Unique(options, ...args) {
return (0, extensions_1.extendEntity)(entity => {
return (0, extensions_1.extendEntity)(({ entity }) => {
const fields = (typeof options !== 'object' ? [options, ...args] : options.fields);

@@ -10,0 +10,0 @@ const name = typeof options === 'object' && options.name

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

export declare const View: (sql: string) => import("./types").DecoratorFunction<unknown>;
import { EntityConstructor } from './types';
export declare const View: (sql: string, { dependencies }?: {
dependencies?: EntityConstructor<any>[] | undefined;
}) => import("./types").DecoratorFunction<unknown>;
//# sourceMappingURL=ViewDefinition.d.ts.map

@@ -5,6 +5,7 @@ "use strict";

const extensions_1 = require("./extensions");
const View = (sql) => (0, extensions_1.extendEntity)(entity => ({
const View = (sql, { dependencies } = {}) => (0, extensions_1.extendEntity)(({ entity, registry }) => ({
...entity,
view: {
sql,
...(dependencies ? { dependencies: dependencies === null || dependencies === void 0 ? void 0 : dependencies.map(it => registry.getName(it)) } : {}),
},

@@ -11,0 +12,0 @@ }));

{
"name": "@contember/schema-definition",
"version": "1.0.0-alpha.1",
"version": "1.0.0-alpha.2",
"license": "Apache-2.0",

@@ -11,4 +11,4 @@ "main": "dist/src/index.js",

"dependencies": {
"@contember/schema": "^1.0.0-alpha.1",
"@contember/schema-utils": "^1.0.0-alpha.1",
"@contember/schema": "^1.0.0-alpha.2",
"@contember/schema-utils": "^1.0.0-alpha.2",
"reflect-metadata": "^0.1.13"

@@ -15,0 +15,0 @@ },

import { Model } from '@contember/schema'
import { DecoratorFunction, EntityConstructor, FieldsDefinition } from './types'
import { EntityRegistry } from './internal'
export type EntityExtension = (entity: Model.Entity, definition: FieldsDefinition) => Model.Entity
interface EntityExtensionArgs {
entity: Model.Entity
definition: FieldsDefinition
registry: EntityRegistry
}
export type EntityExtension = (args: EntityExtensionArgs) => Model.Entity
export const extendEntity = <T>(extension: EntityExtension): DecoratorFunction<T> => {

@@ -14,8 +21,7 @@ return function (cls: EntityConstructor) {

cls: EntityConstructor,
entity: Model.Entity,
definition: FieldsDefinition,
args: EntityExtensionArgs,
): Model.Entity =>
((Reflect.getMetadata('extensions', cls) || []) as EntityExtension[]).reduce(
(entity, ext) => ext(entity, definition),
entity,
(entity, ext) => ext({ ...args, entity }),
args.entity,
)

@@ -58,3 +58,3 @@ import { Model } from '@contember/schema'

}
return applyEntityExtensions(definition, entity, definitionInstance)
return applyEntityExtensions(definition, { entity, definition: definitionInstance, registry: this.entityRegistry })
})

@@ -61,0 +61,0 @@

@@ -9,3 +9,3 @@ import { DecoratorFunction } from './types'

export function Unique<T>(options: UniqueOptions<T> | keyof T, ...args: (keyof T)[]): DecoratorFunction<T> {
return extendEntity(entity => {
return extendEntity(({ entity }) => {
const fields = (typeof options !== 'object' ? [options, ...args] : options.fields) as string[]

@@ -12,0 +12,0 @@ const name =

import { extendEntity } from './extensions'
import { EntityConstructor } from './types'
export const View = (sql: string) =>
extendEntity(entity => ({
export const View = (sql: string, { dependencies }: { dependencies?: EntityConstructor[] } = {}) =>
extendEntity(({ entity, registry }) => ({
...entity,
view: {
sql,
...(dependencies ? { dependencies: dependencies?.map(it => registry.getName(it)) } : {}),
},
}))

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

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

Sorry, the diff of this file is not supported yet

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