Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App ecs #34

Merged
merged 850 commits into from
Mar 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
850 commits
Select commit Hold shift + click to select a range
bbc8474
applyResolver replaced with Resolver
BenZed Jan 25, 2023
640b685
redifining struct so I can solve this apply problem
BenZed Jan 25, 2023
28fc8fc
declare
BenZed Jan 25, 2023
39667d2
bind method
BenZed Jan 25, 2023
ee3ea35
resolver class
BenZed Jan 25, 2023
d0785d3
removed errant type guards
BenZed Jan 25, 2023
181c81b
added propety.configure
BenZed Jan 25, 2023
6631bc4
struct refactored
BenZed Jan 25, 2023
974e3c7
validate struct now uses new Struct
BenZed Jan 25, 2023
25f44f4
validator refactored with new struct
BenZed Jan 25, 2023
45e565a
validate constructor re-created
BenZed Jan 25, 2023
8aef07e
new schema type built out
BenZed Jan 26, 2023
b64d1ca
schema re-implemented
BenZed Jan 26, 2023
29b0c75
bug hunting
BenZed Jan 26, 2023
bfa25a6
all tests pass
BenZed Jan 26, 2023
530a61f
it fuckin WORRKS
BenZed Jan 26, 2023
41486e0
update syntax now works
BenZed Jan 26, 2023
b641145
starting specific schemas
BenZed Jan 26, 2023
ea1ecc7
optional refactor
BenZed Jan 26, 2023
becbd29
working on canned validaotrs
BenZed Jan 27, 2023
8d17ea1
validator id's back in
BenZed Jan 27, 2023
b985a9f
validator id's now properly work with generic validators
BenZed Jan 27, 2023
74e3975
type support for sub validator constructors
BenZed Jan 27, 2023
7c762e7
mucking with constructor syntax
BenZed Jan 27, 2023
f551f99
validator constructors in options now implemented
BenZed Jan 27, 2023
d4e36d8
more canned validators/tests
BenZed Jan 27, 2023
a693e08
boolean in
BenZed Jan 27, 2023
5acfe86
more canned schemas
BenZed Jan 27, 2023
40ca326
added symbol type
BenZed Jan 27, 2023
f132ef0
abstracted validator pipe away from schema
BenZed Jan 28, 2023
4f0ab59
schema decoupled from validatorpipe
BenZed Jan 28, 2023
e49af88
saving dynamic schema for another day.
BenZed Jan 28, 2023
f7fa8b1
Merge pull request #21 from BenZed/is-refactor-mutators
BenZed Jan 28, 2023
9db4f65
added isOptional typeguard
BenZed Jan 29, 2023
3710640
created a signature parser
BenZed Jan 30, 2023
1472a97
added sub validation helper
BenZed Jan 30, 2023
8dc741c
signatures can now be merged
BenZed Jan 30, 2023
2d464cf
hammering tests
BenZed Jan 30, 2023
d75e7ac
splitting validator up
BenZed Jan 30, 2023
7d376c1
clean up
BenZed Jan 30, 2023
4a09985
passing tests
BenZed Jan 30, 2023
0cc1d97
all tests pass
BenZed Jan 30, 2023
47f21cd
about to switch range to sortable
BenZed Jan 30, 2023
a747780
range validator now works with all sortables
BenZed Jan 30, 2023
cdc97cc
numeric validators are in
BenZed Jan 30, 2023
f2ff6bd
instance types refactored
BenZed Jan 30, 2023
a181c5c
hacking at mutators
BenZed Jan 30, 2023
5898185
scaffolded better instance tests
BenZed Jan 30, 2023
45665cf
okay time to reorganize
BenZed Jan 30, 2023
1a40076
testValidateContract tests underway
BenZed Jan 31, 2023
5806f30
contract tests pass
BenZed Jan 31, 2023
9b100ec
bugs gottered
BenZed Jan 31, 2023
0c7e0aa
contract validator defined
BenZed Jan 31, 2023
74d4890
solid definitions
BenZed Jan 31, 2023
c07579c
pipe validator and pipe validator builder
BenZed Jan 31, 2023
4330d1a
added struct setter types
BenZed Jan 31, 2023
f8ba66a
doc updates
BenZed Jan 31, 2023
418d5ac
reorganized validator heirarchy
BenZed Jan 31, 2023
770f330
defined some sub validators
BenZed Jan 31, 2023
bf6915a
major reorganization
BenZed Feb 1, 2023
1b01cbc
working on tests
BenZed Feb 1, 2023
9a8f225
fixed missing isTuple implementation
BenZed Feb 1, 2023
f6195cc
validation contract defined and testable
BenZed Feb 1, 2023
91bbd01
adding tests
BenZed Feb 1, 2023
3e42d27
schema types sorted and tested
BenZed Feb 1, 2023
2545cba
these contract tests were a great idea
BenZed Feb 2, 2023
dff1aeb
added value validator
BenZed Feb 2, 2023
c46571e
scaffolded a bunch of validators
BenZed Feb 2, 2023
e37bde8
scaffolded tests for canned value and instance types
BenZed Feb 2, 2023
ece9010
moved canned validators to 'is'
BenZed Feb 2, 2023
18431bd
brought in mutators
BenZed Feb 2, 2023
09ce7a1
tuple and shape in
BenZed Feb 2, 2023
b2cefaa
schema option setters working
BenZed Feb 2, 2023
5ecea9a
gonna rethink state keys
BenZed Feb 2, 2023
a6eaaad
revamped to use deliberately defined state keys
BenZed Feb 2, 2023
24949dc
redid struct again
BenZed Feb 3, 2023
f36413f
schema implemented
BenZed Feb 3, 2023
2295982
sub contract validator changes
BenZed Feb 3, 2023
e538721
i just had an idea that might speed this up
BenZed Feb 3, 2023
fb4d059
hit a snag
BenZed Feb 3, 2023
941b2fd
callable data now stored on callable object
BenZed Feb 3, 2023
858383a
mutators turned out to be easier than I expected.
BenZed Feb 3, 2023
7d575d7
okay, struct is dead simple now
BenZed Feb 4, 2023
a145a47
we now have type and runtime safe mutation
BenZed Feb 4, 2023
827e441
readonly modifier in
BenZed Feb 4, 2023
f3febf5
not mutator in
BenZed Feb 4, 2023
dd874d2
validator proxy abstracted out of mutator
BenZed Feb 4, 2023
658434e
validator proxy hoisted up
BenZed Feb 4, 2023
897f0ae
sorted state assignments on stacked validator proxies
BenZed Feb 5, 2023
07a9cdd
cleanup struct state usage
BenZed Feb 5, 2023
4ed701f
validator proxy own keys
BenZed Feb 5, 2023
d9a3a6b
fuck, I just had an idea
BenZed Feb 5, 2023
6bf3cc3
struct refator
BenZed Feb 5, 2023
46c2131
struct state get/set is works nested
BenZed Feb 5, 2023
a94c1b2
i'm gonna give up on deep state setting pretty quick here
BenZed Feb 5, 2023
e96c8c2
struct deep state setting now works
BenZed Feb 5, 2023
cf42f17
struct to it's own package
BenZed Feb 5, 2023
88a14b5
remove @benzed/immutable dependency
BenZed Feb 5, 2023
c5c9382
removed structural
BenZed Feb 5, 2023
5fc0927
seperated state and struct
BenZed Feb 5, 2023
b1a010a
split everything up into their own files
BenZed Feb 5, 2023
4d548b8
deep set signature needs work
BenZed Feb 5, 2023
109339e
struct refactor complete
BenZed Feb 5, 2023
bb977e8
Merge pull request #22 from BenZed/struct-package
BenZed Feb 5, 2023
18b017f
put struct back in immutable
BenZed Feb 6, 2023
73c0a41
struct once again uses $$copy and $$equals symbolic immutable methods
BenZed Feb 6, 2023
66600f5
all tests pass
BenZed Feb 6, 2023
1f9fbe4
type guard update
BenZed Feb 7, 2023
501f405
fixed up type guards some more
BenZed Feb 7, 2023
8fceb25
error messages sorted finally and foreverv
BenZed Feb 7, 2023
fb6827d
all tests pass
BenZed Feb 7, 2023
04b546f
removed all skipped tests
BenZed Feb 7, 2023
d450696
immutability overhaul
BenZed Feb 7, 2023
53f7b57
fixed busted tests
BenZed Feb 7, 2023
f38d6cc
sub state apply is now typesafe
BenZed Feb 7, 2023
fab0ec1
type fixes
BenZed Feb 7, 2023
6001660
adding schemas to is
BenZed Feb 8, 2023
b6f48a3
more type errors fixed
BenZed Feb 8, 2023
f19d441
puttering
BenZed Feb 8, 2023
5151091
adding canned validators
BenZed Feb 8, 2023
1b538fb
turns out the ignore paths weren't working, or I wasn't using them co…
BenZed Feb 8, 2023
69b031c
subState and state combined into a single type and signature
BenZed Feb 8, 2023
0c88382
array struct partially implemented
BenZed Feb 9, 2023
89d29f4
poplating is validators/sub validators
BenZed Feb 9, 2023
f0a32bf
Merge pull request #23 from BenZed/is-refactor-cleanup-and-document
BenZed Feb 9, 2023
be12d20
Merge pull request #24 from BenZed/is-refactor-mutators
BenZed Feb 9, 2023
41d9d93
started ecs with structs
BenZed Feb 9, 2023
385f57b
module-find re-implemented
BenZed Feb 10, 2023
1c1d412
scaffolded node-list and node-table
BenZed Feb 10, 2023
eaa5d9e
moved module and node back to immutable
BenZed Feb 10, 2023
bd65f09
broken imports fixed
BenZed Feb 10, 2023
f56cfca
Merge pull request #25 from BenZed/is-refactor-node
BenZed Feb 11, 2023
8d104e3
pipe validator tests
BenZed Feb 11, 2023
bc0708c
schema builder in tested
BenZed Feb 13, 2023
8be9c3d
added shape schema
BenZed Feb 14, 2023
c3f4c46
copy implemented with map
BenZed Feb 14, 2023
9cb2b9d
i'm gonna come out and say it.
BenZed Feb 14, 2023
03beb67
simplified schema rebuilt
BenZed Feb 15, 2023
4853aec
old schema removed
BenZed Feb 15, 2023
109320d
record validator in
BenZed Feb 15, 2023
31cb984
transform validator in
BenZed Feb 15, 2023
2efaf42
started union and intersect validators
BenZed Feb 15, 2023
d2c926f
node list operations added
BenZed Feb 15, 2023
e81e432
node table now has correct index
BenZed Feb 15, 2023
e801478
NodeList now has proper index signature
BenZed Feb 15, 2023
da04124
node list and table now exposed
BenZed Feb 15, 2023
e4794ca
started find tests
BenZed Feb 15, 2023
6dbe727
added some module subclasses
BenZed Feb 15, 2023
40a6889
working on node subclasses
BenZed Feb 15, 2023
d2fa553
Merge pull request #26 from BenZed/is-refactor-node
BenZed Feb 15, 2023
e4b2933
union validator in
BenZed Feb 15, 2023
79917e1
working on shape schema
BenZed Feb 15, 2023
1f3c753
shape cleaned up
BenZed Feb 15, 2023
60dd61e
cleaning up validators
BenZed Feb 15, 2023
6fe1d31
hackin away at is
BenZed Feb 15, 2023
917421d
hackin
BenZed Feb 15, 2023
0fae097
created traits class
BenZed Feb 16, 2023
578d568
callable works as a trait
BenZed Feb 16, 2023
d0ceae9
scaffolded some traits
BenZed Feb 16, 2023
a3bf540
if we're going to do this, lets do it right
BenZed Feb 16, 2023
5207ed0
ai tests
BenZed Feb 17, 2023
92a298e
"each" utility implemented
BenZed Feb 18, 2023
8bb393d
all tests pass
BenZed Feb 18, 2023
98208af
now that we have each,"property" is scrapped for a simple define method
BenZed Feb 18, 2023
2b46deb
removed Property interface
BenZed Feb 18, 2023
08f4016
removed property, old iterators
BenZed Feb 18, 2023
9972061
got larry to write me type guard test
BenZed Feb 18, 2023
ec36cf3
sort/flip tests
BenZed Feb 18, 2023
2be23ce
isKeyed typeguard
BenZed Feb 18, 2023
ae4e98d
fixing broken apis
BenZed Feb 18, 2023
116cbae
hackin away
BenZed Feb 18, 2023
001f4e2
tests and implementation of immutable traits
BenZed Feb 18, 2023
bc48e68
major re-org
BenZed Feb 18, 2023
697f95a
struct trait completed with deep getting/setting of state
BenZed Feb 18, 2023
8b6c138
reomved old state
BenZed Feb 18, 2023
75e0363
record struct re-implemented
BenZed Feb 18, 2023
ff08c6b
public struct works and tested
BenZed Feb 18, 2023
d7ddef3
array struct working and tests
BenZed Feb 18, 2023
b4fe910
Merge pull request #27 from BenZed/composite-traits-util-refator-prop…
BenZed Feb 18, 2023
5ea1d17
Merge pull request #28 from BenZed/composite-traits-util-refactor
BenZed Feb 18, 2023
689eec1
fixed busted tests
BenZed Feb 18, 2023
3f7855e
sbtract publicstructural away from public struct
BenZed Feb 19, 2023
2667f41
cleanup
BenZed Feb 19, 2023
445fddf
pipes now support expressions
BenZed Feb 21, 2023
36678c6
added word/lines compose methods in string
BenZed Feb 21, 2023
5bbce1a
prepped for refactor
BenZed Feb 21, 2023
82fc90f
node trait/tests implemented
BenZed Feb 22, 2023
50aef93
node MOSTLY implemented
BenZed Feb 22, 2023
d1a54e3
node moved to it's own package
BenZed Feb 22, 2023
6395e07
node table implemented
BenZed Feb 22, 2023
73436c5
everything plays nice with callable
BenZed Feb 22, 2023
d95bfa8
node 95% complete
BenZed Feb 22, 2023
fb2dcc5
Merge branch 'is-refactor-validator-traits-analyze' into composite-tr…
BenZed Feb 22, 2023
2921449
callable as a trait
BenZed Feb 23, 2023
6cbd15a
util reorganized
BenZed Feb 23, 2023
f014403
immutable/node changes to take new callable functionality into account
BenZed Feb 23, 2023
cc76158
Merge pull request #29 from BenZed/composite-traits-callable-as-trait
BenZed Feb 23, 2023
ecf7013
minor mutator tests
BenZed Feb 23, 2023
059b00d
NodeTableBuilder now uses a mutator
BenZed Feb 23, 2023
cc83072
Merge pull request #30 from BenZed/composite-traits-callable-as-trait
BenZed Feb 23, 2023
9eea906
node folder reorganized
BenZed Feb 23, 2023
df797e1
validation contet is now nodified
BenZed Feb 24, 2023
f5e5378
context in
BenZed Feb 24, 2023
2a29746
okay, validate base classes are sorted
BenZed Feb 24, 2023
3faee70
completed validator and traits
BenZed Feb 24, 2023
2e58f98
tests written for the validator traits
BenZed Feb 25, 2023
3efe98b
default and cast tests written
BenZed Feb 25, 2023
ef36f14
traits are great, but I'm not going to use them just for the sake of …
BenZed Feb 25, 2023
802e954
porting over prevoius validators
BenZed Feb 25, 2023
603b3c1
reorganized validaotrs
BenZed Feb 25, 2023
2d3c355
re-added instance validator
BenZed Feb 25, 2023
913d150
added tuple validator
BenZed Feb 25, 2023
92faa2c
analyze now just receives a context
BenZed Feb 25, 2023
d2fc6ce
validation error/context sorted
BenZed Feb 25, 2023
fabe02e
all tests pass
BenZed Feb 25, 2023
975eb67
shape validator in
BenZed Feb 25, 2023
7cec978
modifiers back in
BenZed Feb 26, 2023
2ce9346
schema is in
BenZed Feb 26, 2023
5aee90c
mutator trait application changed
BenZed Feb 26, 2023
7d0756b
all tests pass
BenZed Feb 26, 2023
156f73d
schema in
BenZed Feb 26, 2023
62373f5
auto parent clear on property delete
BenZed Feb 27, 2023
913eee2
union validator added
BenZed Feb 27, 2023
fa57e57
added clearSubContexts method
BenZed Feb 27, 2023
79c2dd7
switching to manually applied traits
BenZed Feb 27, 2023
4a0419a
traits are now applied manually
BenZed Feb 27, 2023
3624838
Structural copy implementation now attempts to use Copy.super impleme…
BenZed Feb 28, 2023
4001ab2
manually applied traits to validation
BenZed Feb 28, 2023
67106d6
Merge pull request #31 from BenZed/traits-manual-apply
BenZed Feb 28, 2023
9c885cd
intersection validator in
BenZed Feb 28, 2023
c3874c4
fixed intersection validator type problem
BenZed Feb 28, 2023
1c1714c
record and array
BenZed Mar 1, 2023
2293615
testValidator now uses analyze
BenZed Mar 1, 2023
85a55d3
updating types in 'is'
BenZed Mar 1, 2023
9957263
schema is cleaned up
BenZed Mar 1, 2023
0957f31
clear
BenZed Mar 1, 2023
3abe7ab
cleaned up schema, added some extensions
BenZed Mar 1, 2023
8553dd3
okay, now we're in benzed/is til it's done
BenZed Mar 1, 2023
b8a9340
sub validators for number and string
BenZed Mar 2, 2023
85e0139
deps
BenZed Mar 2, 2023
36c14d0
breaking some DRY here, but fuckit.
BenZed Mar 2, 2023
7a5aeed
organize/rename
BenZed Mar 2, 2023
bdaa19b
ported over a slew of validators
BenZed Mar 2, 2023
977bd2c
all tests pass
BenZed Mar 2, 2023
e15ee8e
much more concise validator resolve method in place
BenZed Mar 2, 2023
1f3201e
chaining is now in
BenZed Mar 2, 2023
bf91cd9
not done, but usable. I'm going to start using it immediately.
BenZed Mar 2, 2023
78298f9
Merge branch 'is-refactor' into is-refactor-migrate
BenZed Mar 2, 2023
78e2961
Merge pull request #32 from BenZed/is-refactor-migrate
BenZed Mar 2, 2023
6411bcc
Merge pull request #33 from BenZed/is-refactor
BenZed Mar 2, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
lib
.eslintrc.js
.eslintrc.js
20 changes: 13 additions & 7 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,30 +23,36 @@ module.exports = {
'curly': ['error', 'multi-or-nest'],
'no-multi-spaces': 'warn',
'no-multiple-empty-lines': ['warn', { max: 1 }],
'max-len': ['error', 100],
'no-return-assign': 'error',
'max-len': ['error', 150],
'nonblock-statement-body-position': ['warn', 'below'],

'no-return-assign': 'error',
'@typescript-eslint/ban-types': ['error', {
types: {
"{}": false,
"Function": false
}
}],
'@typescript-eslint/brace-style': ['error'],
'@typescript-eslint/prefer-optional-chain': ['warn'],
'@typescript-eslint/prefer-nullish-coalescing': ['warn'],
'@typescript-eslint/prefer-readonly': ['error'],
'@typescript-eslint/semi': ['error', 'never'],
'@typescript-eslint/quotes': ['error', 'backtick'],
'@typescript-eslint/quotes': ['error', 'single'],
'@typescript-eslint/indent': ['error', 4],
'@typescript-eslint/no-extra-parens': 'warn',
'@typescript-eslint/restrict-plus-operands': 'error',
'@typescript-eslint/restrict-plus-operands': 'off', // this rule seems to frequently break
'@typescript-eslint/no-unused-expressions': ['error', { allowTaggedTemplates: true }],
'@typescript-eslint/no-unused-vars': ['warn', { args: 'all', argsIgnorePattern: '^_' }],
'@typescript-eslint/return-await': 'error',
'@typescript-eslint/await-thenable': 'error',
'@typescript-eslint/no-implied-eval': 'error',
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-empty-interface': 'off',
'@typescript-eslint/unified-signatures': 'error',
'@typescript-eslint/unified-signatures': 'off',
'@typescript-eslint/no-duplicate-imports': 'error',
'@typescript-eslint/no-this-alias': 'off', // I don't have a problem with 'this' aliasing.
'@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }],
'@typescript-eslint/explicit-function-return-type': ['error', { allowExpressions: true }],
'@typescript-eslint/explicit-function-return-type': ['off', { allowExpressions: true }],
'@typescript-eslint/member-delimiter-style': ['error', {
'multiline': {
'delimiter': 'none',
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ node_modules/
lerna-debug.log
npm-debug.log
packages/*/lib
storage/*
_old*

src-old*

.idea

.DS_Store
56 changes: 56 additions & 0 deletions .vscode/is.code-snippets
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{

"Begin Validation Test": {
"scope": "javascript,typescript",
"prefix": "t-v",
"body": [
"describe(`\\${$1.name} validator tests`, () => {",
"",
" testValidator(",
" $1,",
" $0",
" )",
"",
"})"
],
},

"Validation Contract Test": {
"scope": "javascript,typescript",
"prefix": "t-v-c",
"body": [
"describe(`\\${$1.name} validator contract tests`, () => {",
"",
" testValidationContract(",
" $1,",
" {",
" validInput: $2,",
" invalidInput: $3,",
" transforms: { invalidInput: $4, validOutput: $5 },",
" }",
" )",
"",
"})",
"$0"
],
},

"Validation Transform Test": {
"scope": "javascript,typescript",
"prefix": "t-v-t",
"body": [
"{ transforms: $1 },",
"$0"
],
},

"Validation Assert Test": {
"scope": "javascript,typescript",
"prefix": "t-v-a",
"body": [
"{ asserts: $1 },",
"$0"
],
}

}
Loading