@vuu-ui/vuu-data-test 0.13.20 → 0.13.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/core/module/ModuleContainer.js +0 -1
- package/cjs/core/module/ModuleContainer.js.map +1 -1
- package/cjs/simul/reference-data/parent-child-orders.js +0 -6
- package/cjs/simul/reference-data/parent-child-orders.js.map +1 -1
- package/esm/core/module/ModuleContainer.js +0 -1
- package/esm/core/module/ModuleContainer.js.map +1 -1
- package/esm/simul/reference-data/parent-child-orders.js +0 -6
- package/esm/simul/reference-data/parent-child-orders.js.map +1 -1
- package/package.json +6 -6
|
@@ -20,7 +20,6 @@ const _ModuleContainer = class _ModuleContainer {
|
|
|
20
20
|
}
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
22
|
register(module) {
|
|
23
|
-
console.log(`register module ${module.name}`);
|
|
24
23
|
__privateGet(this, _modules).set(module.name, module);
|
|
25
24
|
}
|
|
26
25
|
get(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleContainer.js","sources":["../../../../../packages/vuu-data-test/src/core/module/ModuleContainer.ts"],"sourcesContent":["import { VuuModule } from \"./VuuModule\";\n\nclass ModuleContainer {\n private constructor() {\n // empty constructor is all we need\n }\n static #instance: ModuleContainer;\n\n public static get instance(): ModuleContainer {\n if (!ModuleContainer.#instance) {\n ModuleContainer.#instance = new ModuleContainer();\n }\n return ModuleContainer.#instance;\n }\n\n #modules = new Map<string, VuuModule>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(module: VuuModule<any>) {\n
|
|
1
|
+
{"version":3,"file":"ModuleContainer.js","sources":["../../../../../packages/vuu-data-test/src/core/module/ModuleContainer.ts"],"sourcesContent":["import { VuuModule } from \"./VuuModule\";\n\nclass ModuleContainer {\n private constructor() {\n // empty constructor is all we need\n }\n static #instance: ModuleContainer;\n\n public static get instance(): ModuleContainer {\n if (!ModuleContainer.#instance) {\n ModuleContainer.#instance = new ModuleContainer();\n }\n return ModuleContainer.#instance;\n }\n\n #modules = new Map<string, VuuModule>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(module: VuuModule<any>) {\n this.#modules.set(module.name, module);\n }\n\n get(name: string) {\n const module = this.#modules.get(name);\n if (module) {\n return module;\n }\n throw Error(`[ModuleFactory] module ${name} not found`);\n }\n\n get moduleNames() {\n return this.#modules.keys();\n }\n}\n\nexport default ModuleContainer.instance;\n"],"names":[],"mappings":";;;;;;;;;AAAA,IAAA,SAAA,EAAA,QAAA;AAEA,MAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EACZ,WAAc,GAAA;AAYtB,IAAA,YAAA,CAAA,IAAA,EAAA,QAAA,sBAAe,GAAuB,EAAA,CAAA;AAAA;AAVtC,EAGA,WAAkB,QAA4B,GAAA;AAC5C,IAAI,IAAA,CAAC,+BAAgB,SAAW,CAAA,EAAA;AAC9B,MAAgB,YAAA,CAAA,gBAAA,EAAA,SAAA,EAAY,IAAI,gBAAgB,EAAA,CAAA;AAAA;AAElD,IAAA,OAAO,YAAgB,CAAA,gBAAA,EAAA,SAAA,CAAA;AAAA;AACzB;AAAA,EAKA,SAAS,MAAwB,EAAA;AAC/B,IAAA,YAAA,CAAA,IAAA,EAAK,QAAS,CAAA,CAAA,GAAA,CAAI,MAAO,CAAA,IAAA,EAAM,MAAM,CAAA;AAAA;AACvC,EAEA,IAAI,IAAc,EAAA;AAChB,IAAA,MAAM,MAAS,GAAA,YAAA,CAAA,IAAA,EAAK,QAAS,CAAA,CAAA,GAAA,CAAI,IAAI,CAAA;AACrC,IAAA,IAAI,MAAQ,EAAA;AACV,MAAO,OAAA,MAAA;AAAA;AAET,IAAM,MAAA,KAAA,CAAM,CAA0B,uBAAA,EAAA,IAAI,CAAY,UAAA,CAAA,CAAA;AAAA;AACxD,EAEA,IAAI,WAAc,GAAA;AAChB,IAAO,OAAA,YAAA,CAAA,IAAA,EAAK,UAAS,IAAK,EAAA;AAAA;AAE9B,CAAA;AA3BS,SAAA,GAAA,IAAA,OAAA,EAAA;AASP,QAAA,GAAA,IAAA,OAAA,EAAA;AATA,YAAA,CAJI,gBAIG,EAAA,SAAA,CAAA;AAJT,IAAM,eAAN,GAAA,gBAAA;AAiCA,sBAAe,eAAgB,CAAA,QAAA;;;;"}
|
|
@@ -19,7 +19,6 @@ const avgChildOrderPerOrder = Math.round(
|
|
|
19
19
|
);
|
|
20
20
|
const childMaxMultiple = 10;
|
|
21
21
|
const clock = new vuuUtils.Clock().goBack(120, "minutes");
|
|
22
|
-
console.log(`starting order generation at ${clock}`);
|
|
23
22
|
const parentOrdersTable = TableContainer.createTable(
|
|
24
23
|
simulSchemas.schemas.parentOrders,
|
|
25
24
|
[],
|
|
@@ -122,15 +121,10 @@ function createParentAndChildOrders() {
|
|
|
122
121
|
);
|
|
123
122
|
}
|
|
124
123
|
function createInitialOrders() {
|
|
125
|
-
const start = performance.now();
|
|
126
124
|
for (let i = 0; i < PARENT_ORDER_COUNT; i++) {
|
|
127
125
|
clock.advance(dataUtils.random(0, 100));
|
|
128
126
|
createParentAndChildOrders();
|
|
129
127
|
}
|
|
130
|
-
const end = performance.now();
|
|
131
|
-
console.log(
|
|
132
|
-
`took ${end - start} to create ${parentOrdersTable.data.length} orders and ${childOrdersTable.data.length} child orders, last order created at ${clock}`
|
|
133
|
-
);
|
|
134
128
|
}
|
|
135
129
|
let newOrderInterval = void 0;
|
|
136
130
|
function startGeneratingNewOrders() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parent-child-orders.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/parent-child-orders.ts"],"sourcesContent":["import { Clock } from \"@vuu-ui/vuu-utils\";\nimport tableContainer from \"../../core/table/TableContainer\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { accounts } from \"./accounts\";\nimport { algos } from \"./algos\";\nimport { instrumentsData } from \"./instruments\";\nimport { orderStatus as statusValues } from \"./orderStatus\";\nimport { sides } from \"./sides\";\n\nconst instrumentMap = buildDataColumnMap(schemas, \"instruments\");\n\n// const PARENT_ORDER_COUNT = 75_000;\nconst PARENT_ORDER_COUNT = 5_000;\nconst CHILD_ORDER_COUNT = 20_000;\n// const CHILD_ORDER_COUNT = 200_000;\n\nconst avgChildOrderPerOrder = Math.round(\n CHILD_ORDER_COUNT / PARENT_ORDER_COUNT,\n);\nconst childMaxMultiple = 10;\n\nconst clock = new Clock().goBack(120, \"minutes\");\
|
|
1
|
+
{"version":3,"file":"parent-child-orders.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/parent-child-orders.ts"],"sourcesContent":["import { Clock } from \"@vuu-ui/vuu-utils\";\nimport tableContainer from \"../../core/table/TableContainer\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { accounts } from \"./accounts\";\nimport { algos } from \"./algos\";\nimport { instrumentsData } from \"./instruments\";\nimport { orderStatus as statusValues } from \"./orderStatus\";\nimport { sides } from \"./sides\";\n\nconst instrumentMap = buildDataColumnMap(schemas, \"instruments\");\n\n// const PARENT_ORDER_COUNT = 75_000;\nconst PARENT_ORDER_COUNT = 5_000;\nconst CHILD_ORDER_COUNT = 20_000;\n// const CHILD_ORDER_COUNT = 200_000;\n\nconst avgChildOrderPerOrder = Math.round(\n CHILD_ORDER_COUNT / PARENT_ORDER_COUNT,\n);\nconst childMaxMultiple = 10;\n\nconst clock = new Clock().goBack(120, \"minutes\");\n// console.log(`starting order generation at ${clock}`);\n\nexport const parentOrdersTable = tableContainer.createTable(\n schemas.parentOrders,\n [],\n buildDataColumnMap(schemas, \"parentOrders\"),\n);\n\nexport const childOrdersTable = tableContainer.createTable(\n schemas.childOrders,\n [],\n buildDataColumnMap(schemas, \"childOrders\"),\n);\n\nlet parentOrderCount = 0;\nlet childOrderCount = 0;\nlet notifyNewOrders = false;\n\nfunction createParentAndChildOrders() {\n parentOrderCount += 1;\n const instrument = instrumentsData[random(0, instrumentsData.length - 1)];\n const orderQuantity = 1000 * random(1, 100);\n const orderStatus = statusValues[random(0, statusValues.length - 1)];\n const filledQty =\n orderStatus === \"FILLED\"\n ? orderQuantity\n : orderStatus === \"NEW\"\n ? 0\n : orderQuantity - random(100, orderQuantity);\n const openQty = orderQuantity - filledQty;\n const account = accounts[random(0, accounts.length - 1)];\n const algo = algos[random(0, algos.length - 1)];\n const averagePrice = 0;\n const ccy = \"GBP\";\n const exchange = instrument[instrumentMap.exchange];\n const parentOrderIdAsInt = parentOrderCount;\n const parentOrderId = parentOrderCount.toString().padStart(10, \"0\");\n const price = 100;\n const quantity = orderQuantity;\n const ric = instrument[instrumentMap.ric];\n const side = sides[random(0, sides.length - 1)];\n const status = orderStatus;\n const volLimit = 100;\n const lastUpdate = clock.now;\n const created = clock.now;\n\n const numberOfChildOrders = random(\n 0,\n avgChildOrderPerOrder * random(1, childMaxMultiple),\n );\n\n let remainingQty = orderQuantity;\n for (let j = 0; j < numberOfChildOrders; j++) {\n childOrderCount += 1;\n\n const childOrderQuantity = Math.round(remainingQty / (childOrderCount - j));\n remainingQty -= childOrderQuantity;\n const childOrderStatus = statusValues[random(0, statusValues.length - 1)];\n const childFilledQty =\n orderStatus === \"FILLED\"\n ? childOrderQuantity\n : childOrderStatus === \"NEW\"\n ? 0\n : childOrderQuantity - random(100, childOrderQuantity);\n const childOpenQty = childOrderQuantity - childFilledQty;\n const averagePrice = 0;\n const childIdAsInt = childOrderCount;\n const childId = childOrderCount.toString().padStart(10, \"0\");\n const lastUpdate = 0;\n const price = 100;\n const strategy = 0;\n\n childOrdersTable.insert(\n [\n account,\n averagePrice,\n ccy,\n exchange,\n childFilledQty,\n childId,\n childIdAsInt,\n childOpenQty,\n parentOrderId,\n price,\n childOrderQuantity,\n ric,\n side,\n childOrderStatus,\n strategy,\n volLimit,\n lastUpdate,\n created,\n ],\n notifyNewOrders,\n );\n }\n\n parentOrdersTable.insert(\n [\n account,\n algo,\n averagePrice,\n ccy,\n childOrderCount,\n exchange,\n filledQty,\n parentOrderId,\n parentOrderIdAsInt,\n openQty,\n price,\n quantity,\n ric,\n side,\n status,\n volLimit,\n lastUpdate,\n created,\n ],\n notifyNewOrders,\n );\n}\n\nfunction createInitialOrders() {\n // const start = performance.now();\n for (let i = 0; i < PARENT_ORDER_COUNT; i++) {\n clock.advance(random(0, 100));\n createParentAndChildOrders();\n }\n // const end = performance.now();\n // console.log(\n // `took ${end - start} to create ${parentOrdersTable.data.length} orders and ${childOrdersTable.data.length} child orders, last order created at ${clock}`,\n // );\n}\n\nlet newOrderInterval: undefined | ReturnType<typeof setInterval> = undefined;\n\nexport function startGeneratingNewOrders() {\n newOrderInterval = setInterval(createParentAndChildOrders, 100);\n}\n\nexport function stopGeneratingNewOrders() {\n clearInterval(newOrderInterval);\n}\n\ncreateInitialOrders();\n\nclock.showCurrentTime = true;\nnotifyNewOrders = true;\n\n// startGeneratingNewOrders();\n"],"names":["buildDataColumnMap","schemas","Clock","tableContainer","instrumentsData","random","orderStatus","statusValues","accounts","algos","sides","averagePrice","lastUpdate","price"],"mappings":"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"}
|
|
@@ -18,7 +18,6 @@ const _ModuleContainer = class _ModuleContainer {
|
|
|
18
18
|
}
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
20
|
register(module) {
|
|
21
|
-
console.log(`register module ${module.name}`);
|
|
22
21
|
__privateGet(this, _modules).set(module.name, module);
|
|
23
22
|
}
|
|
24
23
|
get(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleContainer.js","sources":["../../../../../packages/vuu-data-test/src/core/module/ModuleContainer.ts"],"sourcesContent":["import { VuuModule } from \"./VuuModule\";\n\nclass ModuleContainer {\n private constructor() {\n // empty constructor is all we need\n }\n static #instance: ModuleContainer;\n\n public static get instance(): ModuleContainer {\n if (!ModuleContainer.#instance) {\n ModuleContainer.#instance = new ModuleContainer();\n }\n return ModuleContainer.#instance;\n }\n\n #modules = new Map<string, VuuModule>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(module: VuuModule<any>) {\n
|
|
1
|
+
{"version":3,"file":"ModuleContainer.js","sources":["../../../../../packages/vuu-data-test/src/core/module/ModuleContainer.ts"],"sourcesContent":["import { VuuModule } from \"./VuuModule\";\n\nclass ModuleContainer {\n private constructor() {\n // empty constructor is all we need\n }\n static #instance: ModuleContainer;\n\n public static get instance(): ModuleContainer {\n if (!ModuleContainer.#instance) {\n ModuleContainer.#instance = new ModuleContainer();\n }\n return ModuleContainer.#instance;\n }\n\n #modules = new Map<string, VuuModule>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(module: VuuModule<any>) {\n this.#modules.set(module.name, module);\n }\n\n get(name: string) {\n const module = this.#modules.get(name);\n if (module) {\n return module;\n }\n throw Error(`[ModuleFactory] module ${name} not found`);\n }\n\n get moduleNames() {\n return this.#modules.keys();\n }\n}\n\nexport default ModuleContainer.instance;\n"],"names":[],"mappings":";;;;;;;AAAA,IAAA,SAAA,EAAA,QAAA;AAEA,MAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EACZ,WAAc,GAAA;AAYtB,IAAA,YAAA,CAAA,IAAA,EAAA,QAAA,sBAAe,GAAuB,EAAA,CAAA;AAAA;AAVtC,EAGA,WAAkB,QAA4B,GAAA;AAC5C,IAAI,IAAA,CAAC,+BAAgB,SAAW,CAAA,EAAA;AAC9B,MAAgB,YAAA,CAAA,gBAAA,EAAA,SAAA,EAAY,IAAI,gBAAgB,EAAA,CAAA;AAAA;AAElD,IAAA,OAAO,YAAgB,CAAA,gBAAA,EAAA,SAAA,CAAA;AAAA;AACzB;AAAA,EAKA,SAAS,MAAwB,EAAA;AAC/B,IAAA,YAAA,CAAA,IAAA,EAAK,QAAS,CAAA,CAAA,GAAA,CAAI,MAAO,CAAA,IAAA,EAAM,MAAM,CAAA;AAAA;AACvC,EAEA,IAAI,IAAc,EAAA;AAChB,IAAA,MAAM,MAAS,GAAA,YAAA,CAAA,IAAA,EAAK,QAAS,CAAA,CAAA,GAAA,CAAI,IAAI,CAAA;AACrC,IAAA,IAAI,MAAQ,EAAA;AACV,MAAO,OAAA,MAAA;AAAA;AAET,IAAM,MAAA,KAAA,CAAM,CAA0B,uBAAA,EAAA,IAAI,CAAY,UAAA,CAAA,CAAA;AAAA;AACxD,EAEA,IAAI,WAAc,GAAA;AAChB,IAAO,OAAA,YAAA,CAAA,IAAA,EAAK,UAAS,IAAK,EAAA;AAAA;AAE9B,CAAA;AA3BS,SAAA,GAAA,IAAA,OAAA,EAAA;AASP,QAAA,GAAA,IAAA,OAAA,EAAA;AATA,YAAA,CAJI,gBAIG,EAAA,SAAA,CAAA;AAJT,IAAM,eAAN,GAAA,gBAAA;AAiCA,sBAAe,eAAgB,CAAA,QAAA;;;;"}
|
|
@@ -17,7 +17,6 @@ const avgChildOrderPerOrder = Math.round(
|
|
|
17
17
|
);
|
|
18
18
|
const childMaxMultiple = 10;
|
|
19
19
|
const clock = new Clock().goBack(120, "minutes");
|
|
20
|
-
console.log(`starting order generation at ${clock}`);
|
|
21
20
|
const parentOrdersTable = tableContainer.createTable(
|
|
22
21
|
schemas.parentOrders,
|
|
23
22
|
[],
|
|
@@ -120,15 +119,10 @@ function createParentAndChildOrders() {
|
|
|
120
119
|
);
|
|
121
120
|
}
|
|
122
121
|
function createInitialOrders() {
|
|
123
|
-
const start = performance.now();
|
|
124
122
|
for (let i = 0; i < PARENT_ORDER_COUNT; i++) {
|
|
125
123
|
clock.advance(random(0, 100));
|
|
126
124
|
createParentAndChildOrders();
|
|
127
125
|
}
|
|
128
|
-
const end = performance.now();
|
|
129
|
-
console.log(
|
|
130
|
-
`took ${end - start} to create ${parentOrdersTable.data.length} orders and ${childOrdersTable.data.length} child orders, last order created at ${clock}`
|
|
131
|
-
);
|
|
132
126
|
}
|
|
133
127
|
let newOrderInterval = void 0;
|
|
134
128
|
function startGeneratingNewOrders() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parent-child-orders.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/parent-child-orders.ts"],"sourcesContent":["import { Clock } from \"@vuu-ui/vuu-utils\";\nimport tableContainer from \"../../core/table/TableContainer\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { accounts } from \"./accounts\";\nimport { algos } from \"./algos\";\nimport { instrumentsData } from \"./instruments\";\nimport { orderStatus as statusValues } from \"./orderStatus\";\nimport { sides } from \"./sides\";\n\nconst instrumentMap = buildDataColumnMap(schemas, \"instruments\");\n\n// const PARENT_ORDER_COUNT = 75_000;\nconst PARENT_ORDER_COUNT = 5_000;\nconst CHILD_ORDER_COUNT = 20_000;\n// const CHILD_ORDER_COUNT = 200_000;\n\nconst avgChildOrderPerOrder = Math.round(\n CHILD_ORDER_COUNT / PARENT_ORDER_COUNT,\n);\nconst childMaxMultiple = 10;\n\nconst clock = new Clock().goBack(120, \"minutes\");\
|
|
1
|
+
{"version":3,"file":"parent-child-orders.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/parent-child-orders.ts"],"sourcesContent":["import { Clock } from \"@vuu-ui/vuu-utils\";\nimport tableContainer from \"../../core/table/TableContainer\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { accounts } from \"./accounts\";\nimport { algos } from \"./algos\";\nimport { instrumentsData } from \"./instruments\";\nimport { orderStatus as statusValues } from \"./orderStatus\";\nimport { sides } from \"./sides\";\n\nconst instrumentMap = buildDataColumnMap(schemas, \"instruments\");\n\n// const PARENT_ORDER_COUNT = 75_000;\nconst PARENT_ORDER_COUNT = 5_000;\nconst CHILD_ORDER_COUNT = 20_000;\n// const CHILD_ORDER_COUNT = 200_000;\n\nconst avgChildOrderPerOrder = Math.round(\n CHILD_ORDER_COUNT / PARENT_ORDER_COUNT,\n);\nconst childMaxMultiple = 10;\n\nconst clock = new Clock().goBack(120, \"minutes\");\n// console.log(`starting order generation at ${clock}`);\n\nexport const parentOrdersTable = tableContainer.createTable(\n schemas.parentOrders,\n [],\n buildDataColumnMap(schemas, \"parentOrders\"),\n);\n\nexport const childOrdersTable = tableContainer.createTable(\n schemas.childOrders,\n [],\n buildDataColumnMap(schemas, \"childOrders\"),\n);\n\nlet parentOrderCount = 0;\nlet childOrderCount = 0;\nlet notifyNewOrders = false;\n\nfunction createParentAndChildOrders() {\n parentOrderCount += 1;\n const instrument = instrumentsData[random(0, instrumentsData.length - 1)];\n const orderQuantity = 1000 * random(1, 100);\n const orderStatus = statusValues[random(0, statusValues.length - 1)];\n const filledQty =\n orderStatus === \"FILLED\"\n ? orderQuantity\n : orderStatus === \"NEW\"\n ? 0\n : orderQuantity - random(100, orderQuantity);\n const openQty = orderQuantity - filledQty;\n const account = accounts[random(0, accounts.length - 1)];\n const algo = algos[random(0, algos.length - 1)];\n const averagePrice = 0;\n const ccy = \"GBP\";\n const exchange = instrument[instrumentMap.exchange];\n const parentOrderIdAsInt = parentOrderCount;\n const parentOrderId = parentOrderCount.toString().padStart(10, \"0\");\n const price = 100;\n const quantity = orderQuantity;\n const ric = instrument[instrumentMap.ric];\n const side = sides[random(0, sides.length - 1)];\n const status = orderStatus;\n const volLimit = 100;\n const lastUpdate = clock.now;\n const created = clock.now;\n\n const numberOfChildOrders = random(\n 0,\n avgChildOrderPerOrder * random(1, childMaxMultiple),\n );\n\n let remainingQty = orderQuantity;\n for (let j = 0; j < numberOfChildOrders; j++) {\n childOrderCount += 1;\n\n const childOrderQuantity = Math.round(remainingQty / (childOrderCount - j));\n remainingQty -= childOrderQuantity;\n const childOrderStatus = statusValues[random(0, statusValues.length - 1)];\n const childFilledQty =\n orderStatus === \"FILLED\"\n ? childOrderQuantity\n : childOrderStatus === \"NEW\"\n ? 0\n : childOrderQuantity - random(100, childOrderQuantity);\n const childOpenQty = childOrderQuantity - childFilledQty;\n const averagePrice = 0;\n const childIdAsInt = childOrderCount;\n const childId = childOrderCount.toString().padStart(10, \"0\");\n const lastUpdate = 0;\n const price = 100;\n const strategy = 0;\n\n childOrdersTable.insert(\n [\n account,\n averagePrice,\n ccy,\n exchange,\n childFilledQty,\n childId,\n childIdAsInt,\n childOpenQty,\n parentOrderId,\n price,\n childOrderQuantity,\n ric,\n side,\n childOrderStatus,\n strategy,\n volLimit,\n lastUpdate,\n created,\n ],\n notifyNewOrders,\n );\n }\n\n parentOrdersTable.insert(\n [\n account,\n algo,\n averagePrice,\n ccy,\n childOrderCount,\n exchange,\n filledQty,\n parentOrderId,\n parentOrderIdAsInt,\n openQty,\n price,\n quantity,\n ric,\n side,\n status,\n volLimit,\n lastUpdate,\n created,\n ],\n notifyNewOrders,\n );\n}\n\nfunction createInitialOrders() {\n // const start = performance.now();\n for (let i = 0; i < PARENT_ORDER_COUNT; i++) {\n clock.advance(random(0, 100));\n createParentAndChildOrders();\n }\n // const end = performance.now();\n // console.log(\n // `took ${end - start} to create ${parentOrdersTable.data.length} orders and ${childOrdersTable.data.length} child orders, last order created at ${clock}`,\n // );\n}\n\nlet newOrderInterval: undefined | ReturnType<typeof setInterval> = undefined;\n\nexport function startGeneratingNewOrders() {\n newOrderInterval = setInterval(createParentAndChildOrders, 100);\n}\n\nexport function stopGeneratingNewOrders() {\n clearInterval(newOrderInterval);\n}\n\ncreateInitialOrders();\n\nclock.showCurrentTime = true;\nnotifyNewOrders = true;\n\n// startGeneratingNewOrders();\n"],"names":["orderStatus","statusValues","averagePrice","lastUpdate","price"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.13.
|
|
2
|
+
"version": "0.13.22",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@vuu-ui/vuu-data-local": "0.13.
|
|
7
|
-
"@vuu-ui/vuu-utils": "0.13.
|
|
6
|
+
"@vuu-ui/vuu-data-local": "0.13.22",
|
|
7
|
+
"@vuu-ui/vuu-utils": "0.13.22"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
|
-
"@vuu-ui/vuu-protocol-types": "0.13.
|
|
11
|
-
"@vuu-ui/vuu-data-types": "0.13.
|
|
12
|
-
"@vuu-ui/vuu-table-types": "0.13.
|
|
10
|
+
"@vuu-ui/vuu-protocol-types": "0.13.22",
|
|
11
|
+
"@vuu-ui/vuu-data-types": "0.13.22",
|
|
12
|
+
"@vuu-ui/vuu-table-types": "0.13.22"
|
|
13
13
|
},
|
|
14
14
|
"sideEffects": false,
|
|
15
15
|
"files": [
|