Skip to content

Commit

Permalink
refactor: rename generateDts to generateDtsFile & move to generateDts…
Browse files Browse the repository at this point in the history
…File.ts
  • Loading branch information
Gumball12 committed Mar 2, 2024
1 parent 44fab71 commit c9f435f
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 58 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ Create the file scripts/generate-google-sheets-dts.ts. Here we use the parser pr
```ts
// scripts/generate-google-sheets-dts.ts

import { generateDts } from 'google-spreadsheet-dts';
import { generateDtsFile } from 'google-spreadsheet-dts';
import { resolve } from 'node:path';
import { publicGoogleSheetsParser } from 'google-spreadsheet-dts/parser';

import PublicGoogleSheetsParser from 'public-google-sheets-parser';

generateDts({
generateDtsFile({
name: 'GoogleSheets',
directory: resolve(__dirname, '../src'),

Expand Down Expand Up @@ -76,13 +76,13 @@ ts-node scripts/generate-google-sheets-dts.ts
```js
// scripts/generate-google-sheets-dts.js

const { generateDts } = require('google-spreadsheet-dts');
const { generateDtsFile } = require('google-spreadsheet-dts');
const { resolve } = require('node:path');
const { publicGoogleSheetsParser } = require('google-spreadsheet-dts/parser');

const PublicGoogleSheetsParser = require('public-google-sheets-parser');

generateDts({
generateDtsFile({
name: 'GoogleSheets',
directory: resolve(__dirname, '../src'),

Expand Down Expand Up @@ -169,21 +169,21 @@ event({

## 📚 API

### `generateDts`
### `generateDtsFile`

```ts
function generateDts(params: GenerateDtsParams): Promise<void>;
function generateDtsFile(params: GenerateDtsFileParams): Promise<void>;

type Params = {
name: string;
directory: string;
parser: Parser;
options?: GenerateDtsOptions;
options?: GenerateDtsFileOptions;
};

type Parser = () => Promise<object> | object;

type GenerateDtsOptions = Partial<{
type GenerateDtsFileOptions = Partial<{
fileName: string;
output: (dts: string) => unknown;
createDts: CreateDtsOptions;
Expand Down
20 changes: 10 additions & 10 deletions src/__tests__/index.test.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import { describe, it, expect, vi, afterEach } from 'vitest';
import { generateDts } from '..';
import { generateDtsFile } from '..';
import { promises as fs } from 'node:fs';
import { resolve } from 'node:path';

const src = resolve(__dirname, '../');

describe('generateDts', () => {
describe('generateDtsFile', () => {
afterEach(() => {
fs.unlink(resolve(src, './__tests__/GenerateDts.d.ts')).catch(() => {});
fs.unlink(resolve(src, './__tests__/GenerateDtsFile.d.ts')).catch(() => {});
});

it('Common forms', async () => {
const outputSpy = vi.fn();

await generateDts({
name: 'GenerateDts',
await generateDtsFile({
name: 'GenerateDtsFile',
directory: resolve(src, './__tests__'),
parser: async () => ({ a: 'string', b: 1, c: '"1"' }),
options: { output: outputSpy },
Expand All @@ -28,7 +28,7 @@ describe('generateDts', () => {
// noinspection JSUnusedGlobalSymbols
export {};
declare global {
export interface GenerateDts {
export interface GenerateDtsFile {
a: string;
b: 1;
c: '1';
Expand All @@ -38,14 +38,14 @@ declare global {
});

it('Write to file', async () => {
await generateDts({
name: 'GenerateDts',
await generateDtsFile({
name: 'GenerateDtsFile',
directory: resolve(src, './__tests__'),
parser: async () => ({ a: 'string', b: 1, c: '"1"' }),
});

const dts = (
await fs.readFile(resolve(src, './__tests__/GenerateDts.d.ts'))
await fs.readFile(resolve(src, './__tests__/GenerateDtsFile.d.ts'))
).toString();
expect(dts).toBe(
`// Generated by google-spreadsheet-dts
Expand All @@ -55,7 +55,7 @@ declare global {
// noinspection JSUnusedGlobalSymbols
export {};
declare global {
export interface GenerateDts {
export interface GenerateDtsFile {
a: string;
b: 1;
c: '1';
Expand Down
36 changes: 36 additions & 0 deletions src/core/generateDtsFile.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { CreateDtsOptions, createDts } from './createDts';
import { writeFile } from './writeFile';

type GenerateDtsFileOptions = Partial<{
fileName: string;
output: (dts: string) => unknown;
createDts: CreateDtsOptions;
}>;

type Parser = () => Promise<object> | object;

export type GenerateDtsFileParams = {
name: string;
parser: Parser;
directory: string;
options?: GenerateDtsFileOptions;
};

export const generateDtsFile = async ({
name,
directory,
parser,
options = {},
}: GenerateDtsFileParams) => {
const fileName = options.fileName || name;

const parsed = await parser();
const dts = createDts(fileName, parsed, options.createDts);

if (options.output) {
options.output(dts);
return;
}

await writeFile(`${directory}/${fileName}.d.ts`, dts);
};
37 changes: 1 addition & 36 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1 @@
import { CreateDtsOptions, createDts } from './core/createDts';
import { writeFile } from './core/writeFile';

type GenerateDtsOptions = Partial<{
fileName: string;
output: (dts: string) => unknown;
createDts: CreateDtsOptions;
}>;

type Parser = () => Promise<object> | object;

export type GenerateDtsParams = {
name: string;
parser: Parser;
directory: string;
options?: GenerateDtsOptions;
};

export const generateDts = async ({
name,
directory,
parser,
options = {},
}: GenerateDtsParams) => {
const fileName = options.fileName || name;

const parsed = await parser();
const dts = createDts(fileName, parsed, options.createDts);

if (options.output) {
options.output(dts);
return;
}

await writeFile(`${directory}/${fileName}.d.ts`, dts);
};
export { generateDtsFile } from './core/generateDtsFile';
8 changes: 4 additions & 4 deletions src/parser/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A parser that parses **public** Google Sheets. This parser uses [public-google-s
### Usage

```ts
import { generateDts } from 'google-spreadsheet-dts';
import { generateDtsFile } from 'google-spreadsheet-dts';
import { publicGoogleSheetsParser } from 'google-spreadsheet-dts/parser';

import PublicGoogleSheetsParser from 'public-google-sheets-parser';
Expand All @@ -25,7 +25,7 @@ const parser = publicGoogleSheetsParser(
);

// Generate d.ts file
generateDts({
generateDtsFile({
name: 'GoogleSheets',
directory: resolve(__dirname, '../src'),
parser,
Expand Down Expand Up @@ -81,7 +81,7 @@ A parser that parses **private** Google Sheets. This parser uses [google-spreads
### Usage

```ts
import { generateDts } from 'google-spreadsheet-dts';
import { generateDtsFile } from 'google-spreadsheet-dts';
import { googleSpreadsheet } from 'google-spreadsheet-dts/parser';

import { JWT } from 'google-auth-library';
Expand All @@ -101,7 +101,7 @@ const parser = googleSpreadsheet(sheet, {
});

// Generate d.ts file
generateDts({
generateDtsFile({
name: 'GoogleSheets',
directory: resolve(__dirname, '../src'),
parser,
Expand Down

0 comments on commit c9f435f

Please sign in to comment.