Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions types/kotobee/.npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*
!**/*.d.ts
!**/*.d.cts
!**/*.d.mts
!**/*.d.*.ts
55 changes: 55 additions & 0 deletions types/kotobee/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
type LanguageCode =
| "ar"
| "de"
| "es"
| "hu"
| "jp"
| "ms"
| "no"
| "pt"
| "ru"
| "tr"
| "zh-tw"
| "cy"
| "en"
| "fr"
| "it"
| "ko"
| "nl"
| "pl"
| "ro"
| "sw"
| "zh-cn"
| "zh";

type Directions = "ltr" | "rtl";

interface KotobeeReader {
/**
* Clears cached local data used by the reader.
*/
clearCache: () => void;

/**
* Clears all event listeners attached by the reader.
*/
clearListeners: () => void;

/**
* Clears remotely fetched data (e.g., cloud sync, remote storage).
*/
clearRemoteData: () => void;

/**
* Sets the active UI language of the reader.
*/
setLanguage: (language: LanguageCode) => void;

/**
* Sets reading direction (left-to-right or right-to-left).
*/
setDirection: (direction: Directions) => void;
}

// Declare the global variable
declare const Kotobee: KotobeeReader;
68 changes: 68 additions & 0 deletions types/kotobee/kotobee-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// ------------------- Correct usage -------------------
const validLanguages: LanguageCode[] = [
"ar",
"de",
"es",
"hu",
"jp",
"ms",
"no",
"pt",
"ru",
"tr",
"zh-tw",
"cy",
"en",
"fr",
"it",
"ko",
"nl",
"pl",
"ro",
"sw",
"zh-cn",
"zh",
];

const validDirections: Directions[] = ["ltr", "rtl"];

// Test all valid languages
validLanguages.forEach(lang => Kotobee.setLanguage(lang));

// Test all valid directions
validDirections.forEach(dir => Kotobee.setDirection(dir));

// ------------------- Incorrect usage -------------------

// Invalid language
// @ts-expect-error
Kotobee.setLanguage("invalid");

// Invalid direction
// @ts-expect-error
Kotobee.setDirection("up");

// Calling clearCache with parameters should error
// @ts-expect-error
Kotobee.clearCache(123);

// Calling clearListeners with parameters should error
// @ts-expect-error
Kotobee.clearListeners("test");

// ------------------- Type assignments -------------------

// Assign valid types
validLanguages.forEach(lang => {
const l: LanguageCode = lang; // $ExpectType LanguageCode
});

validDirections.forEach(dir => {
const d: Directions = dir; // $ExpectType Directions
});

// Invalid assignments
// @ts-expect-error
const fakeLang: LanguageCode = "madeup";
// @ts-expect-error
const dirCenter: Directions = "center";
19 changes: 19 additions & 0 deletions types/kotobee/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"private": true,
"name": "@types/kotobee",
"nonNpm": true,
"nonNpmDescription": "This is an SDK for Kotobee Author application.",
"version": "0.0.9999",
"projects": [
"https://support.kotobee.com/en/support/solutions/folders/8000082574"
],
"devDependencies": {
"@types/kotobee": "workspace:."
},
"owners": [
{
"name": "Bashamega",
"githubUsername": "Bashamega"
}
]
}
19 changes: 19 additions & 0 deletions types/kotobee/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"compilerOptions": {
"module": "node16",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"kotobee-tests.ts"
]
}
1 change: 1 addition & 0 deletions types/markdown-it-container/.npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
!**/*.d.cts
!**/*.d.mts
!**/*.d.*.ts
/v2/
5 changes: 5 additions & 0 deletions types/markdown-it-container/index.d.mts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import MarkdownItContainer = require("./index.js");

export type ContainerOpts = MarkdownItContainer.ContainerOpts;

export default MarkdownItContainer;
3 changes: 1 addition & 2 deletions types/markdown-it-container/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import MarkdownIt = require("markdown-it");
import Renderer = require("markdown-it/lib/renderer");

declare namespace MarkdownItContainer {
interface ContainerOpts {
marker?: string | undefined;
validate?(params: string): boolean;
render?: Renderer.RenderRule | undefined;
render?: MarkdownIt.Renderer.RenderRule | undefined;
}
}

Expand Down
14 changes: 12 additions & 2 deletions types/markdown-it-container/package.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
{
"private": true,
"name": "@types/markdown-it-container",
"version": "2.0.9999",
"version": "4.0.9999",
"projects": [
"https://github.com/markdown-it/markdown-it-container"
],
"exports": {
".": {
"require": "./index.d.ts",
"import": "./index.d.mts"
},
"./*": {
"require": "./*",
"import": "./*"
}
},
"dependencies": {
"@types/markdown-it": "<14"
"@types/markdown-it": ">=14"
},
"devDependencies": {
"@types/markdown-it-container": "workspace:."
Expand Down
1 change: 1 addition & 0 deletions types/markdown-it-container/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
},
"files": [
"index.d.ts",
"index.d.mts",
"markdown-it-container-tests.ts"
]
}
5 changes: 5 additions & 0 deletions types/markdown-it-container/v2/.npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*
!**/*.d.ts
!**/*.d.cts
!**/*.d.mts
!**/*.d.*.ts
14 changes: 14 additions & 0 deletions types/markdown-it-container/v2/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import MarkdownIt = require("markdown-it");
import Renderer = require("markdown-it/lib/renderer");

declare namespace MarkdownItContainer {
interface ContainerOpts {
marker?: string | undefined;
validate?(params: string): boolean;
render?: Renderer.RenderRule | undefined;
}
}

declare function MarkdownItContainer(md: MarkdownIt, name: string, opts: MarkdownItContainer.ContainerOpts): void;

export = MarkdownItContainer;
36 changes: 36 additions & 0 deletions types/markdown-it-container/v2/markdown-it-container-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import MarkdownIt = require("markdown-it");

import MarkdownItContainer = require("markdown-it-container");

const md = new MarkdownIt();

md.use(MarkdownItContainer, "spoiler", {
validate: (params: string) => params.trim().match(/^spoiler\s+(.*)$/),
render: (tokens: MarkdownIt.Token[], index: number) => {
const match = tokens[index].info.trim().match(/^spoiler\s+(.*)$/);
const onClick = "this.parentNode.classList.toggle('_expanded');" + "event.preventDefault();";

if (tokens[index].nesting === 1) {
return (
// tslint:disable-next-line prefer-template
"<div class=\"markdown__spoiler\">\n"
+ "<div class=\"markdown__spoiler-title\" onclick=\""
+ onClick
+ "\">\n"
+ md.utils.escapeHtml((match && match[1]) || "")
+ "\n"
+ "</div>\n"
+ "<div class=\"markdown__spoiler-content\">\n"
);
} else {
return "</div></div>\n";
}
},
marker: "marker",
});

const src = `:::spoiler This Is Spoiler Title
Here is spoiler content.
:::`;

md.render(src);
20 changes: 20 additions & 0 deletions types/markdown-it-container/v2/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"private": true,
"name": "@types/markdown-it-container",
"version": "2.0.9999",
"projects": [
"https://github.com/markdown-it/markdown-it-container"
],
"dependencies": {
"@types/markdown-it": "<14"
},
"devDependencies": {
"@types/markdown-it-container": "workspace:."
},
"owners": [
{
"name": "Vyacheslav Demot",
"githubUsername": "hronex"
}
]
}
19 changes: 19 additions & 0 deletions types/markdown-it-container/v2/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"compilerOptions": {
"module": "node16",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"markdown-it-container-tests.ts"
]
}
Loading