Skip to content

Commit

Permalink
feat: provide cjs and esm builds
Browse files Browse the repository at this point in the history
  • Loading branch information
felipebergamin committed Aug 30, 2023
1 parent a419dfb commit ba85f17
Show file tree
Hide file tree
Showing 46 changed files with 252 additions and 185 deletions.
5 changes: 5 additions & 0 deletions .scripts/patch-cjs-package.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh

cat >build/cjs/package.json <<!EOF
{"type": "commonjs"}
!EOF
File renamed without changes.
10 changes: 5 additions & 5 deletions examples/access-control-directives.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { ApolloServer } from '@apollo/server';
import { startStandaloneServer } from '@apollo/server/standalone';
import { makeExecutableSchema } from '@graphql-tools/schema';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';

import applyDirectiveMappersToSchema from 'lib/utils/applyDirectiveMappersToSchema';

import type { MissingPermissionsResolverInfo } from '../lib';
import {
applyDirectiveMappersToSchema,
v3Auth,
v3HasPermissions,
authDirectiveMapper,
hasPermissionsDirectiveMapper,
} from '../lib';
} from '../lib/index.js';

import type { MissingPermissionsResolverInfo } from '../lib/index.js';

const yourTypeDefs = [
gql`
Expand Down
6 changes: 3 additions & 3 deletions examples/federation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import { startStandaloneServer } from '@apollo/server/standalone';
import { ApolloGateway } from '@apollo/gateway';
import { buildSubgraphSchema } from '@apollo/subgraph';
import type { GraphQLResolverMap } from 'apollo-graphql';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';

import { ValidateDirectiveVisitor, range, stringLength } from '../lib';
import { rangeDirectiveMapper } from 'lib/range';
import { stringLengthDirectiveMapper } from 'lib/stringLength';
import { rangeDirectiveMapper } from '../lib/range.js';
import { stringLengthDirectiveMapper } from '../lib/stringLength.js';

/*
When using apollo federation all
Expand Down
6 changes: 3 additions & 3 deletions examples/value-validation-directives.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ import {
rangeDirectiveMapper,
stringLengthDirectiveMapper,
trimDirectiveMapper,
} from '../lib';
import type ValidationError from '../lib/errors/ValidationError';
import applyDirectiveMappersToSchema from 'lib/utils/applyDirectiveMappersToSchema';
} from '../lib/index.js';
import type ValidationError from '../lib/errors/ValidationError.js';
import applyDirectiveMappersToSchema from '../lib/utils/applyDirectiveMappersToSchema.js';

interface ValidationErrorsResolverInfo extends GraphQLResolveInfo {
validationErrors?: ValidationError[];
Expand Down
11 changes: 11 additions & 0 deletions jest.config.js → jest.config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,19 @@ module.exports = {
},
},
moduleFileExtensions: ['ts', 'js'],
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
},
modulePaths: ['<rootDir>/lib/'],
preset: 'ts-jest',
testEnvironment: 'node',
testPathIgnorePatterns: ['/node_modules/', '/build/', 'test-utils.test.ts'],
transform: {
'^.+\\.(mt|t|cj|j)s$': [
'ts-jest',
{
useESM: true,
},
],
},
};
6 changes: 3 additions & 3 deletions lib/EasyDirectiveVisitor.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import {
GraphQLBoolean,
} from 'graphql';
import { makeExecutableSchema } from '@graphql-tools/schema';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';

import print from './utils/printer';
import EasyDirectiveVisitor from './EasyDirectiveVisitor';
import print from './utils/printer.js';
import EasyDirectiveVisitor from './EasyDirectiveVisitor.js';

describe('EasyDirectiveVisitor', (): void => {
const minimalTypeDef = gql`
Expand Down
2 changes: 1 addition & 1 deletion lib/EasyDirectiveVisitor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
print,
printType,
} from 'graphql';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';

export type ReadonlyGraphQLDirectiveConfigWithoutName = Readonly<{
[P in keyof Omit<GraphQLDirectiveConfig, 'name'>]: Readonly<
Expand Down
16 changes: 8 additions & 8 deletions lib/ValidateDirectiveVisitor.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,23 @@ import {
GraphQLList,
GraphQLNonNull,
} from 'graphql';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';
import { makeExecutableSchema } from '@graphql-tools/schema';

import print from './utils/printer';
import print from './utils/printer.js';
import type {
ValidateFunction,
ValidationDirectiveArgs,
} from './ValidateDirectiveVisitor';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor';
import { ValidateDirectiveVisitorNonTyped } from './ValidateDirectiveVisitor';
} from './ValidateDirectiveVisitor.js';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor.js';
import { ValidateDirectiveVisitorNonTyped } from './ValidateDirectiveVisitor.js';
import {
validationDirectivePolicyArgs,
validationDirectionEnumTypeDefs,
} from './test-utils.test';
} from './test-utils.test.js';

import capitalize from './capitalize';
import ValidationError from './errors/ValidationError';
import capitalize from './capitalize.js';
import ValidationError from './errors/ValidationError.js';

interface ValidationErrorsResolverInfo extends GraphQLResolveInfo {
validationErrors?: ValidationError[];
Expand Down
6 changes: 3 additions & 3 deletions lib/ValidateDirectiveVisitor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ import { getDirective, inspect } from '@graphql-tools/utils';

import EasyDirectiveVisitor, {
getDirectiveDeclaration,
} from './EasyDirectiveVisitor';
} from './EasyDirectiveVisitor.js';

import capitalize from './capitalize';
import ValidationError from './errors/ValidationError';
import capitalize from './capitalize.js';
import ValidationError from './errors/ValidationError.js';

export enum ValidateDirectivePolicy {
RESOLVER = 'RESOLVER',
Expand Down
8 changes: 4 additions & 4 deletions lib/auth.test.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import type { GraphQLResolveInfo } from 'graphql';
import { graphql } from 'graphql';
import { makeExecutableSchema } from '@graphql-tools/schema';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';

import print from './utils/printer';
import print from './utils/printer.js';

import authDirective, { authDirectiveMapper } from './auth';
import AuthenticationError from './errors/AuthenticationError';
import authDirective, { authDirectiveMapper } from './auth.js';
import AuthenticationError from './errors/AuthenticationError.js';

describe('@auth()', (): void => {
const name = 'auth';
Expand Down
6 changes: 3 additions & 3 deletions lib/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import type {

import { getDirective } from '@graphql-tools/utils';

import EasyDirectiveVisitor from './EasyDirectiveVisitor';
import AuthenticationError from './errors/AuthenticationError';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor';
import EasyDirectiveVisitor from './EasyDirectiveVisitor.js';
import AuthenticationError from './errors/AuthenticationError.js';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor.js';

type ResolverArgs<TContext extends object = object> = Parameters<
GraphQLFieldResolver<unknown, TContext>
Expand Down
13 changes: 8 additions & 5 deletions lib/cleanupPattern.test.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
import type { GraphQLSchema } from 'graphql';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';
import { makeExecutableSchema } from '@graphql-tools/schema';

import cleanupPattern, {
cleanupPatternDirectiveMapper,
} from './cleanupPattern';
import capitalize from './capitalize';
} from './cleanupPattern.js';
import capitalize from './capitalize.js';

import type { CreateSchemaConfig, ExpectedTestResult } from './test-utils.test';
import type {
CreateSchemaConfig,
ExpectedTestResult,
} from './test-utils.test.js';
import {
testEasyDirective,
validationDirectivePolicyArgs,
} from './test-utils.test';
} from './test-utils.test.js';

type RootValue = {
arrayTest?: (string | null)[] | null;
Expand Down
10 changes: 5 additions & 5 deletions lib/cleanupPattern.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { GraphQLNonNull, GraphQLString } from 'graphql';

import type { ValidateFunction } from './ValidateDirectiveVisitor';
import createValidateDirectiveVisitor from './createValidateDirectiveVisitor';
import type { PatternDirectiveArgs } from './patternCommon';
import createPatternHandler, { defaultArgs } from './patternCommon';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor';
import type { ValidateFunction } from './ValidateDirectiveVisitor.js';
import createValidateDirectiveVisitor from './createValidateDirectiveVisitor.js';
import type { PatternDirectiveArgs } from './patternCommon.js';
import createPatternHandler, { defaultArgs } from './patternCommon.js';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor.js';

type CleanUpPatternArgs = PatternDirectiveArgs & { replaceWith: string };

Expand Down
2 changes: 1 addition & 1 deletion lib/createSchemaMapperForVisitor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { getDirective, MapperKind, mapSchema } from '@graphql-tools/utils';
import type { GraphQLSchema } from 'graphql';
import { isObjectType } from 'graphql';

import type EasyDirectiveVisitor from './EasyDirectiveVisitor';
import type EasyDirectiveVisitor from './EasyDirectiveVisitor.js';

export type SchemaMapperFunction = (schema: GraphQLSchema) => GraphQLSchema;

Expand Down
8 changes: 4 additions & 4 deletions lib/createValidateDirectiveVisitor.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { graphql, GraphQLBoolean, GraphQLObjectType } from 'graphql';
import { makeExecutableSchema } from '@graphql-tools/schema';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';

import createValidateDirectiveVisitor from './createValidateDirectiveVisitor';
import ValidateDirectiveVisitor from './ValidateDirectiveVisitor';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor';
import createValidateDirectiveVisitor from './createValidateDirectiveVisitor.js';
import ValidateDirectiveVisitor from './ValidateDirectiveVisitor.js';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor.js';

describe('createValidateDirectiveVisitor', (): void => {
const validate = jest.fn((x: unknown): unknown =>
Expand Down
6 changes: 3 additions & 3 deletions lib/createValidateDirectiveVisitor.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type {
ValidateFunction,
ValidationDirectiveArgs,
} from './ValidateDirectiveVisitor';
import { ValidateDirectiveVisitorNonTyped } from './ValidateDirectiveVisitor';
import validateArrayOrValue from './validateArrayOrValue';
} from './ValidateDirectiveVisitor.js';
import { ValidateDirectiveVisitorNonTyped } from './ValidateDirectiveVisitor.js';
import validateArrayOrValue from './validateArrayOrValue.js';

export type CreateValidate<TArgs extends object> = (
args: TArgs,
Expand Down
14 changes: 7 additions & 7 deletions lib/foreignNodeId.test.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import { graphql } from 'graphql';
import { makeExecutableSchema } from '@graphql-tools/schema';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';

import print from './utils/printer';
import type { ToNodeId } from './foreignNodeId';
import print from './utils/printer.js';
import type { ToNodeId } from './foreignNodeId.js';
import {
ForeignNodeIdDirectiveNonTyped,
foreignNodeIdDirectiveMapper,
} from './foreignNodeId';
} from './foreignNodeId.js';
import {
validationDirectivePolicyArgs,
validationDirectionEnumTypeDefs,
} from './test-utils.test';
import capitalize from './capitalize';
import ValidationError from './errors/ValidationError';
} from './test-utils.test.js';
import capitalize from './capitalize.js';
import ValidationError from './errors/ValidationError.js';

describe('@foreignNodeId()', (): void => {
const toNodeId = (typenane: string, id: string): string =>
Expand Down
10 changes: 5 additions & 5 deletions lib/foreignNodeId.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ import { DirectiveLocation, GraphQLNonNull, GraphQLString } from 'graphql';
import type {
ValidateFunction,
ValidationDirectiveArgs,
} from './ValidateDirectiveVisitor';
import { ValidateDirectiveVisitorNonTyped } from './ValidateDirectiveVisitor';
import validateArrayOrValue from './validateArrayOrValue';
import ValidationError from './errors/ValidationError';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor';
} from './ValidateDirectiveVisitor.js';
import { ValidateDirectiveVisitorNonTyped } from './ValidateDirectiveVisitor.js';
import validateArrayOrValue from './validateArrayOrValue.js';
import ValidationError from './errors/ValidationError.js';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor.js';

export type ToNodeId<IdType> = (
id: string,
Expand Down
16 changes: 8 additions & 8 deletions lib/hasPermissions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import {
GraphQLError,
} from 'graphql';
import { makeExecutableSchema } from '@graphql-tools/schema';
import gql from 'graphql-tag';
import { gql } from 'graphql-tag';

import print from './utils/printer';
import type { MissingPermissionsResolverInfo } from './hasPermissions';
import print from './utils/printer.js';
import type { MissingPermissionsResolverInfo } from './hasPermissions.js';
import {
debugFilterMissingPermissions,
debugGetErrorMessage,
Expand All @@ -18,12 +18,12 @@ import {
prodGetErrorMessage,
getDefaultValue,
hasPermissionsDirectiveMapper,
} from './hasPermissions';
} from './hasPermissions.js';

import EasyDirectiveVisitor from './EasyDirectiveVisitor';
import ValidateDirectiveVisitor from './ValidateDirectiveVisitor';
import ForbiddenError from './errors/ForbiddenError';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor';
import EasyDirectiveVisitor from './EasyDirectiveVisitor.js';
import ValidateDirectiveVisitor from './ValidateDirectiveVisitor.js';
import ForbiddenError from './errors/ForbiddenError.js';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor.js';

describe('@hasPermissions()', (): void => {
const name = 'hasPermissions';
Expand Down
10 changes: 5 additions & 5 deletions lib/hasPermissions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ import {

import isEqual from 'lodash.isequal';

import createSchemaMapperForVisitor from './createSchemaMapperForVisitor';
import createSchemaMapperForVisitor from './createSchemaMapperForVisitor.js';

import EasyDirectiveVisitor from './EasyDirectiveVisitor';
import ForbiddenError from './errors/ForbiddenError';
import EasyDirectiveVisitor from './EasyDirectiveVisitor.js';
import ForbiddenError from './errors/ForbiddenError.js';

import type { ValidateFunction } from './ValidateDirectiveVisitor';
import type { ValidateFunction } from './ValidateDirectiveVisitor.js';
import ValidateDirectiveVisitor, {
ValidateDirectivePolicy,
} from './ValidateDirectiveVisitor';
} from './ValidateDirectiveVisitor.js';

const isDebug = !!(
process &&
Expand Down
Loading

0 comments on commit ba85f17

Please sign in to comment.