0.80.2 • Published 4 months ago

@arrirpc/codegen-dart v0.80.2

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Arri Dart Codegen

Setup

1) Add the generator to your arri config

// arri.config.ts
import { defineConfig, generators } from 'arri';

export default defineConfig({
    generators: [
        generators.dartClient({
            clientName: 'MyClient',
            outputFile: './client/src/my_client.g.dart',
        }),
    ],
});

Options:

NameDescription
outputFile (required)Path to the file that will be created by the generator
clientNameThe name of the generated client class (Defaults to "Client")
formatRun dart format on the generated file (Defaults to true)
typePrefixAdd a prefix to the generated class names
rootServiceThe root service of the generated client

2) Install the Dart client library

The generated code relies on the Dart arri_client library. So be sure to install it wherever the generated code is being used. The version number should match your Arri CLI version. (run arri version to check).

dart pub add arri_client

Using the Generated Code

Initialize the client

// this will match whatever you put in the arri config
import "./my_client.g.dart";

main() async {
    final client = MyClient(
        baseUrl: "https://example.com",
        headers: () async {
            return {
                "Authorization": "<some-token>",
            };
        },
    );
    await client.myProcedure();
}

The root client will be a class containing all of the services and procedures in a single class. If you only need a particular service, you can initialize just that service.

final service = MyClientUsersService(
    baseUrl: "https://example.com",
    headers: () async {
        return {
            "Authorization": "<some-token>",
        };
    },
);

Client / Service Options

nameTypedescription
httpClienthttp.ClientUse this to pass in a custom http.Client instance
baseUrlStringThe base url for the backend server
headersFutureOr<Map<String, String>> Function()?A function that returns a Map of headers
onErrorFunction(Object)?A hook that fires whenever any error is thrown by the client.

Using Arri Models

All generated models will be immutable. They will have access to the following features:

Methods:

  • Map<String, dynamic> toJson()
  • String toJsonString()
  • String toUrlQueryParams()
  • copyWith()

Factory Methods:

  • empty()
  • fromJson(Map<String, dynamic> input)
  • fromJsonString(String input)

Overrides:

  • == operator (allows for deep equality checking)
  • hashMap (allows for deep equality checking)
  • toString (will print out all properties and values instead of Instance of X)

This library was generated with Nx.

Development

# build the library
pnpm nx build codegen-dart

# test
pnpm nx test codegen-dart

# lint
pnpm nx lint codegen-dart
0.64.0

11 months ago

0.78.0

7 months ago

0.76.4

7 months ago

0.76.3

7 months ago

0.74.0

9 months ago

0.76.0

8 months ago

0.74.1

9 months ago

0.72.0

9 months ago

0.70.1

10 months ago

0.69.2

11 months ago

0.69.1

11 months ago

0.67.0

11 months ago

0.65.2

11 months ago

0.65.1

11 months ago

0.63.3

11 months ago

0.69.0

11 months ago

0.76.2-beta.0

7 months ago

0.76.3-beta.0

7 months ago

0.65.0

11 months ago

0.80.0

4 months ago

0.80.1

4 months ago

0.80.2

4 months ago

0.77.1

7 months ago

0.77.0

7 months ago

0.75.2

8 months ago

0.79.1

5 months ago

0.79.0

6 months ago

0.73.0

9 months ago

0.75.1

8 months ago

0.75.0

8 months ago

0.71.1

9 months ago

0.71.0

9 months ago

0.66.0

11 months ago

0.68.0

11 months ago

0.63.2

1 year ago

0.63.0

1 year ago

0.62.0

1 year ago

0.63.1

1 year ago

0.61.1

1 year ago

0.60.3

1 year ago

0.60.2

1 year ago

0.61.0

1 year ago

0.60.1

1 year ago

0.60.0

1 year ago

0.57.4

1 year ago

0.57.5

1 year ago

0.59.0

1 year ago

0.58.1

1 year ago

0.57.2

1 year ago

0.57.3

1 year ago

0.57.0

1 year ago

0.58.0

1 year ago

0.55.0

1 year ago

0.53.2

1 year ago

0.57.8

1 year ago

0.57.6

1 year ago

0.53.0

1 year ago

0.51.2

1 year ago

0.54.0

1 year ago

0.53.1

1 year ago

0.51.0

1 year ago

0.52.0

1 year ago

0.51.1

1 year ago

0.50.0

1 year ago

0.49.1

1 year ago

0.48.2

1 year ago

0.45.6

1 year ago

0.48.0

1 year ago

0.49.0

1 year ago

0.48.1

1 year ago

0.46.0

1 year ago

0.47.0

1 year ago

0.45.7

1 year ago

0.45.5

1 year ago

0.45.3

1 year ago

0.45.4

1 year ago

0.45.2

1 year ago

0.45.1

1 year ago

0.45.0

1 year ago