{"id":22326034,"url":"https://github.com/solarnetwork/solarnetwork-example-ts-datum-loader","last_synced_at":"2025-03-26T06:11:41.705Z","repository":{"id":239228517,"uuid":"798930430","full_name":"SolarNetwork/solarnetwork-example-ts-datum-loader","owner":"SolarNetwork","description":"Example web app using the solarnetwork-datum-loader package to query SolarNetwork for large data sets, using TypeScript.","archived":false,"fork":false,"pushed_at":"2024-05-13T18:40:31.000Z","size":220,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-31T07:32:05.608Z","etag":null,"topics":["example","solarnetwork","typescript","webapp"],"latest_commit_sha":null,"homepage":"https://go.solarnetwork.net/dev/example/typescript-datum-loader/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SolarNetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-05-10T19:31:04.000Z","updated_at":"2024-05-10T19:33:18.000Z","dependencies_parsed_at":"2025-01-31T07:28:59.313Z","dependency_job_id":"cd37fd3f-482b-4cb5-b477-a994de283dcc","html_url":"https://github.com/SolarNetwork/solarnetwork-example-ts-datum-loader","commit_stats":null,"previous_names":["solarnetwork/solarnetwork-example-ts-datum-loader"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarNetwork%2Fsolarnetwork-example-ts-datum-loader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarNetwork%2Fsolarnetwork-example-ts-datum-loader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarNetwork%2Fsolarnetwork-example-ts-datum-loader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarNetwork%2Fsolarnetwork-example-ts-datum-loader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SolarNetwork","download_url":"https://codeload.github.com/SolarNetwork/solarnetwork-example-ts-datum-loader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245598320,"owners_count":20641884,"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":["example","solarnetwork","typescript","webapp"],"created_at":"2024-12-04T02:15:09.010Z","updated_at":"2025-03-26T06:11:41.688Z","avatar_url":"https://github.com/SolarNetwork.png","language":"TypeScript","readme":"# SolarNetwork Example: TypeScript Datum Loader\n\nThis project is a little web app to show the basics of using the SolarNetwork API\nin a TypeScript project to download large sets of datum stream data using the `DatumLoader` helper class.\n\nYou can see the example in action here:\n\n\u003chttps://go.solarnetwork.net/dev/example/typescript-datum-loader/\u003e\n\n\u003cimg alt=\"Screenshot of the TypeScript Datum Loader app\" src=\"docs/datum-loader-screenshot@2x.png\" width=\"1340\"\u003e\n\n# Key aspects\n\nThere are a few key aspects of this example worth pointing out.\n\n## SolarNetwork API\n\nThe [solarnetwork-datum-loader][sn-datum-loader] package is [included in the project][sn-datum-loader-dep], which provides many helpful utilities in both TypeScript and JavaScript for working with the SolarNetwork API.\n\n```json\n{\n\t\"dependencies\": {\n\t\t\"solarnetwork-datum-loader\": \"^2.0.0\"\n\t}\n}\n```\n\n## Token authentication with Fetch API\n\nThe example demonstrates using [SolarNetwork token authentication][sn-api-auth] with the browser [Fetch API][fetch].\n\nFirst the demo [imports the AuthorizationV2Builder][import-sn-auth] class and [creates a reusable instance][auth-instance] in an `auth` variable:\n\n```ts\nimport { AuthorizationV2Builder } from \"solarnetwork-api-core/lib/net\";\n\nconst auth = new AuthorizationV2Builder();\n```\n\nA `change` form event handler listens for changes to the form's token and secret fields, and [saves the credentials][save-creds] for future API calls:\n\n```ts\n// save credentials\nauth.tokenId = settingsForm.snToken.value;\nauth.saveSigningKey(settingsForm.snTokenSecret.value);\n```\n\n# Building from source\n\nTo build yourself, clone or download this repository. You need to have\nNode 16+ installed. Then:\n\n```sh\n# initialize dependencies\nnpm ci\n\n# run development live server on http://localhost:8080\nnpm run dev\n\n# build for production\nnpm run build\n```\n\nRunning the `build` script will generate the application into the `dist/` directory.\n\n[auth-instance]: https://github.com/SolarNetwork/solarnetwork-example/blob/1.4.0/TypeScript/datum-loader/src/main/ts/sn.ts#L19\n[fetch]: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\n[sn-api-auth]: https://github.com/SolarNetwork/solarnetwork/wiki/SolarNet-API-authentication-scheme-V2\n[sn-datum-loader]: https://www.npmjs.com/package/solarnetwork-datum-loader\n[sn-datum-loader-dep]: https://github.com/SolarNetwork/solarnetwork-example/blob/1.4.0/TypeScript/datum-loader/package.json#L43\n[import-sn-auth]: https://github.com/SolarNetwork/solarnetwork-example/blob/1.4.0/TypeScript/datum-loader/src/main/ts/sn.ts#L2-L5\n[save-creds]: https://github.com/SolarNetwork/solarnetwork-example/blob/1.4.0/TypeScript/datum-loader/src/main/ts/sn.ts#L26-L35\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarnetwork%2Fsolarnetwork-example-ts-datum-loader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolarnetwork%2Fsolarnetwork-example-ts-datum-loader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarnetwork%2Fsolarnetwork-example-ts-datum-loader/lists"}