React with Native

Bringing together React and React Native

GitHub

README

Markdown parsings

markdown-parsings (

OperationClassification

TODO: Ensure embedding this will embed the actual docs in my markdown renderer. I guess it might already do so!

TODO: It would be great to learn more about this topic and see if I can make more cross-environment packages. A great use case would be to create a wrapper around the current fs-orm to enable using it at the frontend too.

OperationClassification node-cjs)

Api reference
getOperationSummary()

Summarises operation into useful information about it. Especially useful for generating docs.

Input
config{ operationName: string,
manualProjectRoot?: string,
}
Output
operationToMarkdown()

converts an operation and all its contents into a flat markdown file that contains the needed information. configurable.

markdown for reading (so there are no links)

Input
config{ operationSummary: OperationSummary,
returnType?: parse / string / save,
includeDocs?: boolean,
includeInfo?: boolean,
}
Output
📄 getOperationSummary (exported const)

Summarises operation into useful information about it. Especially useful for generating docs.

📄 operationToMarkdown (exported const)

converts an operation and all its contents into a flat markdown file that contains the needed information. configurable.

markdown for reading (so there are no links)

Tests
Show test information(4)
concatMarkdownFiles()
Input
-
Output
test()
Input
-
Output
📄 concatMarkdownFiles (exported const)
📄 test (unexported const)
Internal
Show internal (89)
addDependantCount()

Double arrow function to get the count for the item

Input
typetsFunction / tsVariable / tsInterface
Output{ }
bundleFolderWithMarkdown()

Finds all md files in a folder and creates a single MarkdownParse

handy for creating a single documentation file or other things that have to include multiple markdown files in a structured way

NB: it recursively structures the files and folders with headings

Input
outlineTitlestring
Output
bundleToBookMarkdown()

Input: BundleConfig (one or more folder(s), readme, operations with a docs folder)

Output should be all md files concatenated in the right order with the right titles

Input
config{ bundleConfig: BundleConfig,
title?: string,
coverImagePath?: string,
isModulesIncluded?: boolean,
manualProjectRoot?: string,
}
Output
bundleToMarkdown()

creates a summary for a whole bundle

NB: Related to bundleToBookMd

Input
{
bundleConfigId,
includeModules,
}{ bundleConfigId: string,
includeModules?: boolean,
}
OutputString
concatMarkdownFiles()
Input
-
Output
createMinimizedSectionMarkdown()
Input
markdownstring
OutputString
createMinimizedSection()
Input
markdown (optional)string
Output
deployToVercel()

NB: Obviously, this is not the right place for this function, but none of these functions are properly located yet...

should deploy any bundle or next project folder project to Vercel by first creating and pushing it into git, and then creating it in vercel through their api

should return an url where the project will be served and the estimated time when it will be live

Input
-
Output
emailMarkdownParse()

should email a markdown parse to some email (or multiple)

Input
-
Output
flattenNestedObject()

Flattens a nested object by returning an object that hasa the nested path as the key and the leaf as the value

TODO: Finish, if needed. seems hard!

Input
-
Output
generateStaticSite()

generates static site from a markdown file, with a menu on the right by default

uses next.js

because it is static, the markdown can be in the frontend assets and there is no need for a backend

Input
{
projectRelativeMdFilePath,
singlePage,
}{ singlePage?: boolean,
projectRelativeMdFilePath?: string,
}
Output
getJsonSchemaSummary()

Generates short markdown summary

Input
schema (optional)JSONSchema7
Output{ typeDescriptor: string,
description?: string,
}
getMarkdownContents()
Input
absoluteFolderPathstring
Output
getMergedMarkdownOutlineUrl()
Input
titlestring
Output{ title: string,
hashtagPath: string,
}
getOutline()

low-level function that gets the outline for MarkdownParse

NB: with books usually the pages are referred in the outline. Since that depends on the font size and dimensions, this cannot be done straight from the markdown parse. Eventually we probably need to check the made pdf for its content, maybe there is even a pdf feature that creates an outline for you. There must be more people having this problem.

Input
markdownParseMarkdownParse
Outputstring
getPublicMarkdownNestedPathObject()

Recursively searches a folder for public markdown files, and returns a NestedObject with the keys being the file or folder names, and the leafs being the absolute file paths.

File and folder names are stripped (number prefixes are removed, )

example:

{
"README": "path/path/README.md"
"folder1":{
"README": "path/path/folder1/REAMDE.md"
"file1": "path/path/folder1/file1.md",
}
}


| Input      |    |    |
| ---------- | -- | -- |
| absoluteFolderPath | string |  |
| **Output** |    |    |



## getTitlesRecursively()

helper function to get a nested array of the titles and its subtitles


| Input      |    |    |
| ---------- | -- | -- |
| chunk | `MarkdownChunk` |  |
| **Output** |    |    |



## getTypeDescriptorRecursive()

Returns a single line descriptor of the type of a json schema. Can be used in markdown tables.


| Input      |    |    |
| ---------- | -- | -- |
| schema | `JSONSchema7` |  |,| isMarkdown | boolean | If true, references will be links, otherwise, just the name of the referred interface |
| **Output** | `String`   |    |



## isConventionFileStatement()

| Input      |    |    |
| ---------- | -- | -- |
| item | {  } |  |,| conventionFile | test / cli |  |
| **Output** | {  }   |    |



## isUpperCase()

| Input      |    |    |
| ---------- | -- | -- |
| text | string |  |
| **Output** | {  }   |    |



## makeOutlineMarkdownString()

| Input      |    |    |
| ---------- | -- | -- |
| title | string |  |,| urls | `MergedMarkdownOutlineUrl`[] |  |
| **Output** | `String`   |    |



## makePropertiesTable()

| Input      |    |    |
| ---------- | -- | -- |
| properties (optional) | `SimplifiedSchemaProperty`[] |  |
| **Output** | `String`   |    |



## markdownChunkToMarkdownStringRecursive()

| Input      |    |    |
| ---------- | -- | -- |
| markdownChunk | `MarkdownChunk` |  |
| **Output** | `String`   |    |



## markdownChunksToMarkdownStringRecursive()

| Input      |    |    |
| ---------- | -- | -- |
| markdownChunks | `MarkdownChunk`[] |  |
| **Output** | `String`   |    |



## markdownToSayable()

all mp3s should be stored in a separate location because we don't need them in the file system and we don't reference them, as they are data that is located by convention. all markdowns should have a linked `TextToSpeechAudio[]` which is auto updated every time `dev` is ran. `TextToSpeechAudio` also includes infromation about the `duration`, `voice` and more...

a bigger `.md.mp3` file is auto-created for every markdown file that concatenates all `sayable` audio pieces in the right order, but also includes the audio pieces in between.


| Input      |    |    |
| ---------- | -- | -- |
| {
  markdown,
  markdownFilePath,
} | { markdownFilePath: string, <br />markdown: `MarkdownParse`, <br /> } |  |
| **Output** | { sayableText?: string, <br />voiceFileRelativePath?: string, <br /> }[]   |    |



## mdToPdf()

Have function `mdToPdf` like the vscode plugin. Probably exists.

However, may be good to do it myself since I want different renderings


| Input      |    |    |
| ---------- | -- | -- |
| {
  absoluteFilePath,
  markdown,
  markdownParse,
  pdfAbsoluteFilePath,
} | { absoluteFilePath?: string, <br />markdown?: string, <br />markdownParse?: `MarkdownParse`, <br />pdfAbsoluteFilePath?: string, <br /> } |  |
| **Output** |    |    |



## mergeMarkdownParse()

Merges multiple markdown parses to create a new markdown parse


| Input      |    |    |
| ---------- | -- | -- |
| markdownParses | `MarkdownParse`[] |  |,| fileName (optional) | string |  |
| **Output** |    |    |



## noNewlines()

Replaces newlines with a <br />


| Input      |    |    |
| ---------- | -- | -- |
| markdown (optional) | string |  |
| **Output** | string   |    |



## operationRadio()

randomly plays mp3 summaries of operations on the project


| Input      |    |    |
| ---------- | -- | -- |
| - | | |
| **Output** |    |    |



## printNestedTitles()

helper function (recursive) that prints nested titles with .. as prefix and a newline after every title

TODO: allow for numbering titles


| Input      |    |    |
| ---------- | -- | -- |
| nestedTitles (optional) | `NestedTitle`[] |  |,| depth (optional) | number |  |
| **Output** | string   |    |



## print()

should print any file using a preconfigured printer (which can be local or remote. if remote and there is no connection, it should save the task for later)

this function maybe needs "generateStaticSite"


| Input      |    |    |
| ---------- | -- | -- |
| { absoluteFilePath } | { absoluteFilePath: string, <br /> } |  |
| **Output** |    |    |



## projectToMarkdown()

summarizes the whole OS project into a markdown string


| Input      |    |    |
| ---------- | -- | -- |
| {
  includeTodo,
} | { includeTodo?: boolean, <br />includeOperationDetails?: boolean, <br /> } |  |
| **Output** | `String`   |    |



## propertyToTableRow()

| Input      |    |    |
| ---------- | -- | -- |
| property | `SimplifiedSchemaProperty` |  |
| **Output** | `String`   |    |



## sayablesToMp3()

Creates a single audiofile of a Sayable[] and stores that in a configured location


| Input      |    |    |
| ---------- | -- | -- |
| config | { destinationAbsoluteFilePath: string, <br />sayables: `Sayable`[], <br /> } |  |
| **Output** |    |    |



## selectRandomOperation()

selects a random operation


| Input      |    |    |
| ---------- | -- | -- |
| baseFolderPath (optional) | string |  |
| **Output** |    |    |



## simplifiedSchemaToMarkdownString()

Should render a string with one or more markdown tables to represent the simplifiedSchema


| Input      |    |    |
| ---------- | -- | -- |
| simplifiedSchema (optional) | `SimplifiedSchema` |  |,| name (optional) | string | if not given, no title is printed |,| isRequired | boolean |  |,| level (optional) | number | the headers level, defaults to 1 |
| **Output** | `String`   |    |



## statementItemToMarkdown()

| Input      |    |    |
| ---------- | -- | -- |
| statementItem | `StatementItem` |  |
| **Output** | string   |    |



## tsFunctionToMarkdownString()

TsFunction:
- name and operation
- size
- description (doc-comment)
- input, output


| Input      |    |    |
| ---------- | -- | -- |
| tsFunction | `TsFunction` |  |
| **Output** | `String`   |    |



## tsInterfaceToMarkdownString()

properties, their type, and their description

use simplifiedJsonSchema, but split up nested things into multiple tables (ive written a thing for splitting up nested objects before, use that)


| Input      |    |    |
| ---------- | -- | -- |
| tsInterface | `TsInterface` |  |
| **Output** | `String`   |    |



## tsVariableToMarkdownString()

| Input      |    |    |
| ---------- | -- | -- |
| tsVariable | `TsVariable` |  |
| **Output** | `String`   |    |



## upMarkdownChunkLevelRecursively()

Ups the levels of the markdownChunk array, recursively.

Can be useful for merging multiple markdown sources


| Input      |    |    |
| ---------- | -- | -- |
| markdownChunks (optional) | `MarkdownChunk`[] |  |
| **Output** |    |    |



## 🔹 DependantCountObject

interface that lets us count the amount of dependant files in different item types





Properties: 

 | Name | Type | Description |
|---|---|---|
| tsFunction (optional) | object |  |
| tsInterface (optional) | object |  |
| tsVariable (optional) | object |  |
| externalDependantFiles  | array |  |



## 🔹 JsonPart

Properties: 

 | Name | Type | Description |
|---|---|---|
| identifier (optional) | string |  |
| json  | object |  |



## 🔹 MergedMarkdownOutlineUrl

Properties: 

 | Name | Type | Description |
|---|---|---|
| title  | string |  |
| hashtagPath  | string |  |



## 🔹 NestedTitle

## 🔹 OperationSummary

Properties: 

 | Name | Type | Description |
|---|---|---|
| operationFolderPath  | string |  |
| operationName  | string |  |
| classification (optional) | string |  |
| description (optional) | string |  |
| size (optional) | object |  |
| coreDependenciesString  | string |  |
| operationDependenciesString  | string |  |
| packageDependenciesString  | string |  |
| cliItems  | array |  |
| testItems  | array |  |
| internalItems  | array |  |
| externalItems  | array |  |
| docs (optional) | array |  |



## 🔹 Sayable

GOAL:
- distribute read only (and audio only) material of my codebase
- it is also a fundament for other applications in the future





Properties: 

 | Name | Type | Description |
|---|---|---|
| sayableText (optional) | string |  |
| voiceFileRelativePath (optional) | string |  |



## 🔹 StatementItem

Properties: 

 | Name | Type | Description |
|---|---|---|
| tsFunction (optional) | object |  |
| tsInterface (optional) | object |  |
| tsVariable (optional) | object |  |



## 📄 addDependantCount (exported const)

Double arrow function to get the count for the item


## 📄 bundleFolderWithMarkdown (exported const)

Finds all md files in a folder and creates a single MarkdownParse

handy for creating a single documentation file or other things that have to include multiple markdown files in a structured way

NB: it recursively structures the files and folders with headings


## 📄 bundleToBookMarkdown (exported const)

Input: BundleConfig (one or more folder(s), readme, operations with a docs folder)

Output should be all md files concatenated in the right order with the right titles


## 📄 bundleToMarkdown (exported const)

creates a summary for a whole bundle

NB: Related to `bundleToBookMd`


## 📄 concatMarkdownFiles (exported const)

## 📄 createMinimizedSectionMarkdown (exported const)

## 📄 createMinimizedSection (exported const)

## 📄 deployToVercel (exported const)

NB: Obviously, this is not the right place for this function, but none of these functions are properly located yet...

should deploy any bundle or next project folder project to Vercel by first creating and pushing it into git, and then creating it in vercel through their api

should return an url where the project will be served and the estimated time when it will be live


## 📄 emailMarkdownParse (exported const)

should email a markdown parse to some email (or multiple)


## 📄 flattenNestedObject (exported const)

Flattens a nested object by returning an object that hasa the nested path as the key and the leaf as the value

TODO: Finish, if needed. seems hard!


## 📄 generateStaticSite (exported const)

generates static site from a markdown file, with a menu on the right by default

uses next.js

because it is static, the markdown can be in the frontend assets and there is no need for a backend


## 📄 getJsonSchemaSummary (exported const)

Generates short markdown summary


## 📄 getMarkdownContents (exported const)

## 📄 getMergedMarkdownOutlineUrl (exported const)

## 📄 getOutline (exported const)

low-level function that gets the outline for MarkdownParse

NB: with books usually the pages are referred in the outline. Since that depends on the font size and dimensions, this cannot be done straight from the markdown parse. Eventually we probably need to check the made pdf for its content, maybe there is even a pdf feature that creates an outline for you. There must be more people having this problem.


## 📄 getPublicMarkdownNestedPathObject (exported const)

Recursively searches a folder for public markdown files, and returns a `NestedObject` with the keys being the file or folder names, and the leafs being the absolute file paths.

File and folder names are stripped (number prefixes are removed, )

example:
```json
{
"README": "path/path/README.md"
"folder1":{
"README": "path/path/folder1/REAMDE.md"
"file1": "path/path/folder1/file1.md",
}
}


## 📄 getTitlesRecursively (exported const)

helper function to get a nested array of the titles and its subtitles


## 📄 getTypeDescriptorRecursive (exported const)

Returns a single line descriptor of the type of a json schema. Can be used in markdown tables.


## 📄 isConventionFileStatement (exported const)

## 📄 isUpperCase (exported const)

## 📄 makeOutlineMarkdownString (exported const)

## 📄 makePropertiesTable (exported const)

## 📄 markdownChunkToMarkdownStringRecursive (exported const)

## 📄 markdownChunksToMarkdownStringRecursive (exported const)

## 📄 markdownToSayable (exported const)

all mp3s should be stored in a separate location because we don't need them in the file system and we don't reference them, as they are data that is located by convention. all markdowns should have a linked `TextToSpeechAudio[]` which is auto updated every time `dev` is ran. `TextToSpeechAudio` also includes infromation about the `duration`, `voice` and more...

a bigger `.md.mp3` file is auto-created for every markdown file that concatenates all `sayable` audio pieces in the right order, but also includes the audio pieces in between.


## 📄 mdToPdf (exported const)

Have function `mdToPdf` like the vscode plugin. Probably exists.

However, may be good to do it myself since I want different renderings


## 📄 mergeMarkdownParse (exported const)

Merges multiple markdown parses to create a new markdown parse


## 📄 noNewlines (exported const)

Replaces newlines with a <br />


## 📄 operationRadio (exported const)

randomly plays mp3 summaries of operations on the project


## 📄 printNestedTitles (exported const)

helper function (recursive) that prints nested titles with .. as prefix and a newline after every title

TODO: allow for numbering titles


## 📄 print (exported const)

should print any file using a preconfigured printer (which can be local or remote. if remote and there is no connection, it should save the task for later)

this function maybe needs "generateStaticSite"


## 📄 projectToMarkdown (exported const)

summarizes the whole OS project into a markdown string


## 📄 propertyToTableRow (exported const)

## 📄 sayablesToMp3 (exported const)

Creates a single audiofile of a Sayable[] and stores that in a configured location


## 📄 selectRandomOperation (exported const)

selects a random operation


## 📄 simplifiedSchemaToMarkdownString (exported const)

Should render a string with one or more markdown tables to represent the simplifiedSchema


## 📄 statementItemToMarkdown (exported const)

## 📄 tsFunctionToMarkdownString (exported const)

TsFunction:
- name and operation
- size
- description (doc-comment)
- input, output


## 📄 tsInterfaceToMarkdownString (exported const)

properties, their type, and their description

use simplifiedJsonSchema, but split up nested things into multiple tables (ive written a thing for splitting up nested objects before, use that)


## 📄 tsVariableToMarkdownString (exported const)

## 📄 upMarkdownChunkLevelRecursively (exported const)

Ups the levels of the markdownChunk array, recursively.

Can be useful for merging multiple markdown sources
  </details>