Compare commits
2 Commits
bcc3277cb9
...
use-flatma
| Author | SHA1 | Date | |
|---|---|---|---|
|
941414b3ee
|
|||
|
e9bc6186b9
|
23
readme.md
23
readme.md
@@ -9,7 +9,7 @@ mkdir xo-terminal && cd xo-terminal
|
|||||||
|
|
||||||
# ----- Start Engine Setup -----
|
# ----- Start Engine Setup -----
|
||||||
# Clone the Engine Repo (Note, this uses harvey's fork of the engine repo to access the cli-test branch)
|
# Clone the Engine Repo (Note, this uses harvey's fork of the engine repo to access the cli-test branch)
|
||||||
git clone https://gitlab.com/Harvmaster/engine.git
|
git clone git@gitlab.com:Harvmaster/engine.git
|
||||||
|
|
||||||
# Move into teh engine directory
|
# Move into teh engine directory
|
||||||
cd engine
|
cd engine
|
||||||
@@ -29,7 +29,7 @@ cd ..
|
|||||||
|
|
||||||
# ----- Start State Setup -----
|
# ----- Start State Setup -----
|
||||||
# Clone the State Repo
|
# Clone the State Repo
|
||||||
git clone https://gitlab.com/Harvmaster/state.git
|
git clone git@gitlab.com:Harvmaster/state.git
|
||||||
|
|
||||||
# Move into the state directory
|
# Move into the state directory
|
||||||
cd state
|
cd state
|
||||||
@@ -46,26 +46,9 @@ npm run build
|
|||||||
# Move back to the top level directory
|
# Move back to the top level directory
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# ----- Start Template Setup ----
|
|
||||||
# Clone the Template repo
|
|
||||||
git clone https://gitlab.com/Harvmaster/templates.git
|
|
||||||
|
|
||||||
# Move into themplates directory
|
|
||||||
cd templates
|
|
||||||
|
|
||||||
# Install deps
|
|
||||||
npm ci
|
|
||||||
|
|
||||||
#build the templates
|
|
||||||
npm run build
|
|
||||||
# ----- End Templates Setup ----
|
|
||||||
|
|
||||||
# Move back to the top level directory
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
# ----- Start CLI Setup -----
|
# ----- Start CLI Setup -----
|
||||||
# Clone the CLI Repo
|
# Clone the CLI Repo
|
||||||
git clone https://git.harvmaster.com/Harvmaster/xo-cli.git
|
git clone git@git.harvmaster.com:Harvmaster/xo-cli.git
|
||||||
|
|
||||||
# Move into the cli directory
|
# Move into the cli directory
|
||||||
cd xo-cli
|
cd xo-cli
|
||||||
|
|||||||
@@ -510,7 +510,7 @@ export class Invitation extends EventEmitter<InvitationEventMap> {
|
|||||||
const templates = await this.engine.listImportedTemplates();
|
const templates = await this.engine.listImportedTemplates();
|
||||||
|
|
||||||
// For each template, we need to create a 2d array of all the outputs
|
// For each template, we need to create a 2d array of all the outputs
|
||||||
const outputs = templates.map(template => {
|
const outputs = templates.flatMap(template => {
|
||||||
return Object.keys(template.outputs).map(output => {
|
return Object.keys(template.outputs).map(output => {
|
||||||
const templateIdentifier = generateTemplateIdentifier(template);
|
const templateIdentifier = generateTemplateIdentifier(template);
|
||||||
|
|
||||||
@@ -522,7 +522,7 @@ export class Invitation extends EventEmitter<InvitationEventMap> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// then, for each output, we need to get the spendable resources
|
// then, for each output, we need to get the spendable resources
|
||||||
const spendableResources = await Promise.all(outputs.flat().map(output => {
|
const spendableResources = await Promise.all(outputs.map(output => {
|
||||||
return this.engine.getSpendableResources(this.data, {
|
return this.engine.getSpendableResources(this.data, {
|
||||||
templateIdentifier: output.templateIdentifier,
|
templateIdentifier: output.templateIdentifier,
|
||||||
outputIdentifier: output.outputIdentifier,
|
outputIdentifier: output.outputIdentifier,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import type { Invitation } from "../services/invitation.js";
|
import type { Invitation } from "../services/invitation.js";
|
||||||
import type { XOTemplate } from "@xo-cash/types";
|
import type { XOInvitationCommit, XOTemplate } from "@xo-cash/types";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Color names for invitation states.
|
* Color names for invitation states.
|
||||||
@@ -249,9 +249,9 @@ export function formatInvitationId(id: string, maxLength: number = 16): string {
|
|||||||
* @param invitation - The invitation to check
|
* @param invitation - The invitation to check
|
||||||
* @returns Array of unique entity identifiers
|
* @returns Array of unique entity identifiers
|
||||||
*/
|
*/
|
||||||
export function getInvitationParticipants(invitation: Invitation): string[] {
|
export function getInvitationParticipants(commits: Array<XOInvitationCommit>): string[] {
|
||||||
const participants = new Set<string>();
|
const participants = new Set<string>();
|
||||||
for (const commit of invitation.data.commits || []) {
|
for (const commit of commits) {
|
||||||
if (commit.entityIdentifier) {
|
if (commit.entityIdentifier) {
|
||||||
participants.add(commit.entityIdentifier);
|
participants.add(commit.entityIdentifier);
|
||||||
}
|
}
|
||||||
@@ -267,9 +267,14 @@ export function getInvitationParticipants(invitation: Invitation): string[] {
|
|||||||
* @returns True if the user has made at least one commit
|
* @returns True if the user has made at least one commit
|
||||||
*/
|
*/
|
||||||
export function isUserParticipant(
|
export function isUserParticipant(
|
||||||
invitation: Invitation,
|
invitation: Invitation | Array<XOInvitationCommit>,
|
||||||
userEntityId: string | null,
|
userEntityId: string | null,
|
||||||
): boolean {
|
): boolean {
|
||||||
if (!userEntityId) return false;
|
if (!userEntityId) return false;
|
||||||
return getInvitationParticipants(invitation).includes(userEntityId);
|
|
||||||
|
if (Array.isArray(invitation)) {
|
||||||
|
return invitation.some(commit => commit.entityIdentifier === userEntityId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return getInvitationParticipants(invitation.data.commits).includes(userEntityId);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user