https://github.com/nowzoo/sheetload
Load stylesheets dynamically. Also scripts.
https://github.com/nowzoo/sheetload
css-loader javascript javascript-loader scripts stylesheet-loader stylesheets
Last synced: 12 months ago
JSON representation
Load stylesheets dynamically. Also scripts.
- Host: GitHub
- URL: https://github.com/nowzoo/sheetload
- Owner: nowzoo
- License: mit
- Created: 2018-06-16T16:09:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-06-18T18:37:19.000Z (over 7 years ago)
- Last Synced: 2024-12-31T02:42:51.037Z (about 1 year ago)
- Topics: css-loader, javascript, javascript-loader, scripts, stylesheet-loader, stylesheets
- Language: TypeScript
- Homepage: https://nowzoo.github.io/sheetload/
- Size: 259 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sheetload
Load stylesheets dynamically. Also scripts.
## Quick Start
```bash
npm i @nowzoo/sheetload --save
```
Load a stylesheet...
```ts
import { Sheetload } from '@nowzoo/sheetload';
//...
Sheetload.load(url)
.then((el: HTMLLinkElement) => {
//links are disabled at this point...
el.removeAttribute(el, 'disabled')
})
.catch((error: any) => {
//...
})
```
Load a script...
```ts
import { Scriptload } from '@nowzoo/sheetload';
//...
Scriptload.load(url)
.then((el: HTMLScriptElement) => {
//...
})
.catch((error: any) => {
//...
})
```
## API
### `Sheetload`
#### `static load(url: string): Promise`
Loads a stylesheet, resolving with a newly created `link` element when it loads.
**Note:** The element's `disabled` attribute is set. You are responsible for enabling it:
```ts
this.renderer.removeAttribute(link, 'disabled');
```
**Note:** The element is appended to `document.head`. You are responsible for tracking the link tags yourself to prevent duplication.
### `Scriptload`
#### `static load(url: string): Promise`
Loads a script, resolving with a newly created `script` element when the script loads.
**Note:** The element is appended to `document.head`. You are responsible for tracking the script elements yourself to prevent duplication.
### `Elementload`
#### `static load(el: HTMLElement): Promise`
Given an element, listens for `load` and `error` events. Resolves on load, rejects on error.
## Contributing
Contributions are welcome.
```bash
git clone https://github.com/nowzoo/sheetload.git
npm i
ng build sheetload --prod
```
The library code is located under [projects/sheetload](https://github.com/nowzoo/sheetload/tree/master/projects/sheetload).
Testing the library...
```bash
ng test sheetload
```
You can also use Wallaby for testing. Use the config found at `projects/sheetload/wallaby.js`.
Building the library...
```bash
ng build sheetload --prod
```
The demo code is in [src](https://github.com/nowzoo/ngx-highlight-js/tree/master/src). Run the demo locally...
```bash
# Build the current version of the library first...
ng build ngx-highlight-js --prod
ng serve --open
```
## License
[MIT](https://github.com/nowzoo/ngx-highlight-js/blob/master/LICENSE)