Mocking library to create mock objects and JSON for TypeScript interfaces via Faker.
This is not an officially supported Google product.
npm install intermock
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.
interfaceAdminextendsUser{adminRecord: AdminRecord;}interfaceStudentextendsUser{schoolRecord: SchoolRecord;}interfaceUser{firstName: string;lastName: string;username: string;emailAddress: string;}interfaceAdminRecord{studentsPassedEachYear: number[];}interfaceSchoolRecord{startDate: string;endDate: string;isActive: boolean;grades: number[];}node ./node_modules/intermock/build/src/cli/index.js --files ./example-file.ts --interfaces "Admin"{
"Admin": {
"firstName": "Willa",
"lastName": "Walker",
"username": "Shyann_Mante",
"emailAddress": "Cristobal_Rutherford73@gmail.com",
"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|stringexportinterfaceOptions{// Array of file tuples. (filename, data)files?: Array<[string,string]>;// TypeScript is currently the only supported languagelanguage?: SupportedLanguage;// Specific interfaces to write to outputinterfaces?: 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 enabledisOptionalAlwaysEnabled?: boolean;}The following TypeScript features are supported:
- Interfaces
- Interfaces with properties of primitive types
- Interfaces with property references to other complex types
- Interfaces with extensions
- Unions
- Type aliases
- Arrays
- Namespaces
- Tuples
- Mapped types
- Generics
- Functions (stringified output!)
- Optional properties
- Type imports
- Specific Faker data types (via JSDoc comment)
interfaceHost{/** @mockType {internet.ipv6} */addr: string;}
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
- Read all of
CONTRIBUTING.mdin this repo - Sign the CLA
- In a terminal, run
npm run ci - Fix any linting, formatting, and/or compiling errors. (Note: Format errors can be fixed by
npm run format. DO NOT fix linting errors by disabling the linter on a line and/or block) - Create a Pull Request
- Address all comments, if any
- If everything looks good after comments are addressed, your PR will be merged!
See LICENSE in this repo