Socket
Socket
Sign inDemoInstall

svelte-typewriter

Package Overview
Dependencies
Maintainers
1
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

svelte-typewriter - npm Package Compare versions

Comparing version 1.5.3 to 1.5.4

.prettierignore

6

CHANGELOG.md

@@ -7,2 +7,8 @@ ### Changelog

#### [v1.5.3](https://github.com/henriquehbr/svelte-typewriter/compare/v1.5.2...v1.5.3)
> 12 December 2019
- dependencies: bump `svelte` from "^3.15.0" to "^3.16.4" [`cb2e7f2`](https://github.com/henriquehbr/svelte-typewriter/commit/cb2e7f2c2a37419f8b6560c8ecd61d19b55b0676)
#### [v1.5.2](https://github.com/henriquehbr/svelte-typewriter/compare/v1.5.1...v1.5.2)

@@ -9,0 +15,0 @@

2

package.json

@@ -12,3 +12,3 @@ {

},
"version": "1.5.3",
"version": "1.5.4",
"main": "Typewriter.svelte",

@@ -15,0 +15,0 @@ "author": "Henrique Borges <henriqueborgeshbr@gmail.com>",

export default async (node, { loop = false, cascade = false, interval = 30 } = {}) => {
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
const hasSingleTextNode = el => el.childNodes.length === 1 && el.childNodes[0].nodeType === 3
const typingInterval = async () =>

@@ -25,16 +26,14 @@ Array.isArray(interval) ? await sleep(interval[rng(0, interval.length)]) : await sleep(interval)

const typewriterMode =
cascade && !loop
? 'cascade'
: loop && !cascade
? 'loop'
: !cascade && !loop
? 'default'
: (() => {
throw new Error('`cascade` mode should not be used with `loop`!')
})()
cascade && !loop ? 'cascade' :
loop && !cascade ? 'loop' :
!cascade && !loop && hasSingleTextNode(node) ? 'singleDefault' :
!cascade && !loop ? 'childrenDefault' : ''
const elements =
typewriterMode === 'cascade' || typewriterMode === 'default'
? [...node.getElementsByTagName('*')].map(el => ({ el, text: el.textContent.split('') }))
: [...node.children].map(el => el.textContent.split(''))
typewriterMode === 'cascade' || typewriterMode === 'childrenDefault'
? [...node.children].map(el => ({ el, text: el.textContent.split('') })) :
typewriterMode === 'singleDefault'
? node.textContent.split('') :
typewriterMode === 'loop' ?
[...node.children].map(el => el.textContent.split('')) : ''

@@ -60,3 +59,6 @@ switch (typewriterMode) {

}
case 'default':
case 'singleDefault':
typewriterEffect(node)
break
case 'childrenDefault':
for (const { el, text } of elements) {

@@ -66,3 +68,5 @@ el.textContent = text.join('')

}
break
default: throw new Error('`cascade` mode should not be used with `loop`!')
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc