Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save teamdandelion/d55a1a592931cbc3e8fb66256577a052 to your computer and use it in GitHub Desktop.
Save teamdandelion/d55a1a592931cbc3e8fb66256577a052 to your computer and use it in GitHub Desktop.
export type Tag = string;
export type UUID = string;
type EditorNode = {|
+uuid: UUID,
+tags: $ReadOnlyArray<Tag>,
+title: string,
+description: string,
+connections: $ReadOnlyArray<EditorConnection>,
+timestamp: TimestampMs | null,
|}
type EdgeWeight = {|
+forwards: number,
+backwards: number,
|}
type EditorEdge = {|
+endpoint: NodeAddressT,
+weight: EdgeWeight,
+timestamp: TimestampMs,
|}
type MintEvent = {|
+uuid: UUID,
+timestamp: TimestampMs,
+mintAmount: number,
+target: NodeAddressT,
|}
----
MeetingTemplate:
- particpants (EDGES to CONTRIBUTORS, weight X)
- hosts (EDGES to CONTRIBUTORS, weight X)
- recording link (EDGE to ???? TBD )
- description
- notes (EDGE to ROAM?)
MeetingComponent : React Node
EditorTemplate = $ReadOnlyArray<TemplateField>
type TemplateField = TextField | EdgesField
type TextField = {|
+type: "TEXT",
+fieldName: string,
|}
type EdgesField = {|
+type: "CONTRIBUTORS",
+fieldName: string,
+forwardWeight: number,
+backwardsWeight: number,
+pluraity: "SINGLETON" | "REPEATED",
+filter: Filter,
|}
export type Filter = UserTypeFilter | AddressPrefixFilter | TagFilter
type UserTypeFilter = {|+type: "USER_TYPE"|}
type AddressPrefixFilter = {|
+type: "ADDRESS",
+prefixes: $ReadOnlyArray<NodeAddressT>
|}
type AddressFilter = {|
+type: "TAGS",
+tags: $ReadOnlyArray<Tag>
|}
MeetingEntry = {|
+uuid: UUID,
+particpants: NodeAddressT[],
+description: string,
+host: NodeAddressT[],
|}
type CodeModule = {|
+uuid: UUID,
+title: string,
+description: string,
+githubPath: string,
+dependencies:
|}
Code Modules
Meetings
Initiatives
@teamdandelion
Copy link
Author

//@flow

// Scope: TAGS ARE FOR FILTERING!

type TagStore = {|
+tags: $ReadOnlyArray,
+applications: ReadOnlyArray
|}

type TagApplication = {|+node: NodeAddressT, +tag: TagAddress|}

type Tag = {|
+address: TagAddress,
+name: string,
+description: string,
+hexColor: string,
|}

Examples of Tags

  • Discourse categories
  • GitHub labels
  • Types (PULL, ISSUE, POST)
  • Discord Roles
  • Discord Channels

"sourcecred/github/labels/build"
"sourcecred/github/labels/good-first-issue"

LINES_ADDED, 1003

type RoleMetada = "COMMUNITY" | "CONTRIBUTOR" | "CORE" |

Somebody -> Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment