Mocking library to create mock objects and JSON for TypeScript interfaces via Faker.
This is not an officially supported Google product.
git clone [email protected]:google/intermock.git
npm install
npm run build
Intermock exposes a CLI, which is the recommended way to use the tool. The following subsections show an example file, command, and output to demonstrate using the CLI.
interface Admin extends User {
adminRecord: AdminRecord;
}
interface Student extends User {
schoolRecord: SchoolRecord;
}
interface User {
firstName: string;
lastName: string;
username: string;
emailAddress: string;
}
interface AdminRecord {
studentsPassedEachYear: number[];
}
interface SchoolRecord {
startDate: string;
endDate: string;
isActive: boolean;
grades: number[];
}
node build/src/cli/index.js --files ./example-file.ts --interfaces "Admin"
{
"Admin": {
"firstName": "Willa",
"lastName": "Walker",
"username": "Shyann_Mante",
"emailAddress": "[email protected]",
"adminRecord": {
"studentsPassedEachYear": [
80342,
23404,
12854,
74937,
38185,
73316
]
}
},
Intermock’s API exports only one function, as seen below:
// Returns an object or string based on `output` property specified in `Options`
mock(options: Options): object|string
export interface Options {
// Array of file tuples. (filename, data)
files?: Array<[string, string]>;
// TypeScript is currently the only supported language
language?: SupportedLanguage;
// Specific interfaces to write to output
interfaces?: string[];
// Used for testing mode,
isFixedMode?: boolean;
// One of object|json|string. Strings have their object's functions
// stringified.
output?: OutputType;
// Should optional properties always be enabled
isOptionalAlwaysEnabled?: boolean;
}
The following TypeScript static type features are supported:
- Interfaces
- Interfaces with properties of primitive types
- Interfaces with property references to other complex types
- Interfaces with extensions
- Type aliases
- Arrays
- Namespaces
- Functions (stringified output!)
- Optional properties
- Specific fake data types (via JSDoc comment)
npm run build
If you want to run the build script and tests after you save a file while developing,
run the following command:
npm run test-watch
To develop documentation run the following commands:
npm run build
npm run docs-serve
Edit the files in docs/
and Webpack's Dev Server should auto-reload when there are changes
To build the docs statically run the following command:
npm run build
npm run docs-build
See CONTRIBUTING.md
in this repo
See LICENSE
in this repo