diff --git a/bili.config.js b/bili.config.js
index fe810a8..3269627 100644
--- a/bili.config.js
+++ b/bili.config.js
@@ -1,6 +1,7 @@
/** @type {import('bili').Config} */
module.exports = {
externals: ['vue'],
+ input: 'src/index.ts',
output: {
format: ['cjs', 'es', 'umd', 'umd-min'],
fileName: 'vue-content-loader.[format][min][ext]',
diff --git a/package.json b/package.json
index 98b4951..533ec04 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"files": [
"dist"
],
+ "types": "dist/index.d.ts",
"sideEffects": false,
"scripts": {
"prepublishOnly": "npm run build",
@@ -39,6 +40,8 @@
"bili": "^5.0.5",
"jest": "^26.6.3",
"poi": "12.10.3",
+ "rollup-plugin-typescript2": "^0.29.0",
+ "typescript": "^4.1.3",
"vue": "^3.0.5",
"vue-loader": "^16.1.2",
"vue-router": "^4.0.3"
diff --git a/src/BulletListLoader.js b/src/BulletListLoader.tsx
similarity index 81%
rename from src/BulletListLoader.js
rename to src/BulletListLoader.tsx
index 6474f88..7bf10dd 100644
--- a/src/BulletListLoader.js
+++ b/src/BulletListLoader.tsx
@@ -1,7 +1,8 @@
+import { defineComponent } from 'vue'
import ContentLoader from './ContentLoader'
-const BulletListLoader = (props, { attrs }) => {
- return (
+const BulletListLoader = defineComponent((props, { attrs }) => {
+ return () => (
@@ -13,6 +14,6 @@ const BulletListLoader = (props, { attrs }) => {
)
-}
+})
export default BulletListLoader
diff --git a/src/CodeLoader.js b/src/CodeLoader.tsx
similarity index 86%
rename from src/CodeLoader.js
rename to src/CodeLoader.tsx
index 6baae3a..164ddf8 100644
--- a/src/CodeLoader.js
+++ b/src/CodeLoader.tsx
@@ -1,7 +1,8 @@
+import { defineComponent } from 'vue'
import ContentLoader from './ContentLoader'
-const CodeLoader = (props, { attrs }) => {
- return (
+const CodeLoader = defineComponent((props, { attrs }) => {
+ return () => (
@@ -17,6 +18,6 @@ const CodeLoader = (props, { attrs }) => {
)
-}
+})
export default CodeLoader
diff --git a/src/ContentLoader.js b/src/ContentLoader.tsx
similarity index 100%
rename from src/ContentLoader.js
rename to src/ContentLoader.tsx
diff --git a/src/FacebookLoader.js b/src/FacebookLoader.tsx
similarity index 80%
rename from src/FacebookLoader.js
rename to src/FacebookLoader.tsx
index dae0f7d..39a5885 100644
--- a/src/FacebookLoader.js
+++ b/src/FacebookLoader.tsx
@@ -1,7 +1,8 @@
+import { defineComponent } from 'vue'
import ContentLoader from './ContentLoader'
-const FacebookLoader = (props, { attrs }) => {
- return (
+const FacebookLoader = defineComponent((props, { attrs }) => {
+ return () => (
@@ -11,6 +12,6 @@ const FacebookLoader = (props, { attrs }) => {
)
-}
+})
export default FacebookLoader
diff --git a/src/InstagramLoader.js b/src/InstagramLoader.tsx
similarity index 76%
rename from src/InstagramLoader.js
rename to src/InstagramLoader.tsx
index f6c539f..6ccd206 100644
--- a/src/InstagramLoader.js
+++ b/src/InstagramLoader.tsx
@@ -1,7 +1,8 @@
+import { defineComponent } from 'vue'
import ContentLoader from './ContentLoader'
-const InstagramLoader = (props, { attrs }) => {
- return (
+const InstagramLoader = defineComponent((props, { attrs }) => {
+ return () => (
@@ -10,6 +11,6 @@ const InstagramLoader = (props, { attrs }) => {
)
-}
+})
export default InstagramLoader
diff --git a/src/ListLoader.js b/src/ListLoader.tsx
similarity index 81%
rename from src/ListLoader.js
rename to src/ListLoader.tsx
index 6f98217..2f349ef 100644
--- a/src/ListLoader.js
+++ b/src/ListLoader.tsx
@@ -1,7 +1,8 @@
+import { defineComponent } from 'vue'
import ContentLoader from './ContentLoader'
-const ListLoader = (props, { attrs }) => {
- return (
+const ListLoader = defineComponent((props, { attrs }) => {
+ return () => (
@@ -11,6 +12,6 @@ const ListLoader = (props, { attrs }) => {
)
-}
+})
export default ListLoader
diff --git a/src/index.js b/src/index.ts
similarity index 100%
rename from src/index.js
rename to src/index.ts
diff --git a/src/uid.js b/src/uid.ts
similarity index 100%
rename from src/uid.js
rename to src/uid.ts
diff --git a/stories/Storybook.vue b/stories/Storybook.vue
index a1a8f78..602a7f2 100644
--- a/stories/Storybook.vue
+++ b/stories/Storybook.vue
@@ -53,12 +53,7 @@ export default {
},
currentComponent() {
- if (this.current) {
- const { story } = this.current
- return typeof story.component === 'function'
- ? story.component()
- : story.component
- }
+ return this.current?.story.component;
},
currentTitle() {
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..5776620
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "include": ["src/**/*.ts", "src/**/*.tsx"],
+ "exclude": ["node_modules", "dist"],
+ "compilerOptions": {
+ "rootDir": "src",
+ "target": "es5",
+ "module": "esnext",
+ "jsx": "preserve",
+ "moduleResolution": "node",
+ "declaration": true,
+ "sourceMap": true,
+ "strict": true,
+ "noImplicitAny": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index 11fed09..0c53f52 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5080,6 +5080,15 @@ from2@^2.1.0:
inherits "^2.0.1"
readable-stream "^2.0.0"
+fs-extra@8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
fs-extra@^9.0.0:
version "9.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
@@ -6634,6 +6643,13 @@ json5@^2.1.2:
dependencies:
minimist "^1.2.5"
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
jsonfile@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
@@ -8910,6 +8926,13 @@ resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+resolve@1.17.0:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
+ integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
+ dependencies:
+ path-parse "^1.0.6"
+
resolve@^1.10.0, resolve@^1.8.1:
version "1.11.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
@@ -9034,6 +9057,17 @@ rollup-plugin-terser@^6.1.0:
serialize-javascript "^3.0.0"
terser "^4.7.0"
+rollup-plugin-typescript2@^0.29.0:
+ version "0.29.0"
+ resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.29.0.tgz#b7ad83f5241dbc5bdf1e98d9c3fca005ffe39e1a"
+ integrity sha512-YytahBSZCIjn/elFugEGQR5qTsVhxhUwGZIsA9TmrSsC88qroGo65O5HZP/TTArH2dm0vUmYWhKchhwi2wL9bw==
+ dependencies:
+ "@rollup/pluginutils" "^3.1.0"
+ find-cache-dir "^3.3.1"
+ fs-extra "8.1.0"
+ resolve "1.17.0"
+ tslib "2.0.1"
+
rollup-pluginutils@^2.8.2:
version "2.8.2"
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
@@ -10028,6 +10062,11 @@ trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+tslib@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
+ integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==
+
tslib@^1.9.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
@@ -10099,6 +10138,11 @@ typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+typescript@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7"
+ integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==
+
uglify-js@3.4.x:
version "3.4.10"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"
@@ -10165,6 +10209,11 @@ unique-slug@^2.0.0:
dependencies:
imurmurhash "^0.1.4"
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
universalify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"