Skip to content

Commit

Permalink
refactor(context): rewrite package to use decorators (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
Lodin committed Jul 27, 2018
1 parent 040a5da commit 1198134
Show file tree
Hide file tree
Showing 4 changed files with 183 additions and 120 deletions.
45 changes: 30 additions & 15 deletions packages/context/__tests__/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,15 @@ describe("@corpuscule/context", () => {
providingValue,
} = createContext();

class TestProvider extends provider(BasicProvider) {
@provider
class TestProvider extends BasicProvider {
public static readonly is: string = `x-${uuid()}`;

protected [providingValue]: number = 2;
}

class TestConsumer extends consumer(BasicConsumer) {
@consumer
class TestConsumer extends BasicConsumer {
public static readonly is: string = `x-${uuid()}`;

protected [contextValue]?: number;
Expand All @@ -43,19 +45,22 @@ describe("@corpuscule/context", () => {
providingValue,
} = createContext();

class TestProvider extends provider(BasicProvider) {
@provider
class TestProvider extends BasicProvider {
public static readonly is: string = `x-${uuid()}`;

protected [providingValue]: number = 2;
}

class TestConsumer1 extends consumer(BasicConsumer) {
@consumer
class TestConsumer1 extends BasicConsumer {
public static readonly is: string = `x-${uuid()}`;

protected [contextValue]?: number;
}

class TestConsumer2 extends consumer(BasicConsumer) {
@consumer
class TestConsumer2 extends BasicConsumer {
public static readonly is: string = `x-${uuid()}`;

protected [contextValue]?: number;
Expand All @@ -74,11 +79,13 @@ describe("@corpuscule/context", () => {
provider,
} = createContext(5);

class TestProvider extends provider(BasicProvider) {
@provider
class TestProvider extends BasicProvider {
public static readonly is: string = `x-${uuid()}`;
}

class TestConsumer extends consumer(BasicConsumer) {
@consumer
class TestConsumer extends BasicConsumer {
public static readonly is: string = `x-${uuid()}`;

protected [contextValue]?: number;
Expand All @@ -97,13 +104,15 @@ describe("@corpuscule/context", () => {
providingValue,
} = createContext();

class TestProvider extends provider(BasicProvider) {
@provider
class TestProvider extends BasicProvider {
public static readonly is: string = `x-${uuid()}`;

protected [providingValue]: number = 2;
}

class TestConsumer extends consumer(BasicConsumer) {
@consumer
class TestConsumer extends BasicConsumer {
public static readonly is: string = `x-${uuid()}`;

protected [contextValue]?: number;
Expand All @@ -128,7 +137,8 @@ describe("@corpuscule/context", () => {
providingValue,
} = createContext();

class TestProvider extends provider(BasicProvider) {
@provider
class TestProvider extends BasicProvider {
public static readonly is: string = `x-${uuid()}`;

protected [providingValue]: number = 2;
Expand All @@ -143,7 +153,8 @@ describe("@corpuscule/context", () => {
}
}

class TestConsumer extends consumer(BasicConsumer) {
@consumer
class TestConsumer extends BasicConsumer {
public static readonly is: string = `x-${uuid()}`;

protected [contextValue]?: number;
Expand Down Expand Up @@ -173,19 +184,22 @@ describe("@corpuscule/context", () => {
providingValue,
} = createContext();

class TestProvider extends provider(BasicProvider) {
@provider
class TestProvider extends BasicProvider {
public static readonly is: string = `x-${uuid()}`;

protected [providingValue]: number = 2;
}

class TestConsumer1 extends consumer(BasicConsumer) {
@consumer
class TestConsumer1 extends BasicConsumer {
public static readonly is: string = `x-${uuid()}`;

protected [contextValue]?: number;
}

class TestConsumer2 extends consumer(BasicConsumer) {
@consumer
class TestConsumer2 extends BasicConsumer {
public static readonly is: string = `x-${uuid()}`;

protected [contextValue]?: number;
Expand All @@ -208,7 +222,8 @@ describe("@corpuscule/context", () => {
// contextValue,
// } = createContext();
//
// class TestConsumer extends consumer(HTMLElement) {
// @consumer
// class TestConsumer extends HTMLElement {
// public static readonly is: string = `x-${uuid()}`;
//
// public [contextValue]?: number;
Expand Down
4 changes: 2 additions & 2 deletions packages/context/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@corpuscule/context",
"version": "0.3.1",
"version": "0.4.0",
"description": "DOM-dependent context for Corpuscule",
"main": "lib/index.js",
"module": "lib/index.js",
Expand All @@ -16,6 +16,6 @@
"url": "git+https://github.com/corpusculejs/corpuscule.git"
},
"dependencies": {
"@corpuscule/typings": "^0.2.0"
"@corpuscule/typings": "^0.3.0"
}
}
6 changes: 3 additions & 3 deletions packages/context/src/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import {CustomElementClass, UncertainCustomElementClass} from "@corpuscule/typings";
import {ClassDecorator} from "@corpuscule/typings";

declare const createContext: <T>(defaultValue?: T) => {
readonly consumer: <T = {}>(target: UncertainCustomElementClass<T>) => CustomElementClass<T>;
readonly consumer: ClassDecorator;
readonly contextValue: "contextValue"; // hack to resolve unique symbol widening
readonly provider: <T = {}>(target: UncertainCustomElementClass<T>) => CustomElementClass<T>;
readonly provider: ClassDecorator;
readonly providingValue: "providingValue"; // hack to resolve unique symbol widening
};

Expand Down

0 comments on commit 1198134

Please sign in to comment.