prep for publish
This commit is contained in:
parent
e095f79743
commit
4bc5e7c4a7
2 changed files with 201 additions and 2 deletions
134
.npmignore
Normal file
134
.npmignore
Normal file
|
@ -0,0 +1,134 @@
|
|||
.github/*
|
||||
funkyArray.ts
|
||||
tsconfig.json
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# Snowpack dependency directory (https://snowpack.dev/)
|
||||
web_modules/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional stylelint cache
|
||||
.stylelintcache
|
||||
|
||||
# Microbundle cache
|
||||
.rpt2_cache/
|
||||
.rts2_cache_cjs/
|
||||
.rts2_cache_es/
|
||||
.rts2_cache_umd/
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variable files
|
||||
.env
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
.parcel-cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
out
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# vuepress v2.x temp and cache directory
|
||||
.temp
|
||||
.cache
|
||||
|
||||
# Docusaurus cache and generated files
|
||||
.docusaurus
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
# Stores VSCode versions used for testing VSCode extensions
|
||||
.vscode-test
|
||||
|
||||
# yarn v2
|
||||
.yarn/cache
|
||||
.yarn/unplugged
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
.pnp.*
|
69
README.md
69
README.md
|
@ -1,3 +1,68 @@
|
|||
# funky-array
|
||||
# FunkyArray
|
||||
|
||||
Array that supports both iteration and key value indexing.
|
||||
An array that supports both iteration and key value indexing.
|
||||
|
||||
## Usage
|
||||
Create a new instance of FunkyArray
|
||||
|
||||
#### JavaScript
|
||||
```js
|
||||
const funkyArray = new FunkyArray();
|
||||
```
|
||||
#### TypeScript
|
||||
```ts
|
||||
const funkyArray = new FunkyArray<key_type, value_type>();
|
||||
```
|
||||
|
||||
From here you can `set` or `remove` items by an a key of `key_type`
|
||||
|
||||
For example:
|
||||
```ts
|
||||
const users = new FunkyArray<string, User>();
|
||||
const user = new User(1, "Username", crypto.randomUUID());
|
||||
users.set(user.uuid, user);
|
||||
```
|
||||
|
||||
## General concepts
|
||||
FunkyArray uses an internal "itteration array" which is really just a regular js array with all the keys. Whenever you see a `regenerate:boolean` in a method, this is so you can not regenerate the "itteration array" if you are bulk inserting things. In general you want to be very careful when turning this off and it can break itteration.
|
||||
|
||||
## Methods
|
||||
- `set(key:T, item:TT, regenerate:boolean = true) : TT`
|
||||
|
||||
Sets the corrosponding key in the array to the given value. If an existing array key is provided the existing value is overwritten.
|
||||
|
||||
- `remove(key:T, regenerate:boolean = true) : boolean`
|
||||
|
||||
Removes an item from the array by key.<br>
|
||||
Returns a boolean of remove success.
|
||||
|
||||
- `removeFirst(regenerate:boolean = true)`
|
||||
|
||||
Removes the first item in the array<br>
|
||||
Returns a boolean of remove success.
|
||||
|
||||
- `first() : TT`
|
||||
|
||||
Returns the first item in the array.
|
||||
|
||||
- `get(key:T) : TT | undefined`
|
||||
|
||||
Returns the item with the given key, if it does not exist it returns undefined.
|
||||
|
||||
- `has(key:T) : boolean`
|
||||
|
||||
Returns a boolean for if a value exists for the given key.
|
||||
|
||||
- `forEach(callback: (value:TT) => void) : Promise<boolean>`
|
||||
|
||||
Functionally equivilent to `Array.forEach`
|
||||
Returns a boolean promise that resolves once the forEach itteration is complete.
|
||||
|
||||
## Getters
|
||||
- `length : number`
|
||||
|
||||
Returns the number of key values in the FunkyArray.
|
||||
|
||||
- `keys : Array<T>`
|
||||
|
||||
Returns an array of the FunkyArray's keys.
|
Loading…
Reference in a new issue