aws-sdk-scalajs-facade-core


License

License

Categories

Categories

JavaScript Languages Scala AWS Container PaaS Providers Net
GroupId

GroupId

net.exoego
ArtifactId

ArtifactId

aws-sdk-scalajs-facade-core_sjs0.6_2.13
Last Version

Last Version

0.30.0-v2.715.0
Release Date

Release Date

Type

Type

jar
Description

Description

aws-sdk-scalajs-facade-core
aws-sdk-scalajs-facade-core
Project URL

Project URL

https://github.com/exoego/aws-sdk-scalajs-facade
Project Organization

Project Organization

net.exoego
Source Code Management

Source Code Management

https://github.com/exoego/aws-sdk-scalajs-facade

Download aws-sdk-scalajs-facade-core_sjs0.6_2.13

How to add to project

<!-- https://jarcasting.com/artifacts/net.exoego/aws-sdk-scalajs-facade-core_sjs0.6_2.13/ -->
<dependency>
    <groupId>net.exoego</groupId>
    <artifactId>aws-sdk-scalajs-facade-core_sjs0.6_2.13</artifactId>
    <version>0.30.0-v2.715.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.exoego/aws-sdk-scalajs-facade-core_sjs0.6_2.13/
implementation 'net.exoego:aws-sdk-scalajs-facade-core_sjs0.6_2.13:0.30.0-v2.715.0'
// https://jarcasting.com/artifacts/net.exoego/aws-sdk-scalajs-facade-core_sjs0.6_2.13/
implementation ("net.exoego:aws-sdk-scalajs-facade-core_sjs0.6_2.13:0.30.0-v2.715.0")
'net.exoego:aws-sdk-scalajs-facade-core_sjs0.6_2.13:jar:0.30.0-v2.715.0'
<dependency org="net.exoego" name="aws-sdk-scalajs-facade-core_sjs0.6_2.13" rev="0.30.0-v2.715.0">
  <artifact name="aws-sdk-scalajs-facade-core_sjs0.6_2.13" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.exoego', module='aws-sdk-scalajs-facade-core_sjs0.6_2.13', version='0.30.0-v2.715.0')
)
libraryDependencies += "net.exoego" % "aws-sdk-scalajs-facade-core_sjs0.6_2.13" % "0.30.0-v2.715.0"
[net.exoego/aws-sdk-scalajs-facade-core_sjs0.6_2.13 "0.30.0-v2.715.0"]

Dependencies

compile (2)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.13.3
org.scala-js : scalajs-library_2.13 jar 0.6.33

test (1)

Group / Artifact Type Version
org.scala-js : scalajs-test-bridge_2.13 jar 0.6.33

Project Modules

There are no modules declared in this project.

aws-sdk-scalajs-facade

A complete set of Scala.js type facade for aws/aws-sdk-js.

All 238 AWS are available as of 2020-11-23, and keep updating.

You may find the below peer facades useful when developing app with AWS.

Getting Started

libraryDependencies += "net.exoego" %%% "aws-sdk-scalajs-facade" % "0.32.0-v2.798.0"
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule))

// Below are optional. Required when bundling aws-sdk for testing in sbt or
// for running the app (the generated JS) on environment without aws-sdk provided.
enablePlugins(ScalaJSBundlerPlugin)
npmDependencies += "aws-sdk" -> "2.731.0"

Check scalajs-bundler regarding how to use ScalajsBundlerPlugin.

Note) The all-in-one artifact aws-sdk-scalajs-facade includes all AWS facade and quite huge. If you depend only minimum facades, you will gain build performance boost (short fastOptJS/fullOptJS time). See the list of separate artifacts.

Using constructor

Every AWS services and their-related types are defined in facade.amazonaws.services.<service_name> package in "net.exoego" %%% "aws-sdk-scalajs-facade-<service_name>" % VERSION. See the list of separate artifacts.

Service class can be instantiated with their constructor.

import facade.amazonaws.services.s3._
for {
  image <- new S3().getObjectFuture(GetObjectRequest(
    Bucket = "foo-bar",
    Key = "123.json"
  ))
} yield {
  println(image.Body)
}

Using AWS Object

AWS object is defined in core project. "aws-sdk-scalajs-facade-<service_name>" depends on core project so your project do not need to explicitly depend on core.

By default, AWS object expose only config field to be used for configuring aws-sdk globally.

import facade.amazonaws.AWS

AWS.config.region = "..."
AWS.config.s3 = ???

By adding the artifact "net.exoego" %%% "aws-sdk-scalajs-facade" % VERSION to libraryDependencies, AWS object aggregates all service classes so you can instantiate service class as same as in aws-sdk-js, like below:

import facade.amazonaws.AWS
import facade.amazonaws.services.dynamodb._
import scala.scalajs.js.Dictionary

for {
  record <- new AWS.DynamoDB().getItemFuture(GetItemInput(
    Key = Dictionary("product-id" -> AttributeValue.S("ABC-123")),
    TableName = "product-table"
  ))
} yield {
  println(record.Item)
}

Or using apply method, you can skip new keyword.

import facade.amazonaws.AWS
import facade.amazonaws.services.dynamodb._
import scala.scalajs.js.Dictionary

for {
  record <- AWS.DynamoDB().getItemFuture(GetItemInput(
    Key = Dictionary("product-id" -> AttributeValue.S("ABC-123")),
    TableName = "product-table"
  ))
} yield {
  println(record.Item)
}

Support matrix

ScalaJS 0.6.x ScalaJS 1.0
Scala 2.13 ✔️ (v0.30.0 is final) ✔️
Scala 2.12 ✔️ (v0.30.0 is final) ✔️
Scala 2.11 N/A N/A
Scala 2.10 N/A N/A
  • ✔️ Supported
  • 🚧 Not supported but planned

Origin

Auto-generated from aws-sdk-scalajs-facade-generator.

This project started as a fork of awesome balshor/aws-sdk-scalajs-facade.

Intention of fork is to

  • Re-design based on my team's preference since my projects are blessed with this facade.
  • Continue updating with eco-system (Scala.JS and aws-sdk) timely.
  • Make it more type-safe and easier to use.
  • Add some convenient bridges between Node.js and Scala.js.

Development

  1. npm install
  2. sbt ~compile
  3. Edit source code

License

Apache-2.0

See LICENSE.txt.

Versions

Version
0.30.0-v2.715.0
0.29.0-v2.624.0
0.28.0-v2.596.0
0.27.0-v2.571.0
0.26.1-v2.524.0
0.26.0-v2.524.0
0.25.0-v2-518-0
0.24.2-v2-437-0
0.24.1-v2-473-0
0.24.0-v2-473-0