-
-
Notifications
You must be signed in to change notification settings - Fork 1
Done
Tasks that are done, will be moved here.
- fix: bug in diagram
mfe: services AND vm should have flow to model, utils but flows are only originating from vm - should be from the cluster
(similar): main: only DME has flows to utils, sdkH. but should originate from the cluster
-
tool: add -h -help to show usage
-
usage should split out dot specific options
-
review readme.md VS Habib's repo - https://github.com/ismailhabib/actrix
- loosen up the peer deps to match tslint - UP MINOR -
-
make other rules configurable, without breaking config (cover via test sub-folders named by version) -
-
false positives from ban with utils:
also add ban to PackageFolder so can override ? -
add banBlacklist=["utils"]
-
make the importWhitelist also apply to Text format
config:
-
config from tslint-folders.json that's imported by tslint.json
-
throw if config has circ reference
-
'separable package' - import no recognised packages : no special case needed (simply no children)
- model internal folders:
components viewmodels models services utils
-- PackageSubFolder : PackageFolder
-
container: Package (no hierarchy of sub folders)
-
can import any PackageNode children of container
-
if importing a recognised PackageSubFolder (from container.allowedFolders)
then only allow if in this.allowedFolders
[x] - yarn docs
outputs a text graph
dump to simple text format
so don't need dot to ascii
format:
packageName1 --> packageName2, packageName3
folder1 --> folder2, folder3
folder2 --> folder3
folder3
md format?
-
dot as alt format could also be useful
-
jpg format (internally dot -> jpg) in separate project tslint-folders-diagrams to control npm size
yarn docs tslint.json Dot
-
the diagram is too crowded!
-
... group pkgs with same incomings. use points or invisible nodes
-
try
compound=true
-
try
graph [ concentrate=true ...
not true! - // note: compound and concentrate do NOT work together? (would see error from dot)
-
fix new bug in optimizer: only replace edge from cluster if valid for ALL nodes in cluster
-
add
-clusterFromTslintJson
,diagramCluster=<cluster name>
totslint.json
- then GraphOptimizer can cluster by that name -
style * package a bit like external
-
test with, w/o the optimizer
-
add
-disableGraphOptimizer
-
add
-package=<package importPath>
to out for that package only (hides topLevel cluster) -
(cosmetic) add -packageShape=box|oval|octagon|component|cyclinder|box3d|folder (default is oval) -subFolderShape=box|oval|octagon|component|cyclinder|box3d|folder (default is folder)
-
consume
-
improve optimizer
-
add
-importBlacklist=<package name,package name>
to filter the imports (the referenced packages) -
add
-showImportAnyAsNodeNotEdges
- renders * as 1 edge to an "(any)" node -
try:
strict digraph x { ...
ref: https://graphviz.gitlab.io/faq/#FaqMerge
-
n/a - concentrate does this!
try add multiple invisible points to give layouter flexibility: -
n/a other graphviz diagram type?
-
n/a try 'rank' to group nodes (need hint from tslint.json?) { rank=same; b, c, d }
-
n/a try
group
(avoids edge crossings?) -
add invisible.point - but concentrate does this!
/_ graph with invisible points _/
digraph G {
d1 [shape=point,width=0.01,height=0.01];
{a, b, c} -> d1 [dir=none];
d1 -> d;
d -> e;
}
extend the main rule, using the config:
-
import from recognised package should not include /src/ by adding a ban prop into PackageFolder:
``` "ban": ["{PACKAGE}/src/", "/{PACKAGE}/"] ```
-
(see ban prop) import from recognised package should not be relative (like /myPackage/)
-
make configurable, without breaking config (cover via test sub-folders named by version)
-
make rule customisable: tsf-folders-test-with-breakpoint by adding an includePaths: string[] prop and a debugTokens: ["browser.debug"]
-
make rule customisable: tsf-folders-disabled-tests by adding an includePaths: string[] prop and a ban: ["it.only", "it.skip","describe.only","describe.skip"]
-
support typescript 3
-
tslint 5.11.0 is not at 3 yet!
"peerDependencies": {
"typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev"
},
- loosen up the peer reps to match tslint
- ts version history:
https://github.com/Microsoft/TypeScript/commits/master/package.json
- version to match ts ? else confusing. but need minor to make a breaking change!
-- tsf 2.900m.p = ts 2.9
-- tsf 3.000m.p = ts 3.0
-- tsf 3.100m.p = ts 3.1
-- tsf 3.200m.p = ts 3.2
where m = minor, p = patch
-
add above summary to readme
-
branch like versions/tsf2.9
-
pub to npm as normal, with correct peer deps
-
dev on feature/x -> master
-
can rebase version branches onto master, as needed (bash script)
-
do NOT dev on version branch
-
doc in readme
-
how does tslint manage it?
-
is tslint version more important? But less so for user
- setup basic tslint, with standard rules to lint its source
- re-make test data - packages
- remove refs to sdk
- re-make unit tests
- config in tslint.json
- merge tests for 'tsf-folders-imports-from-self' into 'tsf-folders-imports-between-packages'
- replace ignoreTests, ignoreFolders with ignorePaths: regex[]. also add to main rule
- model as a graph
- list TODOs for the new tslint props
- publish to npm (dist only, not source), consume
- yarn docs (generates a 'graph')
- publish to npm (dist only, not source), consume
if OK to open-source:
-
update readme:
node_modules/tslint-folders/tools
->node_modules/tslint-folders/dist/tools
-
make this repo public (URL same?)
-
publish to npm with the source
-
consume
-
Add isThirdParty flag to PackageConfig so is not listed by docs.
-
add keywords to package.json for npm
-
rename isThirdParty to isExternal
-
new rule
tsf-folders-file-names
[see branch 'feature/file-name-casing'] allowing multiple values. see palantirfile-name-casing
-
add tests for sub-folders (under todo-area). include false positives: similar folders under package with no sub folders configured (contact-area).
-
publish to npm (with source), consume
-
allow disable check on sub folders
-
add test where sub folders are below another folder
-
bad import from sub folder should be warning not error -
rename rules to tsf- to avoid rules failing to load in projects that use other rule packages
-
up minor version, pub
-
ts-node can be dev dep?
-
consume
-
allow gen doc w/o sub folders
-
add Dot format
-
add DotStyledallow any case -
add example to generate png
-
add the missing options -dotColorScheme=path to pick up colors
-
doc the new options - at least set them in package.json
-
refactor
-
add
-outpath=<path to output file>
-
n/a
-orientation=<landscape|portrait>
-> landscape=true (default, due to sub-folder clusters) -
n/a (future - filtering avoids this) some way to have 'portrait' layout? (rankdir does not really work)
-
add diagram output
- avoid jest including
testHarness
-
move todo.md to this Wiki
-
add semantic-release, like tslint-ban-snippets - but with travis -> npm disabled
- run tslint tests via jest - like tslint-ban-snippets
- solve circular dep flagged in yarn test:prod
- travis build, release notes etc.
- up readme on how to consume - since path to rule.js is different ? - ref tslint-ban-snippets
-
fork to 2nd project
tslint-folders-diagrams
-
setup that project, removing the rules
-
remove the diagrams from this project (breaking change!)
-
add coverage to readme
-
up readme to ref
tslint-folders-diagrams
-
clean up, publish
-
finish and publish the diagrams project (consuming this one)
-
consume in WM!
- review vs:
https://github.com/mrseanryan/tslint-ban-snippets