🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@dura/utils

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dura/utils - npm Package Compare versions

Comparing version
4.0.0-alpha.9
to
4.0.0-alpha.10
+11
-11
__tests__/createActions.test.ts

@@ -1,3 +0,3 @@

import { createActionsFactory } from "../src";
import type { Store as ReduxStore } from "redux";
import { createActionsFactory } from '../src';
import type { Store as ReduxStore } from 'redux';
import {

@@ -8,6 +8,6 @@ StoreSlice,

EffectsMapOfStoreSlice,
} from "@dura/types";
} from '@dura/types';
describe("test createActions", function () {
it("test createActions", function () {
describe('test createActions', function () {
it('test createActions', function () {
function defineStore<

@@ -24,3 +24,3 @@ N extends string,

const user = defineStore({
namespace: "user",
namespace: 'user',
state: {

@@ -38,7 +38,7 @@ age: 12,

const order = defineStore({
namespace: "order",
namespace: 'order',
state: {},
});
let name = "default";
let name = 'default';

@@ -49,3 +49,3 @@ const dispatch = (action) => {

expect(name).toEqual("default");
expect(name).toEqual('default');

@@ -56,6 +56,6 @@ const createActions = createActionsFactory({ dispatch } as ReduxStore);

actions.user.onChangeUser("zhangsan");
actions.user.onChangeUser('zhangsan');
expect(name).toEqual("zhangsan");
expect(name).toEqual('zhangsan');
});
});

@@ -1,6 +0,6 @@

import { createProxy, DURA_SYMBOL } from "../src";
describe("test createProxy", function () {
it("test proxy", function () {
import { createProxy, DURA_SYMBOL } from '../src';
describe('test createProxy', function () {
it('test proxy', function () {
const target = {
name: "张三",
name: '张三',
orderList: [

@@ -12,3 +12,3 @@ {

id: 11,
name: "小浣熊",
name: '小浣熊',
},

@@ -24,13 +24,13 @@ ],

expect(deps.size).toEqual(1);
expect(deps.has("name")).toEqual(true);
expect(deps.has('name')).toEqual(true);
proxy.orderList[0].id;
expect(deps.size).toEqual(2);
expect(deps.has("orderList.0.id")).toEqual(true);
expect(proxy.toString()).toEqual("[object Object]");
expect(deps.has('orderList.0.id')).toEqual(true);
expect(proxy.toString()).toEqual('[object Object]');
expect(proxy.orderList[DURA_SYMBOL]).toEqual(1);
proxy.orderList[0].id;
expect(deps.size).toEqual(2);
expect(deps.has("orderList.0.id")).toEqual(true);
expect(deps.get("orderList.0.id")).toEqual(2);
expect(deps.has('orderList.0.id')).toEqual(true);
expect(deps.get('orderList.0.id')).toEqual(2);
});
});

@@ -1,13 +0,13 @@

import { defineHiddenConstantProperty } from "../src";
import { defineHiddenConstantProperty } from '../src';
describe("test defineHiddenConstantProperty", function () {
it("test defineProperty", function () {
describe('test defineHiddenConstantProperty', function () {
it('test defineProperty', function () {
const target = {
name: "张三",
name: '张三',
};
expect(target.name).toEqual("张三");
expect(target["sex"]).toBeUndefined();
defineHiddenConstantProperty(target, "sex", "男");
expect(target["sex"]).toEqual("男");
expect(target.name).toEqual('张三');
expect(target['sex']).toBeUndefined();
defineHiddenConstantProperty(target, 'sex', '男');
expect(target['sex']).toEqual('男');
});
});

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

import { keys } from "../src";
import { keys } from '../src';
describe("test keys", function () {
it("test keys", function () {
describe('test keys', function () {
it('test keys', function () {
const target = {

@@ -10,4 +10,4 @@ a: 1,

expect(keys(target)).toEqual(["a", "b"]);
expect(keys(target)).toEqual(['a', 'b']);
});
});

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

import { merge } from "../src";
import { merge } from '../src';
describe("test merge", function () {
it("test merge", function () {
describe('test merge', function () {
it('test merge', function () {
const a = {

@@ -6,0 +6,0 @@ a: 12,

@@ -1,7 +0,7 @@

import { noop } from "../src";
import { noop } from '../src';
describe("test noop", function () {
it("test noop", function () {
describe('test noop', function () {
it('test noop', function () {
expect(noop()).toEqual({});
});
});

@@ -6,6 +6,6 @@ import {

DURA_SYMBOL,
} from "../src";
} from '../src';
describe("test symbol", function () {
it("test symbol", function () {
describe('test symbol', function () {
it('test symbol', function () {
expect(DURA_SYMBOL).toEqual(DURA_SYMBOL);

@@ -12,0 +12,0 @@ expect(DURA_STORE_REDUCERS).toEqual(DURA_STORE_REDUCERS);

<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1600512702379" clover="3.2.0">
<project timestamp="1600512702379" name="All files">
<metrics statements="52" coveredstatements="52" conditionals="18" coveredconditionals="18" methods="13" coveredmethods="13" elements="83" coveredelements="83" complexity="0" loc="52" ncloc="52" packages="1" files="8" classes="8"/>
<file name="Symbol.ts" path="/Users/ityuany/GitRepository/dura/packages/utils/src/Symbol.ts">
<metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="1" count="7" type="stmt"/>
<line num="3" count="7" type="stmt"/>
<line num="5" count="7" type="stmt"/>
<line num="7" count="7" type="stmt"/>
</file>
<file name="createActions.ts" path="/Users/ityuany/GitRepository/dura/packages/utils/src/createActions.ts">
<metrics statements="12" coveredstatements="12" conditionals="0" coveredconditionals="0" methods="6" coveredmethods="6"/>
<line num="10" count="7" type="stmt"/>
<line num="11" count="7" type="stmt"/>
<line num="12" count="7" type="stmt"/>
<line num="14" count="7" type="stmt"/>
<line num="19" count="2" type="stmt"/>
<line num="20" count="1" type="stmt"/>
<line num="27" count="7" type="stmt"/>
<line num="28" count="1" type="stmt"/>
<line num="35" count="4" type="stmt"/>
<line num="36" count="1" type="stmt"/>
<line num="37" count="2" type="stmt"/>
<line num="39" count="2" type="stmt"/>
</file>
<file name="createProxy.ts" path="/Users/ityuany/GitRepository/dura/packages/utils/src/createProxy.ts">
<metrics statements="21" coveredstatements="21" conditionals="14" coveredconditionals="14" methods="3" coveredmethods="3"/>
<line num="1" count="7" type="stmt"/>
<line num="2" count="7" type="stmt"/>
<line num="3" count="7" type="stmt"/>
<line num="5" count="7" type="stmt"/>
<line num="10" count="6" type="stmt"/>
<line num="12" count="11" type="stmt"/>
<line num="15" count="11" type="cond" truecount="2" falsecount="0"/>
<line num="16" count="2" type="stmt"/>
<line num="19" count="9" type="cond" truecount="4" falsecount="0"/>
<line num="20" count="1" type="stmt"/>
<line num="23" count="8" type="stmt"/>
<line num="25" count="8" type="cond" truecount="4" falsecount="0"/>
<line num="26" count="5" type="stmt"/>
<line num="27" count="5" type="stmt"/>
<line num="30" count="3" type="stmt"/>
<line num="31" count="3" type="cond" truecount="2" falsecount="0"/>
<line num="32" count="2" type="stmt"/>
<line num="34" count="1" type="stmt"/>
<line num="37" count="3" type="stmt"/>
<line num="40" count="6" type="stmt"/>
<line num="44" count="8" type="cond" truecount="2" falsecount="0"/>
</file>
<file name="defineHiddenConstantProperty.ts" path="/Users/ityuany/GitRepository/dura/packages/utils/src/defineHiddenConstantProperty.ts">
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
<line num="1" count="7" type="stmt"/>
<line num="6" count="6" type="stmt"/>
</file>
<file name="index.ts" path="/Users/ityuany/GitRepository/dura/packages/utils/src/index.ts">
<metrics statements="7" coveredstatements="7" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="1" count="7" type="stmt"/>
<line num="2" count="7" type="stmt"/>
<line num="3" count="7" type="stmt"/>
<line num="4" count="7" type="stmt"/>
<line num="5" count="7" type="stmt"/>
<line num="6" count="7" type="stmt"/>
<line num="7" count="7" type="stmt"/>
</file>
<file name="keys.ts" path="/Users/ityuany/GitRepository/dura/packages/utils/src/keys.ts">
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
<line num="3" count="7" type="stmt"/>
<line num="4" count="3" type="stmt"/>
</file>
<file name="merge.ts" path="/Users/ityuany/GitRepository/dura/packages/utils/src/merge.ts">
<metrics statements="2" coveredstatements="2" conditionals="4" coveredconditionals="4" methods="1" coveredmethods="1"/>
<line num="2" count="8" type="cond" truecount="4" falsecount="0"/>
<line num="3" count="7" type="stmt"/>
</file>
<file name="noop.ts" path="/Users/ityuany/GitRepository/dura/packages/utils/src/noop.ts">
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
<line num="1" count="7" type="stmt"/>
<line num="2" count="4" type="stmt"/>
</file>
<coverage generated="1600580250964" clover="3.2.0">
<project timestamp="1600580250964" name="All files">
<metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0" elements="0" coveredelements="0" complexity="0" loc="0" ncloc="0" packages="0" files="0" classes="0"/>
</project>
</coverage>

@@ -1,9 +0,1 @@

{"/Users/ityuany/GitRepository/dura/packages/utils/src/Symbol.ts": {"path":"/Users/ityuany/GitRepository/dura/packages/utils/src/Symbol.ts","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":51}},"1":{"start":{"line":3,"column":13},"end":{"line":3,"column":67}},"2":{"start":{"line":5,"column":13},"end":{"line":5,"column":67}},"3":{"start":{"line":7,"column":13},"end":{"line":7,"column":65}}},"fnMap":{},"branchMap":{},"s":{"0":7,"1":7,"2":7,"3":7},"f":{},"b":{}}
,"/Users/ityuany/GitRepository/dura/packages/utils/src/createActions.ts": {"path":"/Users/ityuany/GitRepository/dura/packages/utils/src/createActions.ts","statementMap":{"0":{"start":{"line":10,"column":0},"end":{"line":10,"column":30}},"1":{"start":{"line":11,"column":0},"end":{"line":11,"column":32}},"2":{"start":{"line":12,"column":0},"end":{"line":12,"column":30}},"3":{"start":{"line":19,"column":2},"end":{"line":24,"column":4}},"4":{"start":{"line":20,"column":4},"end":{"line":23,"column":7}},"5":{"start":{"line":14,"column":0},"end":{"line":14,"column":16}},"6":{"start":{"line":28,"column":2},"end":{"line":49,"column":4}},"7":{"start":{"line":35,"column":4},"end":{"line":35,"column":21}},"8":{"start":{"line":36,"column":4},"end":{"line":48,"column":36}},"9":{"start":{"line":37,"column":22},"end":{"line":47,"column":9}},"10":{"start":{"line":39,"column":31},"end":{"line":45,"column":13}},"11":{"start":{"line":27,"column":0},"end":{"line":27,"column":16}}},"fnMap":{"0":{"name":"createDispatch","decl":{"start":{"line":14,"column":16},"end":{"line":14,"column":30}},"loc":{"start":{"line":17,"column":20},"end":{"line":25,"column":1}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":9},"end":{"line":19,"column":19}},"loc":{"start":{"line":19,"column":31},"end":{"line":24,"column":3}}},"2":{"name":"createActionsFactory","decl":{"start":{"line":27,"column":16},"end":{"line":27,"column":36}},"loc":{"start":{"line":27,"column":65},"end":{"line":50,"column":1}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":28,"column":9},"end":{"line":28,"column":null}},"loc":{"start":{"line":28,"column":9},"end":{"line":49,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":37,"column":11},"end":{"line":37,"column":12}},"loc":{"start":{"line":37,"column":17},"end":{"line":37,"column":null}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":39,"column":15},"end":{"line":39,"column":16}},"loc":{"start":{"line":39,"column":26},"end":{"line":39,"column":null}}}},"branchMap":{},"s":{"0":7,"1":7,"2":7,"3":2,"4":1,"5":7,"6":1,"7":4,"8":1,"9":2,"10":2,"11":7},"f":{"0":2,"1":1,"2":1,"3":1,"4":2,"5":2},"b":{}}
,"/Users/ityuany/GitRepository/dura/packages/utils/src/createProxy.ts": {"path":"/Users/ityuany/GitRepository/dura/packages/utils/src/createProxy.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":49}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":60}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":78}},"3":{"start":{"line":10,"column":16},"end":{"line":39,"column":4}},"4":{"start":{"line":12,"column":20},"end":{"line":12,"column":59}},"5":{"start":{"line":15,"column":6},"end":{"line":17,"column":null}},"6":{"start":{"line":16,"column":8},"end":{"line":16,"column":21}},"7":{"start":{"line":19,"column":6},"end":{"line":21,"column":null}},"8":{"start":{"line":20,"column":8},"end":{"line":20,"column":21}},"9":{"start":{"line":23,"column":19},"end":{"line":23,"column":49}},"10":{"start":{"line":25,"column":6},"end":{"line":28,"column":null}},"11":{"start":{"line":26,"column":8},"end":{"line":26,"column":60}},"12":{"start":{"line":27,"column":8},"end":{"line":27,"column":46}},"13":{"start":{"line":30,"column":20},"end":{"line":30,"column":38}},"14":{"start":{"line":31,"column":6},"end":{"line":35,"column":null}},"15":{"start":{"line":32,"column":8},"end":{"line":32,"column":26}},"16":{"start":{"line":34,"column":8},"end":{"line":34,"column":30}},"17":{"start":{"line":37,"column":6},"end":{"line":37,"column":19}},"18":{"start":{"line":40,"column":2},"end":{"line":40,"column":15}},"19":{"start":{"line":5,"column":0},"end":{"line":5,"column":16}},"20":{"start":{"line":44,"column":2},"end":{"line":44,"column":66}}},"fnMap":{"0":{"name":"createProxy","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":27}},"loc":{"start":{"line":8,"column":21},"end":{"line":41,"column":1}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":7},"end":{"line":11,"column":8}},"loc":{"start":{"line":11,"column":34},"end":{"line":38,"column":5}}},"2":{"name":"caclPath","decl":{"start":{"line":43,"column":9},"end":{"line":43,"column":17}},"loc":{"start":{"line":43,"column":38},"end":{"line":45,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":6},"end":{"line":17,"column":null}},"type":"if","locations":[{"start":{"line":15,"column":6},"end":{"line":17,"column":null}},{"start":{"line":15,"column":6},"end":{"line":17,"column":null}}]},"1":{"loc":{"start":{"line":19,"column":6},"end":{"line":21,"column":null}},"type":"if","locations":[{"start":{"line":19,"column":6},"end":{"line":21,"column":null}},{"start":{"line":19,"column":6},"end":{"line":21,"column":null}}]},"2":{"loc":{"start":{"line":19,"column":10},"end":{"line":19,"column":34}},"type":"binary-expr","locations":[{"start":{"line":19,"column":10},"end":{"line":19,"column":34}},{"start":{"line":19,"column":38},"end":{"line":19,"column":70}}]},"3":{"loc":{"start":{"line":25,"column":6},"end":{"line":28,"column":null}},"type":"if","locations":[{"start":{"line":25,"column":6},"end":{"line":28,"column":null}},{"start":{"line":25,"column":6},"end":{"line":28,"column":null}}]},"4":{"loc":{"start":{"line":25,"column":10},"end":{"line":25,"column":30}},"type":"binary-expr","locations":[{"start":{"line":25,"column":10},"end":{"line":25,"column":30}},{"start":{"line":25,"column":34},"end":{"line":25,"column":54}}]},"5":{"loc":{"start":{"line":31,"column":6},"end":{"line":35,"column":null}},"type":"if","locations":[{"start":{"line":31,"column":6},"end":{"line":35,"column":null}},{"start":{"line":31,"column":6},"end":{"line":35,"column":null}}]},"6":{"loc":{"start":{"line":44,"column":25},"end":{"line":44,"column":49}},"type":"cond-expr","locations":[{"start":{"line":44,"column":25},"end":{"line":44,"column":49}},{"start":{"line":44,"column":52},"end":{"line":44,"column":65}}]}},"s":{"0":7,"1":7,"2":7,"3":6,"4":11,"5":11,"6":2,"7":9,"8":1,"9":8,"10":8,"11":5,"12":5,"13":3,"14":3,"15":2,"16":1,"17":3,"18":6,"19":7,"20":8},"f":{"0":6,"1":11,"2":8},"b":{"0":[2,9],"1":[1,8],"2":[9,8],"3":[5,3],"4":[8,6],"5":[2,1],"6":[4,4]}}
,"/Users/ityuany/GitRepository/dura/packages/utils/src/defineHiddenConstantProperty.ts": {"path":"/Users/ityuany/GitRepository/dura/packages/utils/src/defineHiddenConstantProperty.ts","statementMap":{"0":{"start":{"line":6,"column":2},"end":{"line":11,"column":5}},"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":16}}},"fnMap":{"0":{"name":"defineHiddenConstantProperty","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":44}},"loc":{"start":{"line":4,"column":10},"end":{"line":12,"column":1}}}},"branchMap":{},"s":{"0":6,"1":7},"f":{"0":6},"b":{}}
,"/Users/ityuany/GitRepository/dura/packages/utils/src/index.ts": {"path":"/Users/ityuany/GitRepository/dura/packages/utils/src/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":47}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":25}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":32}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":23}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":24}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":23}}},"fnMap":{},"branchMap":{},"s":{"0":7,"1":7,"2":7,"3":7,"4":7,"5":7,"6":7},"f":{},"b":{}}
,"/Users/ityuany/GitRepository/dura/packages/utils/src/keys.ts": {"path":"/Users/ityuany/GitRepository/dura/packages/utils/src/keys.ts","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":4,"column":29}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":16}}},"fnMap":{"0":{"name":"keys","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":20}},"loc":{"start":{"line":3,"column":39},"end":{"line":5,"column":1}}}},"branchMap":{},"s":{"0":3,"1":7},"f":{"0":3},"b":{}}
,"/Users/ityuany/GitRepository/dura/packages/utils/src/merge.ts": {"path":"/Users/ityuany/GitRepository/dura/packages/utils/src/merge.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":2,"column":45}},"1":{"start":{"line":2,"column":45},"end":{"line":2,"column":null}},"2":{"start":{"line":3,"column":2},"end":{"line":3,"column":30}},"3":{"start":{"line":2,"column":0},"end":{"line":2,"column":16}}},"fnMap":{"0":{"name":"merge","decl":{"start":{"line":2,"column":16},"end":{"line":2,"column":21}},"loc":{"start":{"line":2,"column":66},"end":{"line":4,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":2,"column":45}},"type":"if","locations":[{"start":{"line":2,"column":22},"end":{"line":2,"column":45}},{"start":{"line":2,"column":22},"end":{"line":2,"column":45}}]},"1":{"loc":{"start":{"line":2,"column":45},"end":{"line":2,"column":null}},"type":"if","locations":[{"start":{"line":2,"column":45},"end":{"line":2,"column":null}},{"start":{"line":2,"column":45},"end":{"line":2,"column":null}}]}},"s":{"0":8,"1":8,"2":7,"3":7},"f":{"0":7},"b":{"0":[1,6],"1":[1,6]}}
,"/Users/ityuany/GitRepository/dura/packages/utils/src/noop.ts": {"path":"/Users/ityuany/GitRepository/dura/packages/utils/src/noop.ts","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":12}},"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":16}}},"fnMap":{"0":{"name":"noop","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":20}},"loc":{"start":{"line":1,"column":20},"end":{"line":3,"column":1}}}},"branchMap":{},"s":{"0":4,"1":7},"f":{"0":4},"b":{}}
}
{}

@@ -26,5 +26,5 @@

<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="strong">Unknown% </span>
<span class="quiet">Statements</span>
<span class='fraction'>54/54</span>
<span class='fraction'>0/0</span>
</div>

@@ -34,5 +34,5 @@

<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="strong">Unknown% </span>
<span class="quiet">Branches</span>
<span class='fraction'>18/18</span>
<span class='fraction'>0/0</span>
</div>

@@ -42,5 +42,5 @@

<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="strong">Unknown% </span>
<span class="quiet">Functions</span>
<span class='fraction'>13/13</span>
<span class='fraction'>0/0</span>
</div>

@@ -50,5 +50,5 @@

<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="strong">Unknown% </span>
<span class="quiet">Lines</span>
<span class='fraction'>52/52</span>
<span class='fraction'>0/0</span>
</div>

@@ -62,3 +62,3 @@

</div>
<div class='status-line high'></div>
<div class='status-line medium'></div>
<div class="pad1">

@@ -80,123 +80,3 @@ <table class="coverage-summary">

</thead>
<tbody><tr>
<td class="file high" data-value="Symbol.ts"><a href="Symbol.ts.html">Symbol.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
</tr>
<tr>
<td class="file high" data-value="createActions.ts"><a href="createActions.ts.html">createActions.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="12" class="abs high">12/12</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="12" class="abs high">12/12</td>
</tr>
<tr>
<td class="file high" data-value="createProxy.ts"><a href="createProxy.ts.html">createProxy.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="21" class="abs high">21/21</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="14" class="abs high">14/14</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="3" class="abs high">3/3</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="21" class="abs high">21/21</td>
</tr>
<tr>
<td class="file high" data-value="defineHiddenConstantProperty.ts"><a href="defineHiddenConstantProperty.ts.html">defineHiddenConstantProperty.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
<tr>
<td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="7" class="abs high">7/7</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="7" class="abs high">7/7</td>
</tr>
<tr>
<td class="file high" data-value="keys.ts"><a href="keys.ts.html">keys.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
<tr>
<td class="file high" data-value="merge.ts"><a href="merge.ts.html">merge.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
<tr>
<td class="file high" data-value="noop.ts"><a href="noop.ts.html">noop.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
</tbody>
<tbody></tbody>
</table>

@@ -209,3 +89,3 @@ </div>

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
at Sun Sep 20 2020 13:37:30 GMT+0800 (中国标准时间)
</div>

@@ -212,0 +92,0 @@ </div>

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

"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("lodash.isplainobject"));function t(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:!0,writable:!1,configurable:!0})}var n=Symbol("@@DURA_SYMBOL"),o=Symbol("@@DURA_PATCHES_SYMBOL"),u=Symbol("@@DURA_STORE_REDUCERS"),a=Symbol("@@DURA_STORE_EFFECTS");function c(){return{}}
import r from"lodash.isplainobject";function n(r,n,e){Object.defineProperty(r,n,{value:e,enumerable:!0,writable:!1,configurable:!0})}var e=Symbol("@@DURA_SYMBOL"),t=Symbol("@@DURA_PATCHES_SYMBOL"),u=Symbol("@@DURA_STORE_REDUCERS"),o=Symbol("@@DURA_STORE_EFFECTS");function a(u,o,i){return new Proxy(u,{get:function(u,c,f){var l=Reflect.get(u,c,f);if(!u.hasOwnProperty(c))return l;if(c===e||c===t)return l;var p=function(r,n){return r?r+"."+n:""+n}(i,c);if(r(l)||Array.isArray(l))return n(l,e,1),a(l,o,p);var s=o.get(p)+1;return isNaN(s)?o.set(p,1):o.set(p,s),l}})}function i(){return{}}
/*! *****************************************************************************

@@ -15,2 +15,2 @@ Copyright (c) Microsoft Corporation.

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */var i=function(){return(i=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e}).apply(this,arguments)};function s(e,r){return void 0===e&&(e={}),void 0===r&&(r={}),i(i({},e),r)}function f(e){return Object.keys(e)}function p(e,r,t){return function(n){return e.dispatch({type:r+"/"+t,payload:n})}}exports.DURA_PATCHES_SYMBOL=o,exports.DURA_STORE_EFFECTS=a,exports.DURA_STORE_REDUCERS=u,exports.DURA_SYMBOL=n,exports.createActionsFactory=function(e){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return r.map((function(r){var t;return(t={})[r.namespace]=f(s(r.reducers,r.effects)).map((function(t){var n;return(n={})[t]=p(e,r.namespace,t),n})).reduce(s,{}),t})).reduce(s,{})}},exports.createDispatch=p,exports.createProxy=function e(u,a,c){return new Proxy(u,{get:function(u,i,s){var f=Reflect.get(u,i,s);if(!u.hasOwnProperty(i))return f;if(i===n||i===o)return f;var p=function(e,r){return e?e+"."+r:""+r}(c,i);if(r.default(f)||Array.isArray(f))return t(f,n,1),e(f,a,p);var l=a.get(p)+1;return isNaN(l)?a.set(p,1):a.set(p,l),f}})},exports.defineHiddenConstantProperty=t,exports.keys=f,exports.merge=s,exports.noop=c;
***************************************************************************** */var c=function(){return(c=Object.assign||function(r){for(var n,e=1,t=arguments.length;e<t;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(r[u]=n[u]);return r}).apply(this,arguments)};function f(r,n){return void 0===r&&(r={}),void 0===n&&(n={}),c(c({},r),n)}function l(r){return Object.keys(r)}function p(r,n,e){return function(t){return r.dispatch({type:n+"/"+e,payload:t})}}function s(r){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return n.map((function(n){var e;return(e={})[n.namespace]=l(f(n.reducers,n.effects)).map((function(e){var t;return(t={})[e]=p(r,n.namespace,e),t})).reduce(f,{}),e})).reduce(f,{})}}export{t as DURA_PATCHES_SYMBOL,o as DURA_STORE_EFFECTS,u as DURA_STORE_REDUCERS,e as DURA_SYMBOL,s as createActionsFactory,p as createDispatch,a as createProxy,n as defineHiddenConstantProperty,l as keys,f as merge,i as noop};
{
"name": "@dura/utils",
"version": "4.0.0-alpha.9",
"version": "4.0.0-alpha.10",
"description": "",

@@ -18,3 +18,3 @@ "main": "./lib/index.js",

"dependencies": {
"@dura/types": "^4.0.0-alpha.9"
"@dura/types": "^4.0.0-alpha.10"
},

@@ -26,5 +26,5 @@ "peerDependencies": {

"devDependencies": {
"@dura/lub": "^4.0.0-alpha.9"
"@dura/lub": "^4.0.0-alpha.10"
},
"gitHead": "9930b842e1f589e2e8858af28bef34bbdac3317a"
"gitHead": "05cb866cbae246aad9531dbd6318457d64313177"
}
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for createActions.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> createActions.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>12/12</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>6/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>12/12</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a>
<a name='L18'></a><a href='#L18'>18</a>
<a name='L19'></a><a href='#L19'>19</a>
<a name='L20'></a><a href='#L20'>20</a>
<a name='L21'></a><a href='#L21'>21</a>
<a name='L22'></a><a href='#L22'>22</a>
<a name='L23'></a><a href='#L23'>23</a>
<a name='L24'></a><a href='#L24'>24</a>
<a name='L25'></a><a href='#L25'>25</a>
<a name='L26'></a><a href='#L26'>26</a>
<a name='L27'></a><a href='#L27'>27</a>
<a name='L28'></a><a href='#L28'>28</a>
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a>
<a name='L36'></a><a href='#L36'>36</a>
<a name='L37'></a><a href='#L37'>37</a>
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a>
<a name='L40'></a><a href='#L40'>40</a>
<a name='L41'></a><a href='#L41'>41</a>
<a name='L42'></a><a href='#L42'>42</a>
<a name='L43'></a><a href='#L43'>43</a>
<a name='L44'></a><a href='#L44'>44</a>
<a name='L45'></a><a href='#L45'>45</a>
<a name='L46'></a><a href='#L46'>46</a>
<a name='L47'></a><a href='#L47'>47</a>
<a name='L48'></a><a href='#L48'>48</a>
<a name='L49'></a><a href='#L49'>49</a>
<a name='L50'></a><a href='#L50'>50</a>
<a name='L51'></a><a href='#L51'>51</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { Store as ReduxStore } from "redux";
import type {
StoreSlice,
JsonObject,
ReducersMapOfStoreSlice,
EffectsMapOfStoreSlice,
ExtractAction,
UnionToIntersection,
} from "@dura/types";
import { noop } from "./noop";
import { merge } from "./merge";
import { keys } from "./keys";
&nbsp;
export function createDispatch&lt;S&gt;(
reduxStore: ReduxStore&lt;S&gt;,
namespace: string,
methodName: string
) {
return function (payload: any) {
return reduxStore.dispatch({
type: `${namespace}/${methodName}`,
payload,
});
};
}
&nbsp;
export function createActionsFactory&lt;S&gt;(reduxStore: ReduxStore&lt;S&gt;) {
return function &lt;
N extends string,
S extends JsonObject,
R extends ReducersMapOfStoreSlice&lt;S&gt; = {},
E extends EffectsMapOfStoreSlice = {},
STORES extends StoreSlice&lt;N, S, R, E&gt;[] = StoreSlice&lt;N, S, R, E&gt;[],
RETURN = UnionToIntersection&lt;ExtractAction&lt;STORES[number]&gt;&gt;
&gt;(...stores: STORES): RETURN {
return stores
.map((store) =&gt; ({
[store.namespace]: keys(merge(store.reducers, store.effects))
.map((methodName) =&gt; ({
[methodName]: createDispatch(
reduxStore,
store.namespace,
methodName
),
}))
.reduce(merge, noop()),
}))
.reduce(merge, noop()) as any;
};
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for createProxy.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> createProxy.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>21/21</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>14/14</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>3/3</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>21/21</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a>
<a name='L18'></a><a href='#L18'>18</a>
<a name='L19'></a><a href='#L19'>19</a>
<a name='L20'></a><a href='#L20'>20</a>
<a name='L21'></a><a href='#L21'>21</a>
<a name='L22'></a><a href='#L22'>22</a>
<a name='L23'></a><a href='#L23'>23</a>
<a name='L24'></a><a href='#L24'>24</a>
<a name='L25'></a><a href='#L25'>25</a>
<a name='L26'></a><a href='#L26'>26</a>
<a name='L27'></a><a href='#L27'>27</a>
<a name='L28'></a><a href='#L28'>28</a>
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a>
<a name='L36'></a><a href='#L36'>36</a>
<a name='L37'></a><a href='#L37'>37</a>
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a>
<a name='L40'></a><a href='#L40'>40</a>
<a name='L41'></a><a href='#L41'>41</a>
<a name='L42'></a><a href='#L42'>42</a>
<a name='L43'></a><a href='#L43'>43</a>
<a name='L44'></a><a href='#L44'>44</a>
<a name='L45'></a><a href='#L45'>45</a>
<a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">9x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">5x</span>
<span class="cline-any cline-yes">5x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import isPlainObject from 'lodash.isplainobject';
import { DURA_SYMBOL, DURA_PATCHES_SYMBOL } from './Symbol';
import { defineHiddenConstantProperty } from './defineHiddenConstantProperty';
&nbsp;
export function createProxy&lt;T extends object&gt;(
state: T,
deps: Map&lt;string, number&gt;,
parentPath?: string,
) {
const proxy = new Proxy(state, {
get(target, property, receiver) {
const value = Reflect.get(target, property, receiver);
&nbsp;
//如果不是我自身定义的属性
if (!target.hasOwnProperty(property)) {
return value;
}
// 如果是 symbol 类型 则直接返回
if (property === DURA_SYMBOL || property === DURA_PATCHES_SYMBOL) {
return value;
}
&nbsp;
const path = caclPath(parentPath, property);
&nbsp;
if (isPlainObject(value) || Array.isArray(value)) {
defineHiddenConstantProperty(value, DURA_SYMBOL, 1);
return createProxy(value, deps, path);
}
&nbsp;
const count = deps.get(path) + 1;
if (isNaN(count)) {
deps.set(path, 1);
} else {
deps.set(path, count);
}
&nbsp;
return value;
},
});
return proxy;
}
&nbsp;
function caclPath(parentPath, property) {
return parentPath ? `${parentPath}.${property}` : `${property}`;
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for defineHiddenConstantProperty.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> defineHiddenConstantProperty.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export function defineHiddenConstantProperty&lt;T, S extends symbol | string, V&gt;(
target: T,
name: S,
value: V
) {
Object.defineProperty(target, name, {
value: value,
enumerable: true,
writable: false,
configurable: true,
});
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for index.js</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> index.js</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">85.71% </span>
<span class="quiet">Statements</span>
<span class='fraction'>36/42</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">80.65% </span>
<span class="quiet">Branches</span>
<span class='fraction'>25/31</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">93.75% </span>
<span class="quiet">Functions</span>
<span class='fraction'>15/16</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">"use strict";function e(e){return e&amp;&amp;"object"==typeof e&amp;&amp;<span class="branch-2 cbranch-no" title="branch not covered" >"default"in e?<span class="branch-0 cbranch-no" title="branch not covered" ></span>e:</span>{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("lodash.isplainobject"));function t(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:!0,writable:!1,configurable:!0})}var n=Symbol("@@DURA_SYMBOL"),o=Symbol("@@DURA_PATCHES_SYMBOL"),u=Symbol("@@DURA_STORE_REDUCERS"),a=Symbol("@@DURA_STORE_EFFECTS");function i(){return{}}
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
&nbsp;
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
&nbsp;
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */var c=function(){return(c=Object.assign||<span class="fstat-no" title="function not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >fu</span>nction(e){<span class="cstat-no" title="statement not covered" >for(var r,t=<span class="cstat-no" title="statement not covered" >1,</span>n=<span class="cstat-no" title="statement not covered" >arguments.length;</span>t&lt;n;t++)<span class="cstat-no" title="statement not covered" >for(var o in r=arguments[t])<span class="cstat-no" title="statement not covered" >Object.prototype.hasOwnProperty.call(r,o)&amp;&amp;(e[o]=r[o]);<span class="cstat-no" title="statement not covered" >r</span></span></span>eturn e}</span>)</span>.apply(this,arguments)};function s(e,r){return void 0===e&amp;&amp;(e={}),void 0===r&amp;&amp;(r={}),c(c({},e),r)}function f(e){return Object.keys(e)}function p(e,r,t){return function(n){return e.dispatch({type:r+"/"+t,payload:n})}}exports.DURA_PATCHES_SYMBOL=o,exports.DURA_STORE_EFFECTS=a,exports.DURA_STORE_REDUCERS=u,exports.DURA_SYMBOL=n,exports.createActionsFactory=function(e){return function(){for(var r,t=[],n=0;n&lt;arguments.length;n++)t[n]=arguments[n];return null!==(r=t.map((function(r){var t;return(t={})[r.namespace]=f(s(r.reducers,r.effects)).map((function(t){var n;return(n={})[t]=p(e,r.namespace,t),n})).reduce(s,{}),t})).reduce(s,{}))&amp;&amp;void 0!==r?r:<span class="branch-1 cbranch-no" title="branch not covered" >{}}</span>},exports.createDispatch=p,exports.createProxy=function e(u,a,i){return new Proxy(u,{get:function(u,c,s){var f=Reflect.get(u,c,s);if(!u.hasOwnProperty(c))return f;if(c===n||c===o)return f;var p=function(e,r){return e?e+"."+r:""+r}(i,c);if(r.default(f)||Array.isArray(f))return t(f,n,1),e(f,a,p);var l=a.get(p)+1;return isNaN(l)?a.set(p,1):a.set(p,l),f}})},exports.defineHiddenConstantProperty=t,exports.keys=f,exports.merge=s,exports.noop=i;
//# sourceMappingURL=index.js.map
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 17:50:51 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for index.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> index.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>7/7</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>7/7</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export * from "./defineHiddenConstantProperty";
export * from "./Symbol";
export * from "./createProxy";
export * from "./createActions";
export * from "./keys";
export * from "./merge";
export * from "./noop";
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for keys.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> keys.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { JsonObject } from "@dura/types";
&nbsp;
export function keys(target: JsonObject) {
return Object.keys(target);
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for lib</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> lib</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">21.43% </span>
<span class="quiet">Statements</span>
<span class='fraction'>9/42</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">9.68% </span>
<span class="quiet">Branches</span>
<span class='fraction'>3/31</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">6.25% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/16</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line low'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file low" data-value="index.js"><a href="index.js.html">index.js</a></td>
<td data-value="21.43" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 21%"></div><div class="cover-empty" style="width: 79%"></div></div>
</td>
<td data-value="21.43" class="pct low">21.43%</td>
<td data-value="42" class="abs low">9/42</td>
<td data-value="9.68" class="pct low">9.68%</td>
<td data-value="31" class="abs low">3/31</td>
<td data-value="6.25" class="pct low">6.25%</td>
<td data-value="16" class="abs low">1/16</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
</tbody>
</table>
</div>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for lib/index.js</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">lib</a> index.js</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">21.43% </span>
<span class="quiet">Statements</span>
<span class='fraction'>9/42</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">9.68% </span>
<span class="quiet">Branches</span>
<span class='fraction'>3/31</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">6.25% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/16</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line low'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">"use strict";function e(e){return e&amp;&amp;"object"==typeof e&amp;&amp;<span class="branch-2 cbranch-no" title="branch not covered" >"default"in e?<span class="branch-0 cbranch-no" title="branch not covered" ></span>e:</span>{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("lodash.isplainobject"));function <span class="fstat-no" title="function not covered" >t(</span>e,r,t){<span class="cstat-no" title="statement not covered" >Object.defineProperty(e,r,{value:t,enumerable:!0,writable:!1,configurable:!0})}</span>var n=Symbol("@@DURA_SYMBOL"),o=Symbol("@@DURA_PATCHES_SYMBOL"),u=Symbol("@@DURA_STORE_REDUCERS"),a=Symbol("@@DURA_STORE_EFFECTS");function <span class="fstat-no" title="function not covered" >i(</span>){<span class="cstat-no" title="statement not covered" >return{}}</span>
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
&nbsp;
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
&nbsp;
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */var c=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >return(c=Object.assign||<span class="fstat-no" title="function not covered" >fu</span>nction(e){<span class="cstat-no" title="statement not covered" >for(var r,t=<span class="cstat-no" title="statement not covered" >1,</span>n=<span class="cstat-no" title="statement not covered" >arguments.length;</span>t&lt;n;t++)<span class="cstat-no" title="statement not covered" >for(var o in r=arguments[t])<span class="cstat-no" title="statement not covered" >Object.prototype.hasOwnProperty.call(r,o)&amp;&amp;(e[o]=r[o]);<span class="cstat-no" title="statement not covered" >r</span></span></span>eturn e}</span>).apply(this,arguments)}</span>;function <span class="fstat-no" title="function not covered" >s(</span>e,r){<span class="cstat-no" title="statement not covered" >return void 0===e&amp;&amp;(e={}),void 0===r&amp;&amp;(r={}),c(c({},e),r)}</span>function <span class="fstat-no" title="function not covered" >f(</span>e){<span class="cstat-no" title="statement not covered" >return Object.keys(e)}</span>function <span class="fstat-no" title="function not covered" >p(</span>e,r,t){<span class="cstat-no" title="statement not covered" >return <span class="fstat-no" title="function not covered" >fu</span>nction(n){<span class="cstat-no" title="statement not covered" >return e.dispatch({type:r+"/"+t,payload:n})}</span>}</span>exports.DURA_PATCHES_SYMBOL=o,exports.DURA_STORE_EFFECTS=a,exports.DURA_STORE_REDUCERS=u,exports.DURA_SYMBOL=n,exports.createActionsFactory=<span class="fstat-no" title="function not covered" >fu</span>nction(e){<span class="cstat-no" title="statement not covered" >return <span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >for(var r,t=<span class="cstat-no" title="statement not covered" >[],</span>n=<span class="cstat-no" title="statement not covered" >0;</span>n&lt;arguments.length;n++)<span class="cstat-no" title="statement not covered" >t[n]=arguments[n];<span class="cstat-no" title="statement not covered" >r</span></span>eturn null!==(r=t.map((<span class="fstat-no" title="function not covered" >fu</span>nction(r){var t;<span class="cstat-no" title="statement not covered" >return(t={})[r.namespace]=f(s(r.reducers,r.effects)).map((<span class="fstat-no" title="function not covered" >fu</span>nction(t){var n;<span class="cstat-no" title="statement not covered" >return(n={})[t]=p(e,r.namespace,t),n}</span>)).reduce(s,{}),t}</span>)).reduce(s,{}))&amp;&amp;void 0!==r?r:{}}</span>}</span>,exports.createDispatch=p,exports.createProxy=function <span class="fstat-no" title="function not covered" >e(</span>u,a,i){<span class="cstat-no" title="statement not covered" >return new Proxy(u,{get:<span class="fstat-no" title="function not covered" >fu</span>nction(u,c,s){var f=<span class="cstat-no" title="statement not covered" >Reflect.get(u,c,s);<span class="cstat-no" title="statement not covered" ></span>if(!u.hasOwnProperty(c))<span class="cstat-no" title="statement not covered" >return f;<span class="cstat-no" title="statement not covered" >i</span></span>f(c===n||c===o)<span class="cstat-no" title="statement not covered" >return f;v</span></span>ar p=<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >fu</span>nction(e,r){<span class="cstat-no" title="statement not covered" >return e?e+"."+r:""+r}</span>(i,c);<span class="cstat-no" title="statement not covered" ></span>if(r.default(f)||Array.isArray(f))<span class="cstat-no" title="statement not covered" >return t(f,n,1),e(f,a,p);v</span></span>ar l=<span class="cstat-no" title="statement not covered" >a.get(p)+1;<span class="cstat-no" title="statement not covered" ></span>return isNaN(l)?a.set(p,1):a.set(p,l),f}</span>})}</span>,exports.defineHiddenConstantProperty=t,exports.keys=f,exports.merge=s,exports.noop=i;
//# sourceMappingURL=index.js.map
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for merge.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> merge.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { JsonObject } from "@dura/types";
export function merge(prev: JsonObject = {}, next: JsonObject = {}) {
return { ...prev, ...next };
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for noop.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> noop.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export function noop() {
return {};
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/createActions.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> createActions.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>12/12</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">75% </span>
<span class="quiet">Branches</span>
<span class='fraction'>3/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>6/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>12/12</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a>
<a name='L18'></a><a href='#L18'>18</a>
<a name='L19'></a><a href='#L19'>19</a>
<a name='L20'></a><a href='#L20'>20</a>
<a name='L21'></a><a href='#L21'>21</a>
<a name='L22'></a><a href='#L22'>22</a>
<a name='L23'></a><a href='#L23'>23</a>
<a name='L24'></a><a href='#L24'>24</a>
<a name='L25'></a><a href='#L25'>25</a>
<a name='L26'></a><a href='#L26'>26</a>
<a name='L27'></a><a href='#L27'>27</a>
<a name='L28'></a><a href='#L28'>28</a>
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a>
<a name='L36'></a><a href='#L36'>36</a>
<a name='L37'></a><a href='#L37'>37</a>
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a>
<a name='L40'></a><a href='#L40'>40</a>
<a name='L41'></a><a href='#L41'>41</a>
<a name='L42'></a><a href='#L42'>42</a>
<a name='L43'></a><a href='#L43'>43</a>
<a name='L44'></a><a href='#L44'>44</a>
<a name='L45'></a><a href='#L45'>45</a>
<a name='L46'></a><a href='#L46'>46</a>
<a name='L47'></a><a href='#L47'>47</a>
<a name='L48'></a><a href='#L48'>48</a>
<a name='L49'></a><a href='#L49'>49</a>
<a name='L50'></a><a href='#L50'>50</a>
<a name='L51'></a><a href='#L51'>51</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { Store as ReduxStore } from "redux";
import type {
StoreSlice,
JsonObject,
ReducersMapOfStoreSlice,
EffectsMapOfStoreSlice,
ExtractAction,
UnionToIntersection,
} from "@dura/types";
import { noop } from "./noop";
import { merge } from "./merge";
import { keys } from "./keys";
&nbsp;
export function createDispatch&lt;S&gt;(
reduxStore: ReduxStore&lt;S&gt;,
namespace: string,
methodName: string
) {
return function (payload: any) {
return reduxStore.dispatch({
type: `${namespace}/${methodName}`,
payload,
});
};
}
&nbsp;
export function createActionsFactory&lt;S&gt;(reduxStore: ReduxStore&lt;S&gt;) {
return function &lt;
N extends string,
S extends JsonObject,
R extends ReducersMapOfStoreSlice&lt;S&gt; = {},
E extends EffectsMapOfStoreSlice = {},
STORES extends StoreSlice&lt;N, S, R, E&gt;[] = StoreSlice&lt;N, S, R, E&gt;[],
RETURN = UnionToIntersection&lt;ExtractAction&lt;STORES[number]&gt;&gt;
&gt;(...stores: STORES): RETURN {
return (stores
.map((store) =&gt; ({
[store.namespace]: keys(merge(store.reducers, store.effects))
.map((methodName) =&gt; ({
[methodName]: createDispatch(
reduxStore,
store.namespace,
methodName
),
}))
.reduce(merge, noop()),
}))
.reduce(merge, noop()) ?? <span class="branch-1 cbranch-no" title="branch not covered" >{})</span> as any;
};
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/createProxy.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> createProxy.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>21/21</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>14/14</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>3/3</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>21/21</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a>
<a name='L18'></a><a href='#L18'>18</a>
<a name='L19'></a><a href='#L19'>19</a>
<a name='L20'></a><a href='#L20'>20</a>
<a name='L21'></a><a href='#L21'>21</a>
<a name='L22'></a><a href='#L22'>22</a>
<a name='L23'></a><a href='#L23'>23</a>
<a name='L24'></a><a href='#L24'>24</a>
<a name='L25'></a><a href='#L25'>25</a>
<a name='L26'></a><a href='#L26'>26</a>
<a name='L27'></a><a href='#L27'>27</a>
<a name='L28'></a><a href='#L28'>28</a>
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a>
<a name='L36'></a><a href='#L36'>36</a>
<a name='L37'></a><a href='#L37'>37</a>
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a>
<a name='L40'></a><a href='#L40'>40</a>
<a name='L41'></a><a href='#L41'>41</a>
<a name='L42'></a><a href='#L42'>42</a>
<a name='L43'></a><a href='#L43'>43</a>
<a name='L44'></a><a href='#L44'>44</a>
<a name='L45'></a><a href='#L45'>45</a>
<a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">9x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">5x</span>
<span class="cline-any cline-yes">5x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import isPlainObject from "lodash.isplainobject";
import { DURA_SYMBOL, DURA_PATCHES_SYMBOL } from "./Symbol";
import { defineHiddenConstantProperty } from "./defineHiddenConstantProperty";
&nbsp;
export function createProxy&lt;T extends object&gt;(
state: T,
deps: Map&lt;string, number&gt;,
parentPath?: string
) {
const proxy = new Proxy(state, {
get(target, property, receiver) {
const value = Reflect.get(target, property, receiver);
&nbsp;
//如果不是我自身定义的属性
if (!target.hasOwnProperty(property)) {
return value;
}
// 如果是 symbol 类型 则直接返回
if (property === DURA_SYMBOL || property === DURA_PATCHES_SYMBOL) {
return value;
}
&nbsp;
const path = caclPath(parentPath, property);
&nbsp;
if (isPlainObject(value) || Array.isArray(value)) {
defineHiddenConstantProperty(value, DURA_SYMBOL, 1);
return createProxy(value, deps, path);
}
&nbsp;
const count = deps.get(path) + 1;
if (isNaN(count)) {
deps.set(path, 1);
} else {
deps.set(path, count);
}
&nbsp;
return value;
},
});
return proxy;
}
&nbsp;
function caclPath(parentPath, property) {
return parentPath ? `${parentPath}.${property}` : `${property}`;
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/defineHiddenConstantProperty.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> defineHiddenConstantProperty.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export function defineHiddenConstantProperty&lt;T, S extends symbol | string, V&gt;(
target: T,
name: S,
value: V
) {
Object.defineProperty(target, name, {
value: value,
enumerable: true,
writable: false,
configurable: true,
});
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> src</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>54/54</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">95.45% </span>
<span class="quiet">Branches</span>
<span class='fraction'>21/22</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>13/13</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>52/52</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="Symbol.ts"><a href="Symbol.ts.html">Symbol.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
</tr>
<tr>
<td class="file high" data-value="createActions.ts"><a href="createActions.ts.html">createActions.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="12" class="abs high">12/12</td>
<td data-value="75" class="pct medium">75%</td>
<td data-value="4" class="abs medium">3/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="12" class="abs high">12/12</td>
</tr>
<tr>
<td class="file high" data-value="createProxy.ts"><a href="createProxy.ts.html">createProxy.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="21" class="abs high">21/21</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="14" class="abs high">14/14</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="3" class="abs high">3/3</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="21" class="abs high">21/21</td>
</tr>
<tr>
<td class="file high" data-value="defineHiddenConstantProperty.ts"><a href="defineHiddenConstantProperty.ts.html">defineHiddenConstantProperty.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
<tr>
<td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="7" class="abs high">7/7</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="7" class="abs high">7/7</td>
</tr>
<tr>
<td class="file high" data-value="keys.ts"><a href="keys.ts.html">keys.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
<tr>
<td class="file high" data-value="merge.ts"><a href="merge.ts.html">merge.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
<tr>
<td class="file high" data-value="noop.ts"><a href="noop.ts.html">noop.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
</tbody>
</table>
</div>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/index.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> index.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>7/7</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>7/7</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export * from "./defineHiddenConstantProperty";
export * from "./Symbol";
export * from "./createProxy";
export * from "./createActions";
export * from "./keys";
export * from "./merge";
export * from "./noop";
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/keys.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> keys.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { JsonObject } from "@dura/types";
&nbsp;
export function keys(target: JsonObject) {
return Object.keys(target);
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/merge.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> merge.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { JsonObject } from "@dura/types";
export function merge(prev: JsonObject = {}, next: JsonObject = {}) {
return { ...prev, ...next };
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/noop.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> noop.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export function noop() {
return {};
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/Symbol.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> Symbol.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>4/4</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const DURA_SYMBOL = Symbol("@@DURA_SYMBOL");
&nbsp;
export const DURA_PATCHES_SYMBOL = Symbol("@@DURA_PATCHES_SYMBOL");
&nbsp;
export const DURA_STORE_REDUCERS = Symbol("@@DURA_STORE_REDUCERS");
&nbsp;
export const DURA_STORE_EFFECTS = Symbol("@@DURA_STORE_EFFECTS");
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 15 2020 18:40:38 GMT+0800 (中国标准时间)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for Symbol.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="index.html">All files</a> Symbol.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>4/4</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const DURA_SYMBOL = Symbol('@@DURA_SYMBOL');
&nbsp;
export const DURA_PATCHES_SYMBOL = Symbol('@@DURA_PATCHES_SYMBOL');
&nbsp;
export const DURA_STORE_REDUCERS = Symbol('@@DURA_STORE_REDUCERS');
&nbsp;
export const DURA_STORE_EFFECTS = Symbol('@@DURA_STORE_EFFECTS');
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Sat Sep 19 2020 18:51:42 GMT+0800 (中国标准时间)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
module.exports = {
collectCoverage: true,
transform: {
"^.+\\.tsx?$": "ts-jest",
},
testPathIgnorePatterns: ["/node_modules/", "/example/", "/lib/"],
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
};

Sorry, the diff of this file is not supported yet