{"id":19903879,"url":"https://github.com/zerotohero-dev/iowa","last_synced_at":"2026-06-12T05:31:56.711Z","repository":{"id":57276407,"uuid":"85086742","full_name":"zerotohero-dev/iowa","owner":"zerotohero-dev","description":"iowa: A Promise-based IO Utility; also known as “the land of corn”.","archived":false,"fork":false,"pushed_at":"2018-02-12T19:20:52.000Z","size":418,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-12T09:32:29.504Z","etag":null,"topics":["byte-sized","bytesized-tv","corn","education","file-system","fs","io","iowa","javascript","learning","network","promises","screencast","trainings","tutorial","tutorials","tv","utility","vidcast","wrapper"],"latest_commit_sha":null,"homepage":"https://bytesized.tv/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zerotohero-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-15T15:07:29.000Z","updated_at":"2023-10-02T22:26:37.000Z","dependencies_parsed_at":"2022-08-30T22:53:32.286Z","dependency_job_id":null,"html_url":"https://github.com/zerotohero-dev/iowa","commit_stats":null,"previous_names":["jsbites/iowa"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/zerotohero-dev/iowa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Fiowa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Fiowa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Fiowa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Fiowa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zerotohero-dev","download_url":"https://codeload.github.com/zerotohero-dev/iowa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Fiowa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34231214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["byte-sized","bytesized-tv","corn","education","file-system","fs","io","iowa","javascript","learning","network","promises","screencast","trainings","tutorial","tutorials","tv","utility","vidcast","wrapper"],"created_at":"2024-11-12T20:25:49.164Z","updated_at":"2026-06-12T05:31:56.689Z","avatar_url":"https://github.com/zerotohero-dev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![tests][tests]][tests-url]\n[![deps][deps]][deps-url]\n[![npm][npm]][npm-url]\n[![license][license]][license-url]\n\n\n[tests]: https://img.shields.io/travis/jsbites/iowa.svg\n[tests-url]: https://travis-ci.org/jsbites/iowa\n[deps]: https://david-dm.org/jsbites/iowa.svg\n[deps-url]: https://david-dm.org/jsbites/iowa\n[npm-url]: https://www.npmjs.com/package/iowa\n[npm]: https://img.shields.io/npm/v/iowa.svg\n[license]: https://img.shields.io/npm/l/iowa.svg\n[license-url]: https://www.npmjs.com/package/iowa\n\n```\n  __      ______    __   __  ___       __\n |\" \\    /    \" \\  |\"  |/  \\|  \"|     /\"\"\\\n ||  |  // ____  \\ |'  /    \\:  |    /    \\\n |:  | /  /    ) :)|: /'        |   /' /\\  \\\n |.  |(: (____/ //  \\//  /\\'    |  //  __'  \\\n /\\  |\\\\        /   /   /  \\\\   | /   /  \\\\  \\\n(__\\_|_)\\\"_____/   |___/    \\___|(___/    \\___)\n```\n\n`iowa` is a library that exposes IO utility methods that return a `Promise` API; it is also known as “the land of corn”.\n\n## About **iowa**\n\n`iowa` is a library that exposes IO utility methods that return a `Prmomise` API.\n\nIt’s currently used in the CI/CD deployment pipeline of [**bytesized.tv.web**](https://github.com/jsbites/bytesized.tv.web).\n\nI’m adding bits and pieces to it as I need them. Contributions are always welcome.\n\n\n## Alpha-Stage Software Warning\n\n\u003e `iowa` is in its early stages; so anything in its implementation can change.\n\u003e\n\u003e Until it hits `version 1.0`, I’ll be liberally introducing breaking changes, please keep that in mind and **fix your versions in your package.json** if you depend on `iowa` in your apps.\n\u003e\n\u003e Once `iowa` hits `version 1.0`, its API will stabilize, and the changes will be more backwards-compatible, as I will follow the [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html) standards.\n\n## Installation\n\nInstall via `npm`:\n\n```bash\nnpm install iowa\n```\n\nYou will need the **current** version of [Node.JS](https://nodejs.org/) with all the bells and whistles — [You can install it from nodejs.org](https://nodejs.org/).\n\n## Usage\n\nHere are a few usage examples:\n\n```\n// TODO: add more examples including configuration options\n\nconst { readFile, writeFile, missingFiles } from 'iowa';\n\nreadFile( 'hello.json' ).then( ( data ) =\u003e console.log( data ) );\n\nreadFile( 'world.json', { encoding: 'iso-8859-9' ).then( ( data ) =\u003e console.log( data ) );\n\nwriteFile( 'hello.txt', 'baz' );\n\nmissingFiles( [ 'hello.txt', 'world.txt', 'baz.txt' ] ).then( ( missing ) =\u003e {\n\n    // Missing will be an array of missing files that do not exist in the file system.\n    console.log( missing );\n} );\n\n```\n\n## Dependencies\n\nYou will need the **current** version of [Node.JS](https://nodejs.org/) with all the bells and whistles — [You can install it from nodejs.org](https://nodejs.org/).\n\nOlder versions might work too; though, why stay in the past?\n\n## Package Scripts\n\nHere are the helper npm scripts that you can run via `npm`:\n\n// TODO: update here when there are package scripts.\n// TODO: travis integration\n// TODO: create tests\n// TODO: add eslint.\n\n## Important Files and Folders\n\n* `index.js`: The main entry point.\n* `CHANGELOG.md`: A log of what has been done since the last version.\n* `CODE_OF_CONDUCT.md`: Tells the collaborators to be nice to each other.\n* `README.md`: This very file.\n\n## Wanna Help?\n\nAny help is more than appreciated.\n\nIf you want to contribute to the source code, **fork this repository** and **create a pull request**.\n\n\u003e In lieu of a formal style guide, take care to maintain the existing coding style.\n\nAlso, don’t forget to add unit tests for any new or changed functionality.\n\nIf you want to report a bug; or share a comment or suggestion, [file an issue](https://github.com/iowa/bytesized.tv.app/issues/new).\n\n## I’ve Found a Bug; I Have an Idea\n\n[For bug reports and suggestions, please file an issue](https://github.com/jsbites/iowa/issues/new).\n\n## Contact Information\n\n* **Project Maintainer**: [Volkan Özçelik](https://volkan.io/)\n* **Project Website**: [bytesized.tv](https://bytesized.tv)\n\n## License\n\nMIT-licensed. — [See the license file for details](LICENSE.md).\n\n## Code of Conduct\n\nWe are committed to making participation in this project a harassment-free experience for everyone, regardless of the level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.\n\n[See the code of conduct for details](CODE_OF_CONDUCT.md).\n\n## A [ByteSized.TV][vidcast] Project\n\nThis repository is a part of the [Byte-Sized JavaScript VideoCasts][vidcast].\n\nIt is a compilation of short (*around ten minutes*) screencasts about **JavaScript** and related technologies.\n\n[**Learn**, **explore**, and **have fun**][vidcast]!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerotohero-dev%2Fiowa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerotohero-dev%2Fiowa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerotohero-dev%2Fiowa/lists"}