Skip to content

Commit 9f80d8c

Browse files
committed
Typescript definition and test case,
1 parent d9834c1 commit 9f80d8c

File tree

12 files changed

+4592
-3395
lines changed

12 files changed

+4592
-3395
lines changed

index.d.ts

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
// Type definitions for contentstack 3.10.1
2+
// Project: https://www.contentstack.com/
3+
// Definitions by: Contentstack <https://github.com/contentstack>
4+
5+
//Enum for Contentstack Region
6+
export enum Region {
7+
US = "us",
8+
EU = "eu"
9+
}
10+
11+
//Enum for Contentstack CachePolicy
12+
export enum CachePolicy {
13+
IGNORE_CACHE = -1,
14+
ONLY_NETWORK = 0,
15+
CACHE_ELSE_NETWORK = 1,
16+
NETWORK_ELSE_CACHE = 2,
17+
CACHE_THEN_NETWORK = 3
18+
}
19+
20+
// Sync Result
21+
export interface SyncResult {
22+
items: Array<any>;
23+
paginationToken?: string;
24+
syncToken?: string;
25+
skip: number;
26+
limit: number;
27+
totalCount: number;
28+
}
29+
30+
// Contentstack Config
31+
export interface Config {
32+
api_key: string;
33+
delivery_token: string;
34+
environment: string;
35+
region?: Region;
36+
fetchOptions?: object;
37+
}
38+
// Stack Config
39+
export interface StackConfig {
40+
protocol: string;
41+
host: string;
42+
port: number;
43+
version: string;
44+
}
45+
46+
// ContentTypeCollection
47+
export interface ContentTypeCollection{
48+
contentTypes: Array<any>
49+
count?: number
50+
}
51+
52+
// Stack
53+
export class Stack {
54+
constructor(config: Config);
55+
constructor(api_key: string, delivery_token: string, environment_name: string, region?: Region, fetchOptions?: any);
56+
57+
environment: string;
58+
cachePolicy: CachePolicy;
59+
config: StackConfig;
60+
fetchOptions: any;
61+
62+
ContentType(uid: string): ContentType;
63+
Assets(uid: string): Asset;
64+
Assets(): Assets;
65+
66+
setPort(port: number): Stack;
67+
setProtocol(protocol: string): Stack;
68+
setHost(host: string): Stack;
69+
setCachePolicy(policy: CachePolicy): Stack;
70+
setCacheProvider(provider: object): Stack;
71+
clearByQuery(): Stack;
72+
clearByContentType(): Stack;
73+
clearAll(): Stack;
74+
getCacheProvider(): object;
75+
getLastActivites(): Promise<any>;;
76+
getContentTypes(param?: object): Promise<ContentTypeCollection>;
77+
sync(params: object): Promise<SyncResult>;
78+
imageTransform(url: string, params: any): string;
79+
}
80+
81+
export function Stack(config: Config): Stack;
82+
export function Stack(api_key: string, access_token: string, environment_name: string, region?: string, fetchOptions?: object): Stack;
83+
84+
export class ContentType {
85+
constructor();
86+
content_type_uid: string
87+
88+
fetch(): Promise<any>;
89+
Query(): Query;
90+
Entry(uid: string): Entry;
91+
}
92+
93+
export class Assets {
94+
constructor();
95+
96+
toJSON(): Assets;
97+
addParam(key: string, value: any): Assets;
98+
Query(): Query;
99+
100+
}
101+
102+
export class Asset {
103+
constructor();
104+
105+
toJSON(): Assets;
106+
addParam(key: string, value: any): Assets;
107+
fetch(): Promise<any>;
108+
}
109+
110+
export class Entry {
111+
constructor();
112+
113+
setCacheProvider(provider: object): Entry;
114+
setCachePolicy(policy: number): Entry;
115+
includeReference(val: string[]): Entry;
116+
includeReference(...val: string[]): Entry;
117+
language(language_code: string): Entry;
118+
addQuery(key: string, value: string): Entry;
119+
includeSchema(): Entry;
120+
includeReferenceContentTypeUID(): Entry;
121+
includeContentType(): Entry;
122+
includeOwner(): Entry;
123+
toJSON(): Entry;
124+
addParam(key: string, value: any): Entry;
125+
fetch(): Promise<any>;
126+
}
127+
128+
export class Query extends Entry {
129+
constructor();
130+
131+
equalTo(key: string, value: any): Query;
132+
where(key: string, value: any): Query;
133+
count(): Query;
134+
query(query: any): Query;
135+
referenceIn(key: string, query: Query): Query;
136+
referenceNotIn(key: string, query: Query): Query;
137+
tags(value: any[]): Query;
138+
includeCount(): Query;
139+
getQuery(): Query;
140+
regex(key: string, value: any, options: string): Query;
141+
search(value: string): Query;
142+
greaterThan(key: string, value: any): Query;
143+
greaterThanOrEqualTo(key: string, value: any): Query;
144+
lessThan(key: string, value: any): Query;
145+
lessThanOrEqualTo(key: string, value: any): Query;
146+
notEqualTo(key: string, value: any): Query;
147+
containedIn(key: string, value: any): Query;
148+
149+
find(): Promise<any>;
150+
findOne(): Promise<any>;
151+
152+
}

jest.config.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module.exports = {
2+
preset: 'ts-jest',
3+
testEnvironment: 'node',
4+
forceExit:true,
5+
reporters: [
6+
"default",
7+
["jest-html-reporters",
8+
{
9+
"publicPath": "./html-report",
10+
"filename": "report.html",
11+
"expand": true
12+
}
13+
]
14+
]
15+
};

0 commit comments

Comments
 (0)