Skip to content

Commit 8e81b23

Browse files
committed
[init] files
0 parents  commit 8e81b23

File tree

12 files changed

+354
-0
lines changed

12 files changed

+354
-0
lines changed

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
dist
2+
node_modules/
3+
.env
4+
yarn-error.log
5+
/build
6+
package-lock.json
7+
playground.js
8+
playground.ts
9+
/logs/

data/africa/placeholder.json

Whitespace-only changes.

data/asia/placeholder.json

Whitespace-only changes.

data/countries.json

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
[
2+
{
3+
"name": "",
4+
"flag": "",
5+
"countryCode": "",
6+
"map": "",
7+
"continent": "",
8+
"description": "",
9+
"area": {
10+
"squreKilometers": "",
11+
"squreMiles": ""
12+
},
13+
"nationalAnimal": "",
14+
"independenceDay": "",
15+
"nationalDishes": [
16+
{
17+
"name": "",
18+
"description": "",
19+
"recipe": ""
20+
}
21+
],
22+
"wikipediaLink": "",
23+
"neighbouringCountries": [""],
24+
"adjacentSeas": [""],
25+
"adjacentOceans": [""],
26+
"placesToVisit": [
27+
{
28+
"name": "",
29+
"description": "",
30+
"city": "",
31+
"region": "",
32+
"geographicCoordinates": "",
33+
"establishedYear": ""
34+
}
35+
],
36+
"capitalCity": "",
37+
"officialLanguages": [""],
38+
"spokenLanguages": [""],
39+
"currency": {
40+
"name": "",
41+
"code": ""
42+
},
43+
"timeZone": "",
44+
"nationalAnthem": {
45+
"name": "",
46+
"anthemLength": "",
47+
"description": ""
48+
},
49+
"nationalFlagDescription": "",
50+
"nationalEmblem": {
51+
"name": "",
52+
"description": "",
53+
"image": ""
54+
},
55+
"nationalSymbol": {
56+
"name": "",
57+
"description": "",
58+
"image": ""
59+
},
60+
"nationalFlower": {
61+
"name": "",
62+
"description": "",
63+
"image": ""
64+
},
65+
"nationalHolidays": [
66+
{
67+
"name": "",
68+
"date": "",
69+
"description": ""
70+
}
71+
],
72+
"popularFestivals": [
73+
{
74+
"name": "",
75+
"description": "",
76+
"duration": ""
77+
}
78+
],
79+
"religions": [""],
80+
"majorAirports": [
81+
{
82+
"name": "",
83+
"city": "",
84+
"region": "",
85+
"geographicCoordinates": "",
86+
"establishedYear": 0
87+
}
88+
],
89+
"majorPorts": [
90+
{
91+
"name": "",
92+
"city": "",
93+
"region": "",
94+
"geographicCoordinates": "",
95+
"establishedYear": 0
96+
}
97+
],
98+
"majorUniversities": [
99+
{
100+
"name": "",
101+
"city": "",
102+
"region": "",
103+
"geographicCoordinates": "",
104+
"establishedYear": 0,
105+
"description": ""
106+
}
107+
],
108+
"nationalSports": [""],
109+
"majorIndustries": [""],
110+
"educationSystem": "",
111+
"isLeftHandDrive": false,
112+
"isRightHandDrive": true,
113+
"numbersOfIsland": 0
114+
}
115+
]

data/europe/placeholder.json

Whitespace-only changes.

data/northAmeria/placeholder.json

Whitespace-only changes.

data/oceania/placeholder.json

Whitespace-only changes.

data/southAmerica/placeholder.json

Whitespace-only changes.

package.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "country-api",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1",
8+
"start": "node dist/index.js",
9+
"dev": "nodemon server.ts"
10+
},
11+
"author": "",
12+
"license": "ISC",
13+
"dependencies": {
14+
"@types/express": "^4.17.21",
15+
"express": "^4.18.3",
16+
"nodemon": "^3.1.0",
17+
"ts-node": "^10.9.2",
18+
"typescript": "^5.4.2"
19+
}
20+
}

server.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log("Hello");

tsconfig.json

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
{
2+
"compilerOptions": {
3+
/* Visit https://aka.ms/tsconfig to read more about this file */
4+
5+
/* Projects */
6+
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
7+
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
8+
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
9+
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
10+
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
11+
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12+
13+
/* Language and Environment */
14+
"target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
15+
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16+
// "jsx": "preserve", /* Specify what JSX code is generated. */
17+
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
18+
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
19+
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
20+
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
21+
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
22+
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
23+
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
24+
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
25+
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
26+
27+
/* Modules */
28+
"module": "commonjs" /* Specify what module code is generated. */,
29+
// "rootDir": "./**/*" /* Specify the root folder within your source files. */,
30+
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
31+
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
32+
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
33+
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
34+
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
35+
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
36+
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
37+
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
38+
// "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
39+
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
40+
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
41+
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
42+
// "resolveJsonModule": true, /* Enable importing .json files. */
43+
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
44+
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
45+
46+
/* JavaScript Support */
47+
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
48+
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
49+
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
50+
51+
/* Emit */
52+
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
53+
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
54+
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
55+
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
56+
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
57+
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
58+
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
59+
// "removeComments": true, /* Disable emitting comments. */
60+
// "noEmit": true, /* Disable emitting files from a compilation. */
61+
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
62+
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
63+
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
64+
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
65+
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
66+
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
67+
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
68+
// "newLine": "crlf", /* Set the newline character for emitting files. */
69+
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
70+
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
71+
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
72+
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
73+
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
74+
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
75+
76+
/* Interop Constraints */
77+
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
78+
// "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
79+
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
80+
"esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
81+
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
82+
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
83+
84+
/* Type Checking */
85+
"strict": true /* Enable all strict type-checking options. */,
86+
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
87+
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
88+
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
89+
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
90+
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
91+
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
92+
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
93+
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
94+
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
95+
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
96+
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
97+
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
98+
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
99+
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
100+
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
101+
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
102+
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
103+
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
104+
105+
/* Completeness */
106+
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
107+
"skipLibCheck": true /* Skip type checking all .d.ts files. */
108+
}
109+
}
110+

types/country.ts

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
export interface Country {
2+
name: string;
3+
flag: string;
4+
countryCode: string;
5+
map: string;
6+
continent: string;
7+
description: string;
8+
area: {
9+
squreKilometers: string;
10+
squreMiles: string;
11+
};
12+
nationalAnimal: string | null;
13+
independenceDay: string | null;
14+
nationalDishes: {
15+
name: string;
16+
description: string;
17+
recipe: string;
18+
}[];
19+
wikipediaLink: string;
20+
neighbouringCountries: string[] | null;
21+
adjacentSeas: string[] | null;
22+
adjacentOceans: string[] | null;
23+
placesToVisit: {
24+
name: string;
25+
description: string | null;
26+
city: string | null;
27+
region: string | null;
28+
geographicCoordinates: string | null;
29+
establishedYear: string | number | null;
30+
}[];
31+
capitalCity: string;
32+
officialLanguages: string[];
33+
spokenLanguages: string[];
34+
currency: {
35+
name: string;
36+
code: string;
37+
};
38+
timeZone: string;
39+
nationalAnthem: {
40+
name: string;
41+
anthemLength: string;
42+
description: string | null;
43+
};
44+
nationalFlagDescription: string | null;
45+
nationalEmblem: {
46+
name: string;
47+
description: string | null;
48+
image: string | null;
49+
};
50+
nationalSymbol: {
51+
name: string;
52+
description: string | null;
53+
image: string | null;
54+
};
55+
nationalFlower: {
56+
name: string;
57+
description: string | null;
58+
image: string | null;
59+
};
60+
nationalHolidays: {
61+
name: string | null;
62+
date: string;
63+
description: string | null;
64+
}[];
65+
popularFestivals: {
66+
name: string;
67+
description: string | null;
68+
duration: string;
69+
}[];
70+
religions: string[];
71+
majorAirports: {
72+
name: string;
73+
city: string;
74+
region: string | null;
75+
geographicCoordinates: string | null;
76+
establishedYear: number;
77+
}[];
78+
majorPorts: {
79+
name: string;
80+
city: string;
81+
region: string | null;
82+
geographicCoordinates: string | null;
83+
establishedYear: number;
84+
}[];
85+
majorUniversities: {
86+
name: string;
87+
city: string;
88+
region: string | null;
89+
geographicCoordinates: string | null;
90+
establishedYear: number;
91+
description: string | null;
92+
}[];
93+
nationalSports: string[];
94+
majorIndustries: string[];
95+
educationSystem: string;
96+
isLeftHandDrive: boolean;
97+
isRightHandDrive: boolean;
98+
numbersOfIsland: number;
99+
}

0 commit comments

Comments
 (0)