{"id":21531922,"url":"https://github.com/matrixai/typescript-demo-iso","last_synced_at":"2025-07-11T06:39:24.138Z","repository":{"id":151338802,"uuid":"121935757","full_name":"MatrixAI/TypeScript-Demo-Iso","owner":"MatrixAI","description":"TypeScript Demo Isomorphic Application","archived":false,"fork":false,"pushed_at":"2023-03-01T15:56:00.000Z","size":764,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-01-24T06:29:45.573Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://matrix.ai/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MatrixAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-18T09:07:17.000Z","updated_at":"2020-05-08T03:32:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"f4f182be-6952-4b3b-a136-e58d1d2f47b2","html_url":"https://github.com/MatrixAI/TypeScript-Demo-Iso","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatrixAI%2FTypeScript-Demo-Iso","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatrixAI%2FTypeScript-Demo-Iso/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatrixAI%2FTypeScript-Demo-Iso/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatrixAI%2FTypeScript-Demo-Iso/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MatrixAI","download_url":"https://codeload.github.com/MatrixAI/TypeScript-Demo-Iso/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244095972,"owners_count":20397317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T02:18:11.677Z","updated_at":"2025-03-17T19:27:56.168Z","avatar_url":"https://github.com/MatrixAI.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavaScript Demo\n\nThis is an example JavaScript project using Nix to setup a development environment.\n\nThis uses Nix and NPM. However similar to the Go situation, Node packages are not packaged in Nixpkgs. They still are pulled directly from NPM.\n\nThe JavaScript is written with Flow type checker. This means we are using Flow as a type checker, and Babel to transpile the JavaScript to several target platforms. Finally Rollup is used as teh build system to run Babel and bundle up the source code into consumable libraries. Thes final libraires are put into the `./dist` directory which is also what gets used when downstream projects depend on this project.\n\nTo enter into the development environment, enter `nix-shell`. This will give you `flow` and all of the development dependencies in the `PATH` environment. See the `shellHook` attribute in the `./shell.nix`.\n\nThe Flow type checker has its own language. To run the Flow type checker, we just need to run `flow`, which will start the type checker server. We embedded this already as an asynchronous shell job in the `shellHook`. Just remember that before you exit the `nix-shell`, you need to also kill your Flow server by using `kill %1`.\n\nThese are the sorts of commands you will be using:\n\n```sh\n# enter into the nix-shell\nnix-shell\n# check the types\nflow\n# run the tests via the ava unit testter\nnpm test\n# to run the rollup bundler to produce the target dist (do this before each release)\nnpm run rollup\n# run the flow type checker, tests and rollup\nnpm run build\n```\n\nTo manage JavaScript dependencies use `package.json`. If you need non-JavaScript dependencies, use the `./default.nix` and `./shell.nix`. Note that `./shell.nix` should contain development dependencies. This means JavaScript dependencies are not directly listed in the Nix expressions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrixai%2Ftypescript-demo-iso","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatrixai%2Ftypescript-demo-iso","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrixai%2Ftypescript-demo-iso/lists"}